對於小立方體組合的三視圖問題,每次都要花不少時間來畫幾何體,又要畫出相應的三視圖?
本文讓你輕鬆搞定這個問題!
下文默認立方體的點1都是指立方體的左下角:
先來看下效果:
可以看到,當小立方體的擺放比較有規律性時,可以選擇一個基準點,即可向左或向右、向前或向後、向上或向下擺放小立方體。
你可能發現最上面的白色輸入框沒有用到,別急!下面再舉個例子:
可以看到,只要在白色的輸入框中輸入點的座標,即可產生相應位置的小立方體。
也就是說,比較有規律性的,可以在粉色輸入框中輸入;其他的,在白色輸入框中輸入。
我們來看看這個作品是如何製作的!
創建輸入框
我們知道創建
輸入框時,選擇關聯對象,即可通過輸入框的輸入,改變所關聯的對象。假設輸入框的標題與關聯對象如下:
那麼,就需要先定義相關的對象。其中,A,B為點,a,b,h為數值。
▪ 於是,可定義:
▪ 接著,可創建五個輸入框:
以第二個輸入框為例,操作如下:
第一個輸入框的效果製作
在第一個輸入框輸入點的座標,即有相應的立方體:
這是如何做到的呢?
先看下圖:
可以發現,正六面體(P, P+(1, 0, 0))即可構造以點P為左下角的立方體。
假設已有點A,B,C,D,需分別作出以這些點為左下角的立方體。那麼,可以這麼做:
將這些點放進一個列表中,即:
l1 = {A, B, C, D}
構造以這些點為左下角的立方體,即:
映射(正六面體(P, P+(1, 0, 0)), P, l1)
其中,映射(zip) 指令:
映射( , , , , , ... )
具體理解可見下圖:
而,第一個輸入框關聯的對象為點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))
另外的兩種情況,同理,可以寫出。
創建按鈕
“三視圖”的按鈕說明,請參見 。
至此,該作品就完成了!
回顧
如需源文件,請轉發並評論本文。
閱讀更多 啊K數學 的文章