WebGL中的旋转和移动
WebGL中使用rotate(mvMatrix,[0,1,0])函数进行旋转操作,其旋转总是以自身为中心轴进行。 使用translate(mvMatrix,[x,y,z])函数进行移动操作,其移动也是以当前物体变换后的坐标轴为基础。物体进行旋转后,其坐标轴的方向也发生了变化,其自身坐标系与物体坐标系已经不同,其移动方向以变化后的自身坐标系方向为基准。 使用两种操作时,一定要考虑两种操作的 先后顺序 : 1、先移动后旋转 mat4.translate(mvMatrix,[5,0,0]); mat4.rotate(mvMatrix,degToRad(moonAngle),[0,1,0]); 物体先移动到指定位置(此时,自身坐标系与世界坐标系相同),然后在变换后的位置绕自身坐标轴自转。其结果类似于地球的自转 2、先旋转后移动 mat4.rotate(mvMatrix,degToRad(moonAngle),[0,1,0]); mat4.translate(mvMatrix,[5,0,0]); 未旋转前,物体的自身坐标系与世界坐标系方向相同,旋转后,其自身坐标系方向发生了变化。这时进行移动操作,变换以当前的自身坐标系为基准进行。其结果类似于地球绕太阳公转。 本人是新手,有什么不对的地方还请大家多多指正啊! 来源: CSDN 作者: 无涯Andy 链接: https://blog.csdn