平面の方程式とGrasshopperのPlaneについて

Grasshopper

Plane使ってますか?

Rhinoceros,Grasshopperでは局所座標をPlaneによってつくることができます。こまごましたところでモデリングするときは思い切って座標系を切り替えることで急にシンプルになるということはよくある話でしょう。

例えばこんな形状は

こんな感じでCurveに対して座標系を作れば、直方体を局所座標を基準にして生成するだけですね。Rhinoの基準座標系から計算もできなくはないですがめんどくさいのは極力避けたいものです。

Planeの作り方

いくらでも方法はありますが、

  • 局所座標系のX,Y方向ベクトルと原点を指定 (Construct Plane)
  • 原点と法線方向ベクトルを指定 (Plane Normal)
  • 原点とX方向の点とY方向の点を指定 (Plane 3Pt)
  • 基準のXY平面,YZ平面,XZ平面のどれかと平行で原点を指定

といった感じで原点とベクトルによって計算されています。

なぜか

これは3次元の平面の方程式を使えば理解できます。

Planeと数式の関係

3点を通る平面の方程式は

(1)   \begin{equation*}ax+by+cz+d = 0\end{equation*}


ですね。もう高校一年くらいの数学でしょうか?いつ習ったか思い出せないですが。。。このとき \begin{Bmatrix} a & b & c \end{Bmatrix}^{T}平面の法線ベクトルになるということもよく知られていますね。

なので,局所座標系のX,Y,Z方向をそれぞれ \vec{u} , \vec{v}, \vec{w} として面の法線方向をZ方向とすれば,X,Y方向のベクトルを求めるものは,

(2)   \begin{equation*}\vec{w} = \vec{u} \times \vec{v} \end{equation*}

と外積で計算できますね。

ちなみに以前のポストで説明した回転行列\begin{bmatrix}R\end{bmatrix}の各列ベクトルは平面を座標変換したときの、
\vec{u} , \vec{v}, \vec{w} に対応します。

こーやってみてみると高校レベルの数学が意外に役に立つんだなぁと実感しますし,Grasshopper触って、復習もできますね。

最近ではYoutubeで勉強を教えてくれるYoutuberもいるし、いつでもどこでも、情報を収集できる自由を私たちは享受できる時代になりました。このブログも多分学生さんが見てくれることが多いっぽいので何かの役に立てれば幸いです。

【高校数学】 数B-53 空間における平面・直線の方程式①

コメント

タイトルとURLをコピーしました