"计算机图形学春季作业一"

  " \使用opengl制作的移动的小人\""

Posted by     "Slientuill" on April 1, 2017

“Don know why. ”

代码

 Demo Code →

简单思路

  • 1 - 首先,使用opengl提供的连线函数,对于设定好的长方体八个顶点的矩阵数据进行逐一连线(drawcube函数),形成构建小人所需的基本部件(头部,躯干,肩部,四肢)
  • 2 - 使用gltranslate函数对各个部位进行摆放,形成小人的雏形,期间,使用pushmatrix和popmatrix函数,将各个部位隔离开来,同时,记得所有的translate函数rotate的函数要在drawcube方法前调用,否则摆放的位置将会形成错乱,需要注意的一点是小人的大臂和小臂属于同一结构,虽然使用了两个长方体,但中间不使用pop和push将其隔离,并且在后续的移动函数中,可以通过大臂来带动小臂旋转
  • 3 - 使用move函数和selfrotate函数来形成小人的移动以及手臂和腿的旋转 - move:通过times的叠加,使得translate函数中x和y轴的参变量逐步增大,在所有的部件中调用(大小臂只调用一次)实现小人的整体移动
    • selfrotate:通过times的叠加,使得rotate函数中的rotateangle参数在逐步增大,并在达到临界值时反向,以达到回旋的效果, 其中小人的左半部和右半部分别使用两个参数相反的函数(selfrotateR和selfrotateL)从而实现正确的步姿

      简单演示

      如果视频加载失败,请点击进入以下链接进入外部网站观看  外部网页 →