2025年8月2日土曜日

【Grasshopper_113】ランダムな三角形の大きさを徐々に小さくしつつ色を2色に分ける

今回はタイトルに記載している内容で作ってみました。ランダムに取捨選択する方法については、randomコンポーネントを使う方法が真っ先に思いつきますが、乱数を使ったランダムというのはデザイン性を意識したランダムとは別物であることを改めて認識しました。ということで、作り方を紹介していきます。
XY平面上に横長の長方形を作成し、サーフェスを張ります。上端のカーブと外周のカーブは後で必要になるので取り出しておきます。さらに、サーフェス上にランダムに点を2000個作成しておきます。

ランダムに配置した点を、長方形の上端カーブに向かってグラデーション的に粗密な状態になるようY方向に移動させます。移動量を求めるには繰り返し処理が必要になるため、AnemoneプラグインのLoop StartとLoop End間を上の図のようにつなぎます。

ランダムな点と上端カーブまでの距離を測定し、距離を距離の最大値で割ることで0~1の範囲の数値に変換します。1から引き算することで逆数を求めた後、距離に掛け算することで各点の移動量が求まります。強弱はGraphmapperの傾きとその後ろにある係数、Loop Startにつないでいる計算回数等で調整します。

外周カーブにのっている点は除外したほうがいいので、外周カーブを内側に若干量オフセットさせてはぶきます。ここでいったんこの工程は保留にします。

外周カーブ上にも点を作成します。Explodeコンポーネントにつないで4本の直線に分解し、上端カーブを密、下端カーブを粗、左右のカーブは上に向かって密になるようにGraph Mapperを使って位置を調整します。

ランダムな点と外周カーブ上の点がお互いあまりにも距離が近すぎると極小の三角形ができてしまうので、Pull Pointコンポーネントにつないで外周カーブ上の点をもっとも近いところにあるランダム点に引き寄せ、その距離がスライダーで指定した距離よりも大きい場合のみ取りだします。ランダムな点を外周カーブ上の点はこの段階で一つにまとめます。

省きたい点や追加したい点など必要に応じて処理をおこなったのち、Delauney Edgesコンポーネントにつないでランダムな形の三角形を作成します。

この時点のドロネー図形は単なる直線の集合体になっているため、冒頭で作成したサーフェスを分割すると三角形それぞれのサーフェスができます。

ここから、三角形を赤と黒の二つにわけていくのですが、冒頭でも記載したとおり、乱数を使った分類は見た目のランダムさには程遠い出来栄えとなってしまうため、地味ではありますが、Rhino上で分類用のカーブを三角形に合わせて所定の本数を作成し、Curve Sideコンポーネントにつないで下側を取り出したのちCull Patternコンポーネントのパターンを指定して分類しています。かなりアナログ的なやり方ですが、他にいいやり方があれば更新します。

最後に二つにまとめて色をつけると完成です。

0 件のコメント:

コメントを投稿

【Grasshopper_114】ひし形の凹凸パターン

今回は菱形の4点をそれぞれ移動させた凹凸パターンを作ってみました。移動量を外に向かって徐々に小さくする小技も織り込んでいます。