重なる領域の可視化とは?
Grasshopperで複数の四角形が重なる状況、例えば都市計画のゾーニング分析やデザインのレイアウト検討で、その重なり具合を視覚的に把握したいことはありませんか?今回は、重なり領域が「何回」重複しているかを判定し、その度合いに応じて色分け表示するGrasshopperのロジックを解説します。特定の重複度を持つ領域を青、別の重複度を持つ領域を黄といった具合に、明確に可視化する方法を見ていきましょう。
重複領域の抽出と分割
まず、入力となるすべての四角形を`Boundary Surface`コンポーネントで平面サーフェスに変換します。
次に、これらのサーフェスすべてを`Region Union`(または`Solid Union`)で結合し、全体の統合された形状を得ます。この統合サーフェスに対し、元の各サーフェスを「カッター」として`Region Split`(または`Solid Split`)コンポーネントで分割します。これにより、重なりによって細かく分割された、ユニークな個々のサブ領域(セル)が生成されます。これが重複度を判定する準備段階です。
重複度の判定ロジック
分割された各サブ領域(セル)に対し、`Area`コンポーネントで重心点を取得します。
この重心点が、元のどのサーフェスに含まれているかを`Point in Brep`コンポーネントで判定します。`Point in Brep`の「Point」入力には重心点を、「Brep」入力には元のすべてのサーフェスを接続します。データツリーは、重心点とすべてのオリジナルサーフェスのペアで判定が行われるように`Graft`などで調整しましょう。
`Point in Brep`の出力(True/False)を`Mass Addition`コンポーネントで合計することで、その重心点が含まれるオリジナルサーフェスの数、すなわちそのサブ領域の「重複度」を数値として取得できます。
重複度に応じた色分け表示
重複度を数値として取得できたら、視覚化の段階です。算出した重複度を基に、`Dispatch`や`Cull Pattern`、`Larger Than`などのコンポーネントを組み合わせて、サブ領域を重複度別に分類します。
例えば、「重複度2の領域」「重複度3の領域」といったグループ分けです。それぞれのグループに対し、`Colour Swatch`で定義した色(例:青、黄)を`Custom Preview`コンポーネントで適用します。これにより、重なり具合が一目でわかるビジュアライゼーションが完成します。
まとめ:応用例と発展
このGrasshopperロジックは、単なる色分けに留まらず、都市計画のゾーニング分析、日影規制の検討、デザインにおけるレイヤーの優先順位付けなど、多岐にわたる分野で応用可能です。スクリプトを調整することで、より複雑な形状や多段階の重複度判定にも対応できます。ぜひこの手法をあなたのプロジェクトに取り入れ、Grasshopperの可能性を広げてみてください。
