前回作成したコサインカーブのZ座標をXY平面の座標に割り当ててみます。前回の最後のグラフは次のようになっていました。
![](//2.bp.blogspot.com/-db9LMFb5rhI/VaBz-bVqVMI/AAAAAAAAB98/Wv74pv_BqqQ/s400/Dyn611.png) |
このグラフでできたCosカーブをすべての座標に割り当てる |
Point.Add / Vector.ByCoordinates
点にベクトルを与えて新しい点を作成するノードです。引数は
の二つで、pointは前々回に作成した、XY平面上(Z=0)の点のリストで、vectorToAddは前回のコサインカーブを基に新たに作成します。
VectorByCoordinatesのノードを追加し、下の図の水色の部分のようにZにつなぎます。
![](//2.bp.blogspot.com/-LvHpdAJgyqI/VaB0QJLoEgI/AAAAAAAAB-E/R8qQ39ZHsM4/s400/701.PNG) |
Zベクトルを作成 |
このベクトルを各点に割り当てます。まず、上図のピンク色のPoint.ByCoordenatesノードの右下の□をクリックし、リストを表示します。次にそのリストの最初の[0]Listを選択すると、背景の3Dビューに[0,0]などのインデックスが表示され、最初のリストがどこにあるのかを目視確認できます。
![](//3.bp.blogspot.com/-6yTgZpqJ8m0/VaB4tdBpMGI/AAAAAAAAB-Q/BvO-xcKefac/s400/702.PNG) |
リストの所在が確認できる |
この列に対して、コサインカーブを割り当てます。
List.Map
ベクトルを加算するリストは2次元配列になっています。この1次元側にZベクトルを加算します。この場合List.Mapを使い、各リストに処理をマッピングします。
を追加し、次の図のように接続します。
![](//1.bp.blogspot.com/-ygcJMA4MTQ0/VaCEVJ48ePI/AAAAAAAAB-g/4znSgXJW8bc/s400/703.PNG) |
List.Map |
結果は下の図のようになります。
![](//3.bp.blogspot.com/-oklCP8Wp38E/VaCE44TYdTI/AAAAAAAAB-o/1MLQgDYGvsI/s400/704.PNG) |
Y方向にコサインカーブを割り当て |
List.Transpose
今度はX方向にコサインカーブを割り当ててみます。ピンク色の部分のPoint.ByCoordinatesからは[X,Y]のリストが出てくるので、これを反転して[Y,X]のリストにしてマップします。リストのX、Yを入れ替えるにはエクセルでもおなじみのTransposeノードを使用して、下の図のようにつなぎます。
![](//2.bp.blogspot.com/-hFEUTwggsKU/VaCF2u20AHI/AAAAAAAAB-0/Qhr6dQ72Hp0/s400/705.PNG) |
Transpose |
結果は・・・
![](//2.bp.blogspot.com/-3Tt5LHp2DIs/VaCGbWxLK2I/AAAAAAAAB-8/GUwQ7kQtJp8/s400/706.PNG) |
X方向にコサインカーブを割り当て |
NurbsCurve.ByPoint
この点を結んで曲線を作成し、さらに面を張ってみましょう。まずは
を追加し、List.Mapに接続します。すると、各リストがつながって曲線として表示されます。
![](//4.bp.blogspot.com/-1HLdPY1jm2E/VaCHY2LvzII/AAAAAAAAB_I/_-5pGVQMFW4/s400/707.PNG) |
NurbsCurve.ByPoints |
Surface.ByLoft
曲線をつないで面を作成します。
を追加し、NurbsCurve.ByPointsに接続すると、面が作成できます。
![](//4.bp.blogspot.com/-TMiwsHGeSz0/VaCIAX8PtdI/AAAAAAAAB_Q/MWaSYr4Qspk/s400/708.PNG) |
X方向にコサインカーブを割り当てた面の作成 |
Transposeを使わない最初のバージョンであれば
![](//4.bp.blogspot.com/-fdHVIKX5q-0/VaCIfFAbAnI/AAAAAAAAB_Y/9F4CuBj7wFA/s400/709.PNG) |
Y方向にコサインカーブを割り当てた面 |
ここでは「点」→「線」→「面」の基本的な流れを説明しました。