-- 平面と 3 ポイント ヘルパーを作成します。
thePlane = Plane()
p1 = point pos:[40,-10,30]
p2 = point pos:[20,30,40]
p3 = point pos:[-10,-20,30]
-- 変換スクリプトを作成し、平面に割り当てます。
ctrl = transform_script()
thePlane.transform.controller = ctrl
-- 3 つのノード変数を作成し、これらにヘルパーを割り当てます。
ctrl.addNode"p1" p1
ctrl.addNode"p2" p2
ctrl.addNode"p3" p3
-- 式を格納するための変数を作成します。
-- Point01 から Point02 へのベクトルを計算します。
txt ="v1 = normalize (p2.pos-p1.pos)\n"
-- Point01 から Point03 へのベクトルを計算します。
txt +="v2 = normalize (p3.pos-p1.pos)\n"
-- 2 つのベクトルの乗積は、平面に対する法線です。
txt +="nv1 = normalize (cross v1 v2)\n"
-- 法線とベクトル 1 の乗積から 3 番目の軸が求められます。
txt +="nv2=normalize(cross nv1 v1)\n"
-- 1 つ目のベクトルと、すべて互いに直交する
-- 2 つの乗積を使用して matrix3 値を作成します。
-- 変換部分 (.row4) は、次の 3 ポイントの位置の
-- 中央のポイントになります:
txt +="matrix3 v1 nv2 nv1 ((p1.pos+p2.pos+p3.pos)/3)"
-- 式をスクリプト コントローラに割り当てます。
ctrl.setExpression txt
|