用Scratch做一个3D引擎
2019-08-07 13:44
4. 旋转
物体旋转涉及到三角函数的知识。推导过程需要一定的篇幅。我们只需要记住简单的结论来应用就可以了。
旋转可以分为三种:沿x轴的旋转、沿y轴的旋转和沿z轴的旋转。
- 沿x轴旋转时,物体的x坐标不变,y坐标和z坐标的变换规律是(A为旋转角度):
新的y坐标 = y * cos A + z * sin A
新的z坐标 = z * cos A – y * sin A
- 沿y轴旋转时,物体的y坐标不变,x坐标和z坐标的变换规律是(A为旋转角度):
新的x坐标 = x * cos A – z * sin A
新的z坐标 = x * sin A + z * sin A
- 沿z轴旋转时,物体的z坐标不变,x坐标和y坐标的变换规律是(A为旋转角度):
新的x坐标 = x * cos A – y * sin A
新的y坐标 = x * sin A + y * cos A
下图显示了沿z轴旋转时的变换情况。有兴趣的同学可以自己推导出坐标的变换规律。
注意上面说的坐标变化都是物体原3D坐标的变化,而不是投射在2D平面上的投射坐标的变化。换言之,旋转改变物体坐标后,还要重新计算投射坐标。
旋转的实现方法:
效果如下:
--end--
声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com