怎么根据三视图确定立方体个数(教你搞定小立方体组合的三视图)
对于小立方体组合的三视图问题,每次都要花不少时间来画几何体,又要画出相应的三视图?
本文让你轻松搞定这个问题!
下文默认立方体的点1都是指立方体的左下角:
先来看下效果:
源文件获取方式,请见文末
可以看到,当小立方体的摆放比较有规律性时,可以选择一个基准点,即可向左或向右、向前或向后、向上或向下摆放小立方体。
你可能发现最上面的白色输入框没有用到,别急!下面再举个例子:
源文件获取方式,请见文末
可以看到,只要在白色的输入框中输入点的坐标,即可产生相应位置的小立方体。
也就是说,比较有规律性的,可以在粉色输入框中输入;其他的,在白色输入框中输入。
我们来看看这个作品是如何制作的!
创建输入框
我们知道创建输入框时,选择关联对象,即可通过输入框的输入,改变所关联的对象。
假设输入框的标题与关联对象如下:
那么,就需要先定义相关的对象。其中,A,B为点,a,b,h为数值。
▪ 于是,可定义:
▪ 接着,可创建五个输入框:
以第二个输入框为例,操作如下:
第一个输入框的效果制作
在第一个输入框输入点的坐标,即有相应的立方体:
这是如何做到的呢?
先看下图:
正六面体即cube
可以发现,正六面体(P, P (1, 0, 0))即可构造以点P为左下角的立方体。
假设已有点A,B,C,D,需分别作出以这些点为左下角的立方体。那么,可以这么做:
将这些点放进一个列表中,即:
l1 = {A, B, C, D}
构造以这些点为左下角的立方体,即:
映射(正六面体(P, P (1, 0, 0)), P, l1)
其中,映射(zip)指令:
映射( <表达式>, <变量1>, <列表1>, <变量2>, <列表2>, ... )
具体理解可见下图:
而,第一个输入框关联的对象为点A,我们只需要将每次输入得到的点A放进列表l1中,就可以达到输入点的坐标,即可构造相应的立方体的效果。
▪ 于是,先定义空列表,即:
l1={}
▪ 接着,在第一个输入框的更新时脚本输入:
赋值(l1,追加(l1,A))
备注:赋值即setvalue,追加即append。
赋值(l1,追加(l1,A))的解释,可参见链接的第二部分。
▪ 再在指令栏输入:l2 = 映射(正六面体(P, P (1, 0, 0)), P, l1)
至此,就可以做到:在第一个输入框输入点的坐标,即有相应的立方体。
其他输入框的效果制作
▪ 先构造向量(vector):
由B点开始,向右摆放a个小立方体,即为:
序列(平移(正六面体(B, B (1, 0, 0)), k u), k, 0, a-1)
序列(sequence)、平移(translate):
序列( <表达式>, <变量>, <起始值>, <终止值> )
平移( <几何对象>, <向量> )
具体理解:
▪ 假设a<0时,可以向左摆放立方体,只需改写为:
l3 = 序列(平移(正六面体(B, B (1, 0, 0)), k u), k, 如果(a<0, a 1, 0), 如果(a<0, 0, a-1))
另外的两种情况,同理,可以写出。
创建按钮
“三视图”的按钮说明,请参见上一篇。
至此,该作品就完成了!
回顾
如需源文件,请转发并评论本文。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com