用户:
雲雨轩查看:3 回复:5 评论:3 创建时间:2020-03-12T14:10:48
已下是我要讲的内容作品:
也可以买哦:https://shequ.codemao.cn/work/43214511?entry=copy_work_url
这个是怎么做的呢,
这个地方就是要把3D的东西投影到2D平面上。因为屏幕是2D的,所以要显示3D的东西必须用投影。于是投影就需要一个将xyz三个轴缩到xy两个轴的公式。这里就给出了公式。
这就是画正方体的函数,靠自己的空间想象能力也是可以做出来的
这里就是画正方体阵列的地方了。可以看到中间用了八个函数积木,也就是画了八个正方体。变量说明:ts是倍率。
这里就是正方体阵列跟着鼠标运转的地方。如果不添加这个,开始后鼠标坐标就不会刷新,以至于xt和yt都变成NaN(无限大),然后会出现错误
使变量: 




这里完全不用这样的算法,直接设置xt为鼠标x坐标就行了,但是那样会比较僵硬。可以观察到程序运行的时候鼠标划一下,正方体阵列的方向不是直接变成那样的,而是中间有一个过程。这个算法就是不让正方体阵列的转动过程显得僵硬。
这里跟上面有相同之处,都是让屏幕显示的正方体阵列变化不僵硬。然而这个地方算法是为了正方体阵列的大小变化不僵硬而制作的。我在信息课上用scr3做的时候,没做这个算法,所以积木块特别少。当我加了这一块以后,我发现这一部分可以说是作品中积木块最多的。
变量的说明:这中间td是倍率变化的速度。
这里是限制倍率的模块。
我在用scr做的时候是没有这个模块的,因为scr变量再怎么加减都不会出现偏差。然而编程猫变量频繁地进行运算时,会出现一个bug:变量值出现了偏差。比如,2+0.2可能运算成2.199999999996。因此这部分时非常必要的,因为这个作品的“td”变量出现一点误差也是要不得的。
等待一秒是为了避免刚开始时帧率检测过高,主要作用体现在平均帧率上
设置变量:
这个变量的作用就是记录0.1秒前的帧率,然后0.1秒后输出,因此帧率输出的时间就是0.1秒一次,而不是每时每刻都在输出,这样可以让我们看清楚帧率。
同时,为了方便,这里已经把帧率舍去了十分位以后的几乎没有意义的位数。
这个函数就是输出精确到小数点后十分位的浮点数,比如输入12.5输出12.5,输入24输出24.0。
这个函数是帧率输出用的。
和上方函数相似。
这个函数是帧率输出用
等待一秒是为了避免开头帧率超长。
你听懂了么,听不懂得话:
https://shequ.codemao.cn/work/43214511?entry=copy_work_url
购买作品哦
优优工作室正在招新,无门槛哦