見出し画像

Scale 拡大縮小は原点を指定しないと使いづらい

Grasshopperでオブジェクトを拡大縮小しようしたときのコンポーネントの候補にScaleコンポーネントが挙がってくる

ただ、このScaleコンポーネント
何も考えずにジオメトリと倍率を入力しただけだと使いづらい



問題は入力端子のCenterだ
これはデフォルトだとXY座標の原点(0,0,0)を指定しているのだが
どうやら拡大・縮小の際、この原点を基点にしている
このせいで単純にオブジェクトの拡大縮小だけ行いたいところが、
倍率を調整したときにその倍率で原点から離れた位置に動いてしまう

Factor=1.0 よくみると原点位置(0,0,0)にも入力端子Centerのプレビューがある
Factor=2.0 オブジェクトのサイズは2倍になっているが原点からの距離も2倍になっている
Factor=0.5 単純に拡大縮小だけしたくても意図せず動かれるとベイク後も手間が増える


Rhino上でモデル化したオブジェクトの位置で動いてほしくなかったら
このCenterの位置をこちらで指定してやればいい

例えばAreaコンポーネントで重心位置を取得し
これをScaleコンポーネントのCenterに入力すると
重心を基点に拡大縮小を行ってくれる


Areaの出力端子Centroidから重心位置を取得
x印が重心位置となる

これならどれだけ拡大しても
元となるオブジェクトから勝手に離れていくことは無くなりそうだ


今回はAreaコンポーネントを使用したが
オブジェクトの中心を取得できるコンポーネントは他にもありそうだ

Areaコンポーネントについては以下の記事で少しだけ触れている


いいなと思ったら応援しよう!