极客小将

您现在的位置是:首页 » scratch编程资讯

资讯内容

用Scratch做一个3D引擎

极客小将2021-01-07-
4.    旋转 物体旋转涉及到三角函数的知识。推导过程需要一定的篇幅。我们只需要记住简单的结论来应用就可以了。 旋转可以分为三种:沿x轴的旋转、沿y轴的旋转和沿z轴的旋转。

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轴旋转时的变换情况。有兴趣的同学可以自己推导出坐标的变换规律。

upload/article/images/2021-01-07/10f2edd0b929ae2b8357a3ddfbf9ff2a.jpg

注意上面说的坐标变化都是物体原3D坐标的变化,而不是投射在2D平面上的投射坐标的变化。换言之,旋转改变物体坐标后,还要重新计算投射坐标。

旋转的实现方法:

upload/article/images/2021-01-07/3bcd837541a340134e88c765c8488aa6.jpg

upload/article/images/2021-01-07/b3bbfaf72966a8a9c37846d54624d0dc.jpg

upload/article/images/2021-01-07/f014894576dcc237d041ae9f327dbf27.jpg

效果如下:

https://cdn.china-scratch.com/timg/190809/1344432c5-4.gif

声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除

网友点评

共有5条评论来说两句吧...

在线客服