2024年12月8日日曜日

【Grasshopper_105】三角形の中に円を敷き詰める方法


今年もいよいよ残すところあと1カ月を切りました。今年最後の投稿となりますが、三角形の枠の中に円を敷き詰めるサンプルの作り方を書いてみたいと思います。三角形が正三角形に近いほどドットの間隔が一定になります。面積がバラバラだと密度の濃淡が出てしまうので調整が難しいかもしれません。



・まずはRhinocerosで適当な3Dサーフェスを作成したらGrasshopperに取り込みます。

・取り込んだ3DサーフェスをXZ平面上に投影しますが、その縦横比を参考に長方形のサーフェスを作り、三角形を敷き詰めます。

・元の3Dサーフェスに近いサーフェスを新たに作成し、Map To Surfaceコンポーネントを使って三角形をマッピングさせます。制御点の位置を調整し、三角形がなるべく均等な大きさになるようにします。

・その後、三角形のエッジをオフセットさせ、元の3Dサーフェスに投影します。

・元の3Dサーフェスと投影した三角形をXY平面上に展開します。Topビューで見やすいように90度回転させてますが、この辺りはお好みで。

・展開した曲線はポリラインカーブとなっているため、Rebuild Curveコンポーネントにつないで3次曲線に変換してからEdge Surfaceコンポーネントにつないでサーフェス化します。

・サーフェス化した三角形にドットを敷き詰める工程に行く前に、二つの形に分けて起きます。片方をA、もう片方をBとしておきます。

・まずはAのほうから進めます。三つの頂点のうち、左下を基点とするため点のXYZ座標をソートして取り出します。その向かいにある辺を長辺、それ以外の2辺を短辺として同時に取り出して起きます。

・頂点と長辺の間に補間曲線を作成します。

・展開したカーブに対し、1mm内側にオフセットさせ、同じくサーフェスを作成します。

・補間曲線を短辺で分割して三角形の内側部分を取り出します。

・補間曲線上に点群を作成します。点の増加割合は、Seriesコンポーネントを使って調整します。今回は1ずつ増やしていきます。

・三角形の1mm内側にオフセットさせたサーフェスにUV座標を使って対応する座標を求めます。

・点群をSquishBackコンポーネントにつないで元の3Dサーフェスに戻してから円を作成し、法線方向に投影します。今回はY軸に対し左側をミラー反転していますが、このあたりはお好みで。

・同じ作業をBのほうも行います。

・最後に面分割したら完成です。

0 件のコメント:

コメントを投稿

【Grasshopper_105】三角形の中に円を敷き詰める方法

今年もいよいよ残すところあと1カ月を切りました。今年最後の投稿となりますが、三角形の枠の中に円を敷き詰めるサンプルの作り方を書いてみたいと思います。三角形が正三角形に近いほどドットの間隔が一定になります。面積がバラバラだと密度の濃淡が出てしまうので調整が難しいかもしれません。