下載app免費領(lǐng)取會員
該樣例文件主要是介紹Dynamo中與Math相關(guān)的應(yīng)用,Dynamo中的數(shù)學可以通過公式節(jié)點“Formula”、代碼塊“Code Block”或者節(jié)點庫中與數(shù)學相關(guān)的節(jié)點完成。
10、這個例子以點的網(wǎng)格為起點,計算點的Z坐標,然后生成曲面。
10.1 通過節(jié)點Code Block輸入公式“-10..10..#20”,生成一個從-10到10間距相等、項數(shù)為20的列表。
10.2 通過節(jié)點Point.ByCoordinates生成點圖元,連綴方式為叉積。
10.3 將生成的點列表經(jīng)過節(jié)點Flatten展平以后,獲取點的X分量和點的Y分量。
10.4 通過節(jié)點Math.Pow求步驟10.3中X分量的二次方和Y分量的二次方,然后用一個數(shù)字滑塊計算第三個二次方的結(jié)果。
10.5 做兩個加法運算,獲得三個二次方結(jié)果的和。然后通過節(jié)點Math.Sqrt計算總和的平方根。由于X分量的二次方與Y分量的二次方都有不同的數(shù)值,因此它們的和也是不同的。
10.6 節(jié)點Math.RadiansToDegrees可以將以弧度為單位的角度轉(zhuǎn)化為以度為單位的角度,然后通過節(jié)點Math.Sin計算正弦值。最后正弦值的結(jié)果除以弧度后乘以一個系數(shù),這個系數(shù)由一個滑塊控制。
10.7 通過節(jié)點Point.ByCoordinates生成點圖元,點坐標的X分量與Y分量和之前的點一樣,點坐標的Z分量為步驟10.6中計算的結(jié)果。
10.8 有了點的列表之后,將大列表用節(jié)點List.Chop拆分為20個子列表,拆分后子列表的項數(shù)為步驟10.2中子列表的數(shù)量。
10.9 經(jīng)過節(jié)點NurbsCurve.ByPoints連線,可以直觀地查看到上一步子列表中點的存放規(guī)律,同一個子列表中的點生成一條樣條曲線,共20條。
10.10 最后用節(jié)點Surface.ByLoft將生成的樣條曲線通過融合命令生成曲面。
10.11 調(diào)整其中的兩個滑塊,可以調(diào)整整個圖形的形狀。
11、通過Python Script完成相同的效果。
11.1 打開節(jié)點Python Script,在第5行將與數(shù)學相關(guān)的模塊導入。
11.2 第8行至第11行創(chuàng)建四個參數(shù)amp、x、y和c,分別對應(yīng)著四個輸入端IN[0]、IN[1]、IN[2]和IN[3]。
11.3 第14行創(chuàng)建一個空的列表,名稱為z。
11.4 第17行創(chuàng)建一個for循環(huán)。參數(shù)x是一個列表,該列表共有20個索引項,因此將會循環(huán)20次。
11.5 第18行至第21行是循環(huán)的主體,整個過程與步驟10中相關(guān)的節(jié)點功能一致。
11.6 第24行將第21行的結(jié)果放進列表z,直到循環(huán)結(jié)束。
11.7 第27行將整個python Script的輸出結(jié)果定義為z,因此這個節(jié)點輸出的結(jié)果為列表z中的數(shù)值。
12、通過節(jié)點Formula完成相同的效果。
12.1 整個流程與普通節(jié)點的流程一致,不同點是節(jié)點Formula應(yīng)用的函數(shù)是屬于外部函數(shù),并不是Dynamo內(nèi)部的函數(shù),因此將角度處理為弧度。
12.2 在節(jié)點Formula中輸入公式“A * sin( sqrt( pow(x,2) + pow(y,2) + pow(c,2) ) ) / sqrt( pow(x,2) + pow(y,2) + pow(c,2) )”。
13、通過節(jié)點Code Block完成相同的效果。
13.1 節(jié)點Code Block調(diào)用的函數(shù)與Dynamo自帶的函數(shù)是一樣的,因此Code Block中的表達與普通節(jié)點是一樣的,因此運用的函數(shù)名稱與Dynamo中自帶的函數(shù)相匹配。
13.2 節(jié)點Code Block中依次輸入四行內(nèi)容。
13.3 第一行“ sum = Math.Pow(x,2) + Math.Pow(y,2) + Math.Pow(c,2);”。
13.4 第二行“num1 = Math.Sqrt(sum);”取平方根。
13.5 第三行“num2 = Math.Sin( Math.RadiansToDegrees(num1) );”將弧度轉(zhuǎn)化為度后計算正弦值。
13.6 第四行“A * num2 / num1;”。這四行內(nèi)容中應(yīng)用到的節(jié)點名稱與普通節(jié)點的名稱是一樣的,但是能夠添加參數(shù),讓表達更靈活、更簡潔。
本文版權(quán)歸腿腿教學網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。
下一篇:Revit放置風管附件并調(diào)試設(shè)置?
推薦專題