質問:
単位ベクトルを、2 度単位で 360 度回転させようとしています。X 座標と Y 座標は変えず、Z 軸だけを中心にして回転させようと考えています。
回答:
「Matrix3 値」のトピックでは、ベクトル(Point3 値)を変換するための便利な方法を紹介しています。この中に、ワールド Z 軸を中心に回転させる方法も含まれています。rotateZMatrix 値を作成し、この値を使用して元のベクトルを変換するだけです。
スクリプト:
|
resetMaxFile #noPrompt -- ファイルをリセットします。
theV = normalize [5,0,10] -- 回転させるベクトルを単位ベクトルに単位化します。
theStep = 10 -- 回転させる単位となる角度。
-- 単位 TheStep を使って 0 から 360 の theStep で回転させます。
for a = 0 to 360-theStep by theStep do
(
rm = rotateZMatrix a -- 値から回転行列を作成します。
theRotV = theV * rm -- 行列を使用して元のベクトルを変換します。
format "%: %\n" a theRotV -- リスナーへ結果を出力します。
c = cylinder() -- 円柱を作成します。
c.dir = theRotV -- 下の図のようにベクトルに沿って調整します。
)
|
結果はマフィンのようになります。