MFC中我想手动发送WM_SIZE消息,改用哪个函数啊,showindow和updatewindow好像都不行啊 10
因为我在onsize函数中写了函数,想通过点击鼠标来触发这个函数gluperspective(),实时的改变视口张角的大小。从而实现动态缩放上面那个问题已经被解决了,不劳...
因为我在onsize函数中写了函数,想通过点击鼠标来触发这个函数gluperspective(),实时的改变视口张角的大小。从而实现动态缩放
上面那个问题已经被解决了,不劳烦大家了,我想知道的是OpenGL中rotate和translate函数何时是对模型操作,何时是对视点(即摄像机)操作的, 展开
上面那个问题已经被解决了,不劳烦大家了,我想知道的是OpenGL中rotate和translate函数何时是对模型操作,何时是对视点(即摄像机)操作的, 展开
1个回答
展开全部
glTranslatef(x, y, z)
沿着 X, Y 和 Z 轴移动。
注意在glTranslatef(x, y, z)中,移动的时候,并不是相对屏幕中心移动,而是相对与当前所在的屏幕位置。其作用就是将你绘点坐标的原点在当前原点的基础上平移一个(x,y,z)向量。
/////////////////////////////////////////////////////////////////////
glLoadIdentity(); //使原点回到屏幕中心
glTranslatef(-1.5f,0.0f,-6.0f);
//画三角形该三角形绘制的坐标系,实际上是以(-1.5f,0.0f,-6.0f)为原点的。
glBegin(GL_TRIANGLES);
glVertex3f(0.0f,0.0f, 0.0f);
glVertex3f(1.0f,0.0f, 0.0f);
glVertex3f(0.0f,1.0f, 0.0f);
glEnd();
/////////////////////////////////////////////////////////////////////
glRotatef(angle, x, y, z)
旋转轴经过原点,方向为(x,y,z),旋转角度为angle,方向满足右手定则。
////////////////////////////////////////////////////////////////
glLoadIdentity();
glRotatef(45,0.0f,0.0f,1.0f);
glTranslatef(0.0f,0.0f,-6.0f);
glBegin(GL_TRIANGLES);
glVertex3f(0.0f,0.0f, 0.0f);
glVertex3f(1.0f,0.0f, 0.0f);
glVertex3f(0.0f,1.0f, 0.0f);
glEnd();
////////////////////////////////////////////////////////////////
绕Z轴正向旋转45度角,因为Z轴正方向由屏幕内指向屏幕外,由右手定则可知方向为逆时针转动。
沿着 X, Y 和 Z 轴移动。
注意在glTranslatef(x, y, z)中,移动的时候,并不是相对屏幕中心移动,而是相对与当前所在的屏幕位置。其作用就是将你绘点坐标的原点在当前原点的基础上平移一个(x,y,z)向量。
/////////////////////////////////////////////////////////////////////
glLoadIdentity(); //使原点回到屏幕中心
glTranslatef(-1.5f,0.0f,-6.0f);
//画三角形该三角形绘制的坐标系,实际上是以(-1.5f,0.0f,-6.0f)为原点的。
glBegin(GL_TRIANGLES);
glVertex3f(0.0f,0.0f, 0.0f);
glVertex3f(1.0f,0.0f, 0.0f);
glVertex3f(0.0f,1.0f, 0.0f);
glEnd();
/////////////////////////////////////////////////////////////////////
glRotatef(angle, x, y, z)
旋转轴经过原点,方向为(x,y,z),旋转角度为angle,方向满足右手定则。
////////////////////////////////////////////////////////////////
glLoadIdentity();
glRotatef(45,0.0f,0.0f,1.0f);
glTranslatef(0.0f,0.0f,-6.0f);
glBegin(GL_TRIANGLES);
glVertex3f(0.0f,0.0f, 0.0f);
glVertex3f(1.0f,0.0f, 0.0f);
glVertex3f(0.0f,1.0f, 0.0f);
glEnd();
////////////////////////////////////////////////////////////////
绕Z轴正向旋转45度角,因为Z轴正方向由屏幕内指向屏幕外,由右手定则可知方向为逆时针转动。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询