2023年5月5日金曜日

【Grasshopper_80】二つの幾何学模様の間を補完する形状を作ってみる


GW中、でかけようとしたけどUターンラッシュのニュースを見て出かける気力が失せたので、ネタを考えてみました。

2種類の幾何学模様(円とか三角形、六角形など)の間を徐々に変形させてグラデーションっぽく見せる形をなるべく簡単に作る方法です。スピーカーグリルとかで使ってみるとおもしろいかも?

①六角形→円の変形

まずは基本からということで、左端の六角形から右端の円までの変形です。

原点に六角形と円を作り、それぞれをTween Curveコンポーネントにつないで間を補完する形状を作成します。作成する個数はRangeコンポーネントを使って0から1の間を等分する数列を作ってからFにつなぎます。

作成した補完曲線を1個ずつX方向に移動させ、サーフェス化して色付けたら完成です。

②六角形→三角形の変形

次は左端の六角形から右端の三角形までの変形を考えてみます。

考え方はさきほどと同じですね。六角形と三角形を原点に作成し、それぞれをTween Curveコンポーネントにつないで補完曲線を作成します。

同じくX方向に移動させてサーフェス化して色を付けます。

③星型五角形→五角形の変形

次は少し変わった変形の仕方です。

Rhinoceros上で多角形 星形コマンドを使って5本の星型曲線を作り、それをGrasshopperに取り込みます。
※星型の曲線もGrasshopperで作ることは可能ですがここでは省略します。

・取り込んだ星形曲線をScaleコンポーネントにつないで大きさ調整します。

・その後、Explodeコンポーネントにつないで10本の辺に分解し、Shift Listコンポーネントにつないでリスト内を1だけずらした後、Partition Listコンポーネントにつないで2個ペアで階層分けします。そして、Join Curvesコンポーネントにつないで1本の曲線に結合します。隣り合う辺と辺をくっつけるということです。

・同時に、さきほどのExplodeコンポーネントから取り出した節点のうち、最も外側にある5個を選別するため、適当な大きさの円を作り、Point In Curveコンポーネントにつないで内/外判定をし、Cull Patternコンポーネントにつないで外にある5つの点を取り出します。その後、Shilft Listコンポーネントにつないで1ずらした点と元の点を直線でつなぎます。隣り合う点と点を直線で結ぶということです。

・最後にTween Curveコンポーネントにつないで補完曲線を作ります。

・Tween Curveコンポーネントにつないで作成した補完曲線をFlip Matrixコンポーネントにつないでリストの行と列を反転し、あとは移動と色付けをしたら完成です。

④星形六角形→六角形の変形

こちらも同じやり方です。

⑤円→六角形の変形

次はスピーカーグリルを意識して、四隅が円→中心に向かって六角形になる変形を考えてみます。

・まずはXY平面上に適当な大きさの閉曲線を作り、Hexagon Cellsコンポーネントにつないで六角形を配置します。閉曲線の中心点も後で使うので取り出しておきます。

・使うのは六角形の部分のみとしますので、Explodeで6辺に分解→数を数える→6本の階層のみTrue、ほかはFalse とたどって六角形のみ取り出します。

・①と同じ考え方で、原点に六角形と円の間の補完曲線を作成し、六角形の中心点まですべて移動コピーします。

・閉曲線の中心点と、六角形の中心点の間の距離をすべて図り、その数値に応じて4種類の数値を取り出します。

・中央に近いほど六角形、遠いほど円を取り出すため、距離の数値をインデックス番号の範囲に変換し、List Itemコンポーネントにつないで取り出します。

・残りはスケール値と色が2種類です。

・最後にスケール処理して色をつけたら完成です。

⑥円→六角形→星形の変形

最後に、四隅が円で、中央に向かって六角形→星型と変化するパターンを考えてみます。

・閉曲線内に六角形を配置し、六角形のみ取り出すところは先ほどと同じです。

・平行して、①と③のやり方をそのまま踏襲して、2種類の補完曲線を作成します。

・両者の位置をそろえるため、上の方にあった星形曲線側を原点に移動させます。その後、大きさ調整(六角形の辺の長さが合うよう割り算してスケールダウン)し、両者のダブる部分をCull Indexコンポーネントにつないで削除します。

・Insert Itemsコンポーネントにつないで両者を一つのリストにまとめます。

・作成した曲線群を六角形の中心点まで移動コピーさせ、同時にエリアの中心と六角形中心との間の距離を求めます。

・⑤のやり方と同様、距離に応じて曲線を選別するインデックス番号、スケール値、色の2種類を求めます。

・スケールダウンさせて色付けたら完成です。

0 件のコメント:

コメントを投稿

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

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