glRotatef()是 OpenGL 中的一个函数,用于在三维空间中旋转物体。这个函数的工作原理可能初看起来有些复杂,因为它涉及到矩阵变换和坐标空间的理解。下面我会解释glRotatef()的基础概念、优势、类型、应用场景,以及可能出现的问题和解决方法。 基础概念 glRotatef()函数通过指定一个角度和一个旋转轴来旋转当前的模型视图矩...
glrotatef参数 glRotatef 函数的参数详细介绍如下: - angle:旋转角度,单位为度数,可以是正数或负数。 - x、y、z:旋转轴的三个分量,表示旋转轴的方向。它们的值可以是任意实数,但是它们的平方和必须为1,即$x^2+y^2+z^2=1$。如果不满足这个条件,OpenGL 会自动将它们归一化。 glRotatef 函数用于在三维空间中...
glRotatef()函数通过指定一个角度和一个旋转轴来旋转当前的模型视图矩阵。它的原型如下: 代码语言:txt 复制 void glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z); angle是旋转的角度,以度为单位。 x,y,z定义了旋转轴的方向向量。
1#include <stdio.h>2#include <gl/glut.h>34/*5功能描述:使用OpenGL简单画一个旋转的三角形6旋转变换函数glRotatef7*/89//输出模式,0-单缓存模式;非0双缓存模式10#defineOUTPUT_MODE 11112//角度13intangle =0;1415intxyz[3] = {0,0,0};1617voiddisplay(void)18{19//printf("xyz={%d, %d, %d\...
1#include <stdio.h>2#include <gl/glut.h>34/*5功能描述:使用OpenGL简单画一个旋转的三角形6旋转变换函数glRotatef7*/89//输出模式,0-单缓存模式;非0双缓存模式10#defineOUTPUT_MODE 11112//角度13intangle =0;1415intxyz[3] = {0,0,0};1617voiddisplay(void)18{19//printf("xyz={%d, %d, %d\...
glRotatef(angle, x, y, z)与glTranslatef(x, y, z)类似,glRotatef(angle, x, y, z)也是对坐标系进行操作。 旋转轴经过原点,方向为(x,y,z),旋转角度为angle,方向满足右手定则。 glLoadIdentity(); glTranslatef(0.0f,0.0f,-6.0f); glBegin(GL_TRIANGLES); ...
OpenGL中glRotatef()函数究竟对矩阵做了什么 我们知道OpenGL中维持着两套矩阵,一个是模型视图矩阵(model view matrix),另一个是投影矩阵(projection matrix)。而Direct3D维持着三个矩阵,其实它们的本质是一样的,因为Model(World)矩阵×View矩阵 = ModelView矩阵,也就是OpenGL的模型视图矩阵。通过对OpenGL这两套矩阵的...
这几个函数是OpenGL图形开发包自带的函数。 glTranslatef(0.0f,-20.0f,-40.0f):表示将当前图形向x轴平移0,向y轴平移-20,向z轴平移-40 glScaled(10.0f,10.0f,10.0f):表示将当前图形沿x,y,z轴分别放大为原来的10倍 glRotatef(-80.0f,10.0f,1.0f,0.0f):表示将当前图形沿方向向量(-10,1,0)顺时针旋转80...
glRotatef 函式會將目前的矩陣乘以旋轉矩陣。 語法 C++ voidWINAPIglRotatef( GLfloat angle, GLfloat x, GLfloat y, GLfloat z ); 參數 角度 旋轉角度,以度為單位。 x 向量的x座標。 y 向量的Y座標。 Z 向量的Z座標。 傳回值 此函式不會傳回值。