下載app免費(fèi)領(lǐng)取會(huì)員
1、首先通過(guò)節(jié)點(diǎn)Rectangle.ByWidthLength創(chuàng)建一個(gè)矩形,這個(gè)節(jié)點(diǎn)的第一個(gè)輸入端plane需要一個(gè)平面作為矩形的定位平面,矩形的中心將位于所輸入平面的中心。圖中輸入的平面是X軸與Y軸組成的平面。輸入端width與length分別為矩形的寬度與長(zhǎng)度,圖中將它們都定義為100個(gè)單位。最后用節(jié)點(diǎn)Surface.ByPatch將矩形封閉形成曲面。
2、通過(guò)節(jié)點(diǎn)Surface.PointAtParameter獲取曲面上的點(diǎn)。輸入端surface輸入一個(gè)曲面。輸入端u和輸入端v分別輸入曲面上兩個(gè)方向的坐標(biāo),該坐標(biāo)值位于區(qū)間[0, 1]中。圖中所輸入的兩個(gè)坐標(biāo)都為0和1之間均分為50份的各個(gè)數(shù)值。最后將節(jié)點(diǎn)Surface.PointAtParameter的連綴方式改為叉積就獲得圖中的點(diǎn)陣。
3、建立一個(gè)CodeBlock。
3.1 第一行是創(chuàng)建一個(gè)列表,該列表的數(shù)值與數(shù)學(xué)中正弦函數(shù)有關(guān)。Math.Sin(x*360*cycles)中變量x是0至1之間均分為50份后的列表。變量cycles表示周期,乘以360之后就能控制函數(shù)的頻率。變量amp表示幅度,數(shù)值越大,所獲得的結(jié)果就越大。
3.2 第二行使用了列表處理中的函數(shù)Transpose,可以將輸入的列表進(jìn)行轉(zhuǎn)置。
3.3 最后的變量eggShellList是前兩個(gè)小步中數(shù)據(jù)的和,用于下一步中各個(gè)點(diǎn)移動(dòng)的距離。
4、節(jié)點(diǎn)Geometry.Translate能夠?qū)⑤斎氲膶?duì)象進(jìn)行移動(dòng)復(fù)制。在上一步中,一個(gè)數(shù)據(jù)經(jīng)過(guò)正弦函數(shù)計(jì)算之后,會(huì)有50個(gè)數(shù)據(jù)合在一個(gè)子列表中。一共有50個(gè)數(shù)據(jù),因此生成50x50=2500個(gè)新數(shù)據(jù)。剛好我們生成的點(diǎn)就是2500個(gè),每個(gè)點(diǎn)對(duì)應(yīng)一個(gè)移動(dòng)的距離。節(jié)點(diǎn)Geometry.Translate的輸入端geometry輸入需要移動(dòng)的幾何圖形。輸入端direction輸入移動(dòng)的方向,圖中為世界坐標(biāo)系Z軸的正方向。輸入端distance輸入移動(dòng)的距離。
5、節(jié)點(diǎn)NurbsSurface.ByPoints能夠依據(jù)輸入的點(diǎn)生成曲面,但是在輸入點(diǎn)之前先通過(guò)一個(gè)代碼塊控制所輸入的點(diǎn)。sineStrips表示所有點(diǎn)組合成的列表,隨后的一對(duì)中括號(hào)表示提取列表中指定的索引項(xiàng)。索引項(xiàng)從0開(kāi)始直到某個(gè)數(shù)值,這個(gè)數(shù)值是由列表的項(xiàng)數(shù)減去1之后乘以一個(gè)系數(shù),該系數(shù)位于區(qū)間[0, 1]之間,相當(dāng)于控制了該曲面所覆蓋的點(diǎn)的范圍。
本文版權(quán)歸腿腿教學(xué)網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。
下一篇:DynamoPrimer解析之ARCH-Selecting-BaseFile
推薦專題