2018年4月14日土曜日

【Grasshopper_05】縦横に配置した六角形を徐々に間引いていく方法


六角形を横方向に大きさを小さくしつつ、徐々に間引いていくパターンです。

イラストレータなどのツールを使って作る場合、結構面倒な作業になりますが、
Grasshopperで、乱数と参照点までの距離との比較を使うと楽に作成できます。

Step.1 適当な大きさの四角形を作り六角形を配置する


・Rectangleで適当な大きさの四角形を作り、Lunch Boxプラグインの中にあるHexagon Cellsコンポーネントを使って六角形を配置します。

・出来上がった六角形の外周に欠けた形状も含まれるため、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.4 間引く六角形を分類する


・今度は、六角形を間引く処理を行います。

・Step.2で作った直線よりも、さらに右側にもう一本、直線を引いてGrasshopperに取り込みます。

・Step.3で大きさを変化させた六角形を、直線の左側と右側に分類します。

Step.5 間引く処理


・Step.4で分類した右側の六角形を間引いていきます。

・まずは、四角の枠のぎりぎり外側に、3本目の直線を引いてGrasshopperに取り込みます。

・この直線と、Step.4で分類した右側の六角形の中心点との距離を求め、Remapコンポーネントを使って0~1の範囲に変化させます。

・同時に、Randomコンポーネントを使い、六角形の数と同数の、ランダムな数値を求めます。(この数値の範囲も0~1の間の数値になります)

・上記手順で求めた、距離とランダム数をLarger Thanコンポーネントで大小の比較を判定し、Cull Patternで分類します。距離が遠くなればなるほど、六角形の数が少なくなっていきます。

Step.6 最後に


・最後に、三か所の六角形を一つにまとめて、サーフェス化すると完成です。

・間引き具合を変えるときは、Seed値を変更してみてください。

・グラデーション開始位置や間引き開始位置を変更するときは、Rhino上で作った2本の直線をマウスでドラッグして変更すると自動的に更新されます。

0 件のコメント:

コメントを投稿

【Grasshopper_98】SporphとSurface Morphingの特徴、違いなどについて

今年もまたGWに突入しましたね。コロナ明けに円安、インバウンド特需のおかげで東京から郊外に出かけると例年以上に混雑に巻き込まれそうなので、昨年と同様、連休中は家に籠ってブログを更新します。今回のテーマは、Surface MorphingとSporphの違いについてまとめてみました。