因此,绘制太阳时并不需要移动,可以使用glRotate*()函数绕一个任意的轴旋转。绘制一颗绕太阳旋转的行星要求进行几次模型变换。...首先,调用初始的glRotate*()函数对局部坐标系统进行旋转,这个局部坐标系统最初与全局固定坐标系统是一致的。接着,可以调用glTranslate*()把局部坐标系统移动到行星轨道上的一个位置。...因此,第一个glRotate*()函数实际上确定了这颗行星从什么地方开始绕太阳旋转(或者说,从一年的什么时候开始)。...第二次调用glRotate*()使局部坐标轴进行旋转,因此确定了这颗行星在一天中的时间。当调用了这些函数变换之后,就可以绘制这颗行星了。 5. 实验作业: (1)尝试在太阳系中增加一颗卫星,一颗行星。
因此,绘制太阳时并不需要移动,可以使用glRotate*函数绕一个任意的轴旋转。绘制一颗绕太阳旋转的行星要求进行几次模型变换。...首先,调用初始的glRotate函数对局部坐标系统进行旋转,这个局部坐标系统最初与全局固定坐标系统是一致的。接着,可以调用glTranslate函数把局部坐标系统移动到行星轨道上的一个位置。...因此,第一个glRotate函数实际上确定了这颗行星从什么地方开始绕太阳旋转(或者说,从一年的什么时候开始)。 ...第二次调用glRotate函数使局部坐标轴进行旋转,因此确定了这颗行星在一天中的时间。当调用了这些函数变换之后,就可以绘制这颗行星了。 (2)利用双缓存技术实现动画效果。
gluLookatup,glTranslate, glRotate, glScale, glOrtho ,gluPerspective 等函数只根据其参数计算出一个矩阵M,然后与当前的栈顶元素T相乘;但这些函数本身不能自动找到应该对应的矩阵堆栈...gluLookAtUp(); // E 视点矩阵glTranslate(); // T 模型矩阵glScale(); // S 模型矩阵glRotate
所以选择GL_MODELVIEW之后直接用glTranslate,glRotate之类的就行。
(2) 旋转变换 旋转变换函数如下: void glRotate{fd}(TYPE angle,TYPE x,TYPE y,TYPE z); 函数中第一个参数是表示目标沿从点(x,y,z)到原点的方向逆时针旋转的角度
旋转矩阵构造函数为glRotate(theta, vx, vy, vz),作用是把当前矩阵和一个表示旋转物体的矩阵相乘。
,第四分量0表示向量,第四分量1表示点 相关函数: glViewPort视口设置(视景体变换到视口) glOrtho(视景体设置) glTranslate(模型坐标系平移) glRotate
用到三个子函数: glTranslate*(x, y, z) 、 glRotate*(x, y, z) 、 glScale*(x, y, z) 。每个函数都会产生一个矩阵,并右乘当前矩阵。
glLoadMatrix()、矩阵相乘函数glMultMatrix(),当前矩阵函数glMatrixMode()和矩阵标准化函数glLoadIdentity(),几何变换函数glTranslate*()、glRotate
glTranslate{fd}(TYPE x,TYPE y,TYPE z); glRotate{fd}(TYPE angle,TYPE x,TYPE,y,TYPE z); glScale{fd}(TYPE
2、模型旋转 glRotate{fd}(TYPE angle,TYPE x,TYPE,y,TYPE z); 该函数中第一个变量angle制定模型旋转的角度,单位为度,后三个变量表示以原点(0,0,0)
glLoadMatrix(),矩阵相乘函数 glMultMatrix(),当前矩阵函数 glMatrixMode()和矩阵标准化函数glLoadIdentity(),几何变换函数glTranslate*()、glRotate
于是定位到draw函数中的glRotate函数,掉转x、y两轴。 此时应该可以看到部分FLAG了,但是可能还会有点重叠。
glLoadMatrix(),矩阵相乘函数glMultMatrix(),当前矩阵函数glMatrixMode()和矩阵标准化函数glLoadIdentity(),几何变换函数glTranslate*()、glRotate
相关API 空间变化相关的API有: 模型矩阵变换 void glTranslate{fd}(TYPE x,TYPE y,TYPE z) void glRotate{fd}(TYPE angle,TYPE
领取专属 10元无门槛券
手把手带您无忧上云