Voronoi 3Dコンポーネントの使い方について解説します。


グラスホッパー上では上の2つのどちらかで表されます。
3次元のボロノイを作成する
Voronoi 3Dを使うことで、3次元のボロノイを作成することができます。
ボリュームと点群を指定することで、ボリュームを点を中心とするボロノイで、分割します。
ボリュームは、ソリッドやBrepオブジェクト、メッシュ、SubDなど使うことができます。

最初は、こちらの点群とボリュームを使って解説していきます。
Voronoi 3Dの基本

Voronoi 3Dの基本です。
P端子に、それぞれのボロノイの中心となる点群データをつなぎます。
今回は、Pointに格納された点群データをつなげています。
B端子に、ボロノイで分割される、ボリュームのデータをつなげます。
今回は、Brepに格納されたボリュームデータをつなげています。
このボリュームを枠として、ボロノイが作成されます。

点群とボリュームのデータをつなげると、このように3次元のボロノイが作成されました。

このように、点がボロノイの中心になっていることが分かります。
Voronoi 3Dと一緒によく使われるPopulate 3D

Voronoi 3Dと一緒に、よくPopulate 3Dが使われます。
Populate 3Dは、ボリュームの中に指定した数だけランダムな位置に点群を作成します。
Populate 3DのR端子に、ボリュームをつなげ、N端子に点の数の数値を入力します。
今回は、N端子の数値を30にしました。
その後、Populate 3DとVoronoi 3DのP端子を、それぞれつなげます。

すると、この方法でも手軽に、3次元のボロノイを作成することができました。
点群の数値を変更するだけで、ボロノイの数も調節することができるので、おすすめです。
Voronoi 3Dから出力されるデータ

追加コンポーネント:①List Item
Voronoi 3Dから出力されるデータを見てみましょう。
C端子からは、ボロノイの閉じたBrepオブジェクトが出力されます。
B端子からは、TrueかFalseのどちらかのデータが出力されます。
これは、それぞれのボロノイが、元々のボリュームの枠に触れている場合はTrueと表示され、枠に触れていない場合は、Falseと表示されます。
今回の場合、9番目のデータがFalseなので、9番目のボロノイをList Itemで抽出してみます。

他のボロノイと一緒に見ると少し見にくいですが、内側にあるボロノイが緑で表示されています。

他のボロノイを非表示にしてみると、外側の枠に触れていないボロノイが表示されてるのが分かります。
このように、B端子からはTrueかFalseでボロノイが、外側にあるのか内側にあるのかを識別できます。
Voronoi 3Dコンポーネントを使用しているグラスホッパー記事はこちら↓
Comment