VC++win32控制台应用程序怎样用定时器制作动画效果啊,制作弯管生成动画。大神们快帮帮忙!!!

doublelife_ 2018-03-03 12:07:18
win32控制台应用程序怎样用VC++里的定时器周期性得将送管长度x增加某个值,直到x等于整个管长

以下是用opengl做的弯管程序,那么怎样用VC++定时器生成动画呢
//旋转绘制出来直管段的位置
glPushMatrix();
glTranslatef(0.0,1.3, 0.0f);//将y轴延正向平移TR,TR是第二个
glRotatef(90.0f, 0.0f, 1.0f, 0.0f);//绕y轴旋转90度

GLUquadricObj *cylinder_obj;//定义变量
cylinder_obj = gluNewQuadric();//再初始化
gluCylinder(cylinder_obj, 1.3, 1.3, 3, 90, 1);//绘制长y的直线管段,第四个是y。(底面,顶面,高度,}
//所用柱体的细分数目,沿柱体所生成的细分数目)
glPopMatrix();

//画圆环
GLdouble equn[4] = { 1.0f, 0.0f, 0.0f, 0.0f };
GLdouble equn2[4] = { 0.0f, 1.0f, 0.0f, 0.0f };
glTranslatef(0.0, -1.5, 0.0);//使圆环在Y轴移动1.5
glTranslatef(3.0, 0, 0.0);//调圆环和圆柱之间在X方向的距离

glPushMatrix();
glClipPlane(GL_CLIP_PLANE0, equn);//画剪裁面1
glPushMatrix();
glRotatef(0, 0.0f, 0.0f, 1.0f);// fGuanC弯曲管材圆弧角,第一个数是:90-圆弧角
glClipPlane(GL_CLIP_PLANE1, equn2);//画剪裁面2
glPopMatrix();
glEnable(GL_CLIP_PLANE0);
glEnable(GL_CLIP_PLANE1);
//画圆环
glutSolidTorus(1.3, 2.8, 30, 50);//第一个圆环内半径,第二个模具半径TR,第四个调圆环的圆滑度
glDisable(GL_CLIP_PLANE0);
glDisable(GL_CLIP_PLANE1);
glPopMatrix();

//让旧的平移开,新生成的接上 Y,C对已有管段空间位置的影响
//C参数引起的空间变换
glRotatef(-60, 0.0f, 0.0f, 1.0f);//绕Z轴旋转c,第一个是c
//B参数引起的空间变换
glTranslatef(0.0f, 1.3, 0.0f);//y轴延正向平移TR
glRotatef(-90, 1.0f, 0.0f, 0.0f);//延x轴旋转b,第一个是b
glTranslatef(0.0f, -1.3, 0.0f);//y轴延负向平移TR,第二个是TR
//Y参数引起的空间变换
glTranslatef(3.0, 0, 0.0f);//延x轴正向平移y,第一个是y
//用户输入ybc和TR
glFlush();
glutSwapBuffers();
}
...全文
377 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

8,303

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧