GH Basics GH Tutorial Grasshopper Objects

【Grasshopper Tutorial】 Vector Field

今回はVector Fieldを3次元で使用し、上画像の様なオブジェクトを作成してみようと思います。少ないコンポーネントで実装しています。是非作成してみてください。こちらの記事は動画化しているので、動画の方がよい方は以下にリンクをのせておきます。

概要

上画像がプログラムの全体像となっております。各グループごとに説明していきます。

半球にランダムな点を作成

  1. 「Sphereコンポーネント」で半径100mmの球を作成します。
  2. 「Brep | Planeコンポーネント」で球とXY平面との交線を取得します。
  3. 「Surface Splitコンポーネント」で取得した交線で球を切断します。
  4. 「List Itemコンポーネント」で切断した球の上半分を取得します。
  5. 「Populate Geometoryコンポーネント」で半球の表面にランダムに点を生成します。上画像の様になっていればOKです。

ベクトル場の作成

  1. 「Volumeコンポーネント」で球の中心を取得します。
  2. 「Point Chargeコンポーネント」で球の中心から発する(引きつける)ベクトル場を発生させます。入力端子Cに強さChargeを入力します。正の値を入力すると入力した点から発するベクトル、負の値で入力した点へ向かうベクトルとなります。
  3. 「Point Chargeコンポーネント」の入力端子Dには減衰値を入力します。今回は0を入力しています。入力端子Bにはベクトル場を発生させたい境界を入力しますが、今回は未入力としています。
  4. 「Spin Forceコンポーネント」で球の中心から発する回転するベクトル場を作成していきます。入力端子Sに強さを表す数値を入力します。正の値を入力すると反時計回りのベクトルが、負の値で時計回りのベクトルが取得できます。
  5. 「Spin Forceコンポーネント」の入力端子Rには回転半径を、入力端子Dには減衰値を、入力端子Bにはベクトル場を発生させたい境界を入力します。入力端子Bに関しては今回は未入力としています。
  6. 「Merge Fieldsコンポーネント」「Point Chargeコンポーネント」「Spin Forceコンポーネント」で発生させたベクトル場を結合します。
  1. 生成したベクトル場を確認してみます。中心を球の中心と一致させた1辺100mmの正方形を作成し、「Tensor Displayコンポーネント」を使用して確認します。上画像の様に、中心点に回転しながら向かっていく反時計回りのベクトル場が作成されているのがわかります。「Point Chargeコンポーネント」の値を正の値にすれば中心から離れていくベクトルとなり、「Spin Forceコンポーネント」のStrengthの入力値を負にすれば時計回りのベクトル場となります。試して確認してみてください。
  2. 「Field Lineコンポーネント」を使用して、作成したベクトル場で特定の点を動かした際の動線を可視化します。入力端子Fに作成したベクトル場を入力し、入力端子Pに半球の表面にランダムに作成した点を入力します。入力端子NにはStep数を入力します。
  3. 1枚目の画像の様に、半球の中に画像の緑色のような曲線が取得できていればOKです。

完成

  1. 最後に、先ほど取得した曲線を「Extrude Pointコンポーネント」で球の中心に向かって押し出していき完成です。
  2. 上画像のようになっていればOKです。

以上になります、変数を変えてみながらどうな挙動をするか確認してみてください。(※動作が重いかもしれませんので注意してください。)Vector Fieldを使用した別のチュートリアルも以前作成しましたので、よろしければ以下のリンクからのぞいてみてください。

-GH Basics, GH Tutorial, Grasshopper, Objects
-, ,