イラストレータなどのツールを使って作る場合、結構面倒な作業になりますが、
Grasshopperで、乱数と参照点までの距離との比較を使うと楽に作成できます。
Step.1 適当な大きさの四角形を作り六角形を配置する
・出来上がった六角形の外周に欠けた形状も含まれるため、Explodeで六角形を分解し、辺が6個あるかどうかをEqualityコンポーネントで判定し、Cull Patternコンポーネントで分類します。
・作成した六角形を内側にオフセットさせます。
※D入力のExpression欄にx*-1を入力すると、値がマイナスに変換されます。
Step.2 大きさを変化させる/させない六角形を分類する
・Step.1で作った四角形の内側の適当な位置に、1本、直線を引いてGrasshopperに取り込みます。
・六角形の全中心点を求め、直線の左側か右側かをCurve Sideコンポーネントで判定させ、Cull Patternコンポーネントを使って分類します。
Step.3 六角形の大きさを変化させる
・Step.2で分類した右側の六角形の大きさを徐々に小さくしていきます。
・六角形の中心点と、直線との間の最短距離を求め、その距離の最大~最小範囲をスケール値の最大~最小範囲にリマップし、Scaleコンポーネントで縮小処理を行います。
・縮小の変化の割合が一定だとつまらない場合、上の図のようにGraph Mapperを使って二字曲線的に変化させることもできます。
※Graph Mapperは基本的には0から1の間の数値に対応しますので、
①距離の範囲を0~1にリマップ→②グラフで変化→③スケールの範囲にリマップという、2段階のリマップで構成しています。
・Step.2で作った直線よりも、さらに右側にもう一本、直線を引いてGrasshopperに取り込みます。
・Step.3で大きさを変化させた六角形を、直線の左側と右側に分類します。
・まずは、四角の枠のぎりぎり外側に、3本目の直線を引いてGrasshopperに取り込みます。
・この直線と、Step.4で分類した右側の六角形の中心点との距離を求め、Remapコンポーネントを使って0~1の範囲に変化させます。
・同時に、Randomコンポーネントを使い、六角形の数と同数の、ランダムな数値を求めます。(この数値の範囲も0~1の間の数値になります)
・上記手順で求めた、距離とランダム数をLarger Thanコンポーネントで大小の比較を判定し、Cull Patternで分類します。距離が遠くなればなるほど、六角形の数が少なくなっていきます。
0 件のコメント:
コメントを投稿