前回作成したコサインカーブのZ座標をXY平面の座標に割り当ててみます。前回の最後のグラフは次のようになっていました。
|
このグラフでできたCosカーブをすべての座標に割り当てる |
Point.Add / Vector.ByCoordinates
点にベクトルを与えて新しい点を作成するノードです。引数は
の二つで、pointは前々回に作成した、XY平面上(Z=0)の点のリストで、vectorToAddは前回のコサインカーブを基に新たに作成します。
VectorByCoordinatesのノードを追加し、下の図の水色の部分のようにZにつなぎます。
|
Zベクトルを作成 |
このベクトルを各点に割り当てます。まず、上図のピンク色のPoint.ByCoordenatesノードの右下の□をクリックし、リストを表示します。次にそのリストの最初の[0]Listを選択すると、背景の3Dビューに[0,0]などのインデックスが表示され、最初のリストがどこにあるのかを目視確認できます。
|
リストの所在が確認できる |
この列に対して、コサインカーブを割り当てます。
List.Map
ベクトルを加算するリストは2次元配列になっています。この1次元側にZベクトルを加算します。この場合List.Mapを使い、各リストに処理をマッピングします。
を追加し、次の図のように接続します。
|
List.Map |
結果は下の図のようになります。
|
Y方向にコサインカーブを割り当て |
List.Transpose
今度はX方向にコサインカーブを割り当ててみます。ピンク色の部分のPoint.ByCoordinatesからは[X,Y]のリストが出てくるので、これを反転して[Y,X]のリストにしてマップします。リストのX、Yを入れ替えるにはエクセルでもおなじみのTransposeノードを使用して、下の図のようにつなぎます。
|
Transpose |
結果は・・・
|
X方向にコサインカーブを割り当て |
NurbsCurve.ByPoint
この点を結んで曲線を作成し、さらに面を張ってみましょう。まずは
を追加し、List.Mapに接続します。すると、各リストがつながって曲線として表示されます。
|
NurbsCurve.ByPoints |
Surface.ByLoft
曲線をつないで面を作成します。
を追加し、NurbsCurve.ByPointsに接続すると、面が作成できます。
|
X方向にコサインカーブを割り当てた面の作成 |
Transposeを使わない最初のバージョンであれば
|
Y方向にコサインカーブを割り当てた面 |
ここでは「点」→「線」→「面」の基本的な流れを説明しました。