矩形、直角三角形、直角梯形、半圆分别绕其一条边、一条直角边、一条高、一条直径所在直线,旋转一周,会形成什么几何体呢?
我们来看看直观形象的动态演示:

转发本文,可获取源文件【具体,请见文末】
效果挺不错的吧?
猜一猜是用什么方法做到的!
再来看另一种效果:

这一个制作,可以感受到电脑在努力工作.....
明显不是很顺畅!
所以,啊K就想着调一调“速度”。然而,在不断“加速”的过程中,直接把“直角梯形”的情况卡没了......
由此,你可以猜到是用什么方法做出来的吗?
这种方法,单单一个旋转体的形成,计算量就很大了。再加上,有多个旋转体,还有增量、速度方面的调整,又大大的增加了计算量。
这一种是由序列得到的,我们且称为序列法。

以矩形旋转一周为例。
先构造矩形:
q1 = 多边形((0, 0, 0), (1, 0, 0), (1, 0, 3), (0, 0, 3))
再创建滑动条:
α = 滑动条( 0°, 360° )
至于将矩形旋转一周,可当做是逐渐产生一系列绕着z轴的矩形,于是:
l1 = 序列(旋转(q1, k, z轴), k, 0°, α, 0.5°)
拉动滑动条α,即有将矩形旋转一周,生成圆柱的效果。

备注:多边形(polygon)、滑动条(slider)、序列(sequence)、旋转(rotate)、z轴(zAxis)。
只要把“面”构造出来,再运用序列法,即可做到“面动成体”的效果。
再来说一说开篇的动态演示是如何制作的。

利用曲面(surface)生成,效果较好。
我们知道:曲面指令,其实就是已知参数方程,再套进去。
圆柱面参数方程:

创建滑动条:
α = 滑动条( 0°, 360° )
生成圆柱面:
a = 曲面(cos θ, sin θ, h, θ, 0, α, h, 0, 3)

而曲面指令生成的只是外部,所以,还需要旋转前的矩形:
q1 = 多边形((0, 0, 0), (1, 0, 0), (1, 0, 3), (0, 0, 3))
旋转时的矩形:
q1' = 旋转(q1, α, z轴)
当旋转到360°,还显示q1,q1',效果不是很好。于是,可考虑让α等于360° 时,不显示q1,q1'。
这就涉及到“显示条件”,而且,有多个对象需要设置,我们稍后再说明。
由上可见,曲面法的关键在于知道参数方程,即可进行制作。
所以,其他旋转体的生成,同理,也可以做到,具体如下:

这里,附上相关参数方程:

来源于网络

来源于网络
至于我们刚刚提到的显示问题,可以利用滑动条n来控制。
n = 滑动条(1,4,1)
当n等于1时,显示生成圆柱的对象,即:显示a,q1,q1'。

在显示条件框中,输入n==1
但,q1,q1',我们希望α为360°时,不显示。也就是n等于1,且α不等于360°时,才显示q1,q1'。
于是,其显示条件为:n==1&&α!=360°,敲回车键后,如下图所示:

备注:&&即为“且”,Shift键 7即可打出&。
其他对象的显示条件,类似的,也可以写出来:

至于滑动条n分别取1,2,3,4时,如何做到显示不同的标题?

只需在滑动条n的更新时脚本输入:
如果(n==1,设置标题(n,"$\Large 矩形$"),n==2,设置标题(n,"$\Large 直角三角形$"),n==3,设置标题(n,"$\Large 直角梯形$"),设置标题(n,"$\Large 半圆$"))
赋值(α,0°)
其中,赋值(α,0°)是为了让n更新时,使得旋转体处于初始状态,即未开始旋转。
最后,再创建按钮,其脚本为:
启动动画(α)

备注:设置标题(setcaption)、赋值(setvalue)、启动动画(startanimation)。
至此,就完成了整个作品。
结语曲面(surface)、曲线(curve)指令的应用都比较广泛,且,效果不错。

画圆-来源于往期教程
如需源文件,请转发本文,并写上:轻松get面动成体。
,















