2015年7月4日土曜日

ダイナモ白熱教室(5)~点

久しぶりにダイナモを取り上げます。先日ダイナモのサイトをみたところ、バージョンが0.8.1に上がっていましたので、これを使って話を進めます。
バージョン0.8.1が使えます

今回は大量の点をメッシュ状に作成し、これらをつないで面を作成するというプロセスを実験してみます。

原点を中心に50m×20mの点をつくってみる


原点(0,0,0)を中心としてX方向50m、Y方向20mの点を任意のピッチで作成してみます。

まず、Numberノードを2つ追加し、それぞれ名前をWx、Wyとし、値を50、20とします。

X座標は 最小値-25(-(50/2))から最大値25(50/2)です。さらにNumberノードを追加し、「min..max..#res」 (minからmaxの間をres分割した数字のリストを作成する)とすると、ノードの左側に変数として、min、max、resが並びます。
Numberノード
さらに「*」を2つ、「Number」を2つ、Integer Sliderを一つ追加します。二つのNumberノードを「0.5」「-0.5」とし、IntegerSliderの値を50程度にし、下の図のようにそれぞれを接続します。

Watchノードを終端のNumberノードに接続し、内容をチェックします。これがX座標のリストになります。
Watchノードでチェックする

Yについても同じことを繰り返します。0.5、-0.5、IntegerSliderはXY共通で使えます。*2つと終端のNumberノードを選択し、コピーペーストして、Wyをつなぎなおします。


座標の作成

このXとYの座標リストを使って点を作成します。「Point.ByCoodinate」を追加し、XYをつなぎます。

バックグラウンドに座標が現れます。さらにPoint.Coordinatesノードを右クリックし、「レーシング」-「外積」を選びます。

IntegerSliderを動かして、変化を観察してください。

コードブロックを使ってみる

コードブロックを使えば、もう少しグラフをすっきりさせることができます。コードブロックはプログラムを記述するノードなのですが、リストを作成するぐらいであればだれでも気楽に使えます。

画面をダブルクリックすることで、コードブロックを作成します。そして、以下のように記述します。文末には必ず「;」が必要です。

-(a/2)..(a/2)..#res;


そして、既存の0.5、-0.5、*、式をかいたNumberノードを削除し、下の図のようにつなぐことで同じ結果を得ることができます。
コードブロックですっきり
次回はZ座標を加えてみます。