點(diǎn)的應(yīng)用
宇宙從奇點(diǎn)中誕生后专,萬(wàn)物始于一。讓我們從最簡(jiǎn)單的點(diǎn)入手输莺。
創(chuàng)建一個(gè)點(diǎn)
在三維空間中行贪,有x,y,z三個(gè)維度,確定了三個(gè)維度的值模闲,我們就得到了一個(gè)確定的點(diǎn)建瘫。
創(chuàng)建多個(gè)點(diǎn)
那么,如何創(chuàng)建多個(gè)點(diǎn)呢尸折?簡(jiǎn)單地復(fù)制Point.ByCoordinates
肯定不可取啰脚。
還記得如何構(gòu)建一個(gè)數(shù)組嗎?
0..5..#10
实夹,這段數(shù)組從0開(kāi)始橄浓,到5結(jié)束,一共有10個(gè)數(shù)據(jù)亮航。
如果能把這組數(shù)賦值給點(diǎn)的x值荸实,那么我們應(yīng)該能得到沿x排布的10個(gè)點(diǎn)。
利用三角函數(shù)生成曲線
還記得三角函數(shù)嗎缴淋?讓我們簡(jiǎn)單回顧一下初中數(shù)學(xué)知識(shí)准给。
Sin30°=1/2泄朴;Sin45°=(√2)/2;Sin60°=(√3)/2露氮;Sin90°=1 …………
當(dāng)我們把三角函數(shù)用幾何的方式表達(dá)時(shí)祖灰,它們呈現(xiàn)出一些特定的圖形。
比如畔规,我們用x代表度數(shù)局扶,y代表函數(shù)值。隨著x的變化叁扫,y也會(huì)變化三妈,它們之間的變化不是均勻分布的,而是帶有特定的節(jié)奏莫绣。
Dynamo中可以使用三角函數(shù)沈跨,在Math類中。
于是兔综,剛才我們創(chuàng)建的多個(gè)點(diǎn),就可以改造一下狞玛。
x是0到360線性分布的點(diǎn)软驰,y是用Sin函數(shù)計(jì)算處理過(guò)的值,但是這條線的彎曲度不明顯心肪,我們需要調(diào)整它的振幅锭亏,也就是y的值。當(dāng)然硬鞍,調(diào)整x方向的長(zhǎng)度也是可以的慧瘤。
現(xiàn)在已經(jīng)完美了,我們對(duì)x值和y值都源自同一組數(shù)列固该,同時(shí)我們對(duì)x值和y值加上了倍數(shù)锅减,使得它們各自的值可以被放大。這樣伐坏,我們就可以自由調(diào)整函數(shù)曲線的長(zhǎng)度和振幅怔匣。
單向函數(shù)曲面
剛才得到的點(diǎn),可以連成一條曲線桦沉。我們把之前的節(jié)點(diǎn)整合在一個(gè)CodeBlock
中每瞒。
于是,我們可以想象纯露,如果讓這條曲線在Z軸上復(fù)制多個(gè)剿骨,那么就可以連接這些曲線成為一個(gè)曲面。這里可以使用
Geometry.Translate
復(fù)制多條曲線埠褪,然后使用PolySurface.ByLoft
連接曲線浓利,成為曲面挤庇。或者,可以更簡(jiǎn)單些荞膘,直接復(fù)制生成點(diǎn)陣罚随,然后再使用
NurbsSurface.ByPoints
將點(diǎn)陣生成曲面。雙向函數(shù)曲面
剛才的案例非常簡(jiǎn)單羽资,只能生成一個(gè)方向的曲面淘菩。能否將一個(gè)平面的兩個(gè)方向上都生成這種波紋呢?
首先屠升,創(chuàng)建一組數(shù)據(jù)潮改,生成一個(gè)點(diǎn)陣。
然后腹暖,給復(fù)制的方向汇在,加上不同的距離,這個(gè)距離與x的關(guān)系是正弦函數(shù)脏答。
可以看到糕殉,點(diǎn)陣已經(jīng)形成波形。
我們還可以給距離值也做成序列殖告,會(huì)形成另外一種效果阿蝶。
可以改變這個(gè)序列的方向。
兩個(gè)方向的值相加黄绩,就能得到一個(gè)二維方向的波羡洁,可以稱之為蛋型波。
最后爽丹,我們將這個(gè)點(diǎn)陣連接成曲面筑煮,并給個(gè)厚度,會(huì)看起來(lái)更加明顯粤蝎。