扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:冯杰 来源:yesky 2007年10月21日
关键字:
//对整个货车做运动变换A 变换A glPushMatrix(); //绘制货车主体 glPopMatrix(); glPushMatrix(); //绘制拖车主体 glPopMatrix(); |
//m_rot 和m_trans分别表示轮胎的旋转量和整个货车在X轴上的平移量,已经在有关//函数里面进行了初始化 void CTerraintestView::DrawLorry() {//控制货车的运动 //这里施加的几何变换将影响到所有的下面绘制的物体 glTranslatef(m_trans,0,0); glColor3f(1.0,0.5,0); //绘制货车 glBegin(GL_POLYGON ); glVertex2f(-0.3f,0.2f); glVertex2f(-0.3f,-0.2f); glVertex2f(0.3f,-0.2f); glVertex2f(0.3f,0.2f); glEnd(); //绘制拉绳 glBegin(GL_LINES ); glVertex2f(-0.3,0); glVertex2f(-0.6,0); glEnd(); //绘制货车轮胎 glPushMatrix(); glTranslatef(0,-0.3f,0); glTranslatef(-0.2,0,0); glPushMatrix(); glRotatef(m_rot,0,0,1); DrawWheel(0.1); glPopMatrix(); glTranslatef(0.4,0,0); glRotatef(m_rot,0,0,1); DrawWheel(0.1); glPopMatrix(); glPushMatrix(); //总比货车滞后0.3 glTranslatef(-0.6,0,0); //绘制后面的拖车 glBegin(GL_POLYGON); glVertex2f(-0.2f,0.2f); glVertex2f(-0.2f,-0.2f); glVertex2f(0.2f,-0.2f); glVertex2f(0.2f,0.2f); glEnd(); //绘制拖车的轮胎 glPushMatrix(); glTranslatef(0,-0.3f,0); glTranslatef(-0.1,0,0); DrawWheel(0.1); glTranslatef(0.2,0,0); DrawWheel(0.1); glPopMatrix(); glPopMatrix(); } void CTerraintestView::DrawWheel(float radius) {//绘制轮胎 float step=0.05; float i; float x,y; glBegin(GL_LINE_STRIP ); glVertex2f(radius,0); for (i=step;i<360.0;i+=step) { //计算两个坐标 x=radius*cos(i*3.1415926/180.0); y=radius*sin(i*3.1415926/180.0); glVertex2f(x,y); } glEnd(); } |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者