これはあなたが求めていることですか?
xy平面のような単純な平面を平面に変換するのはかなり簡単です。
あなたの平面はAx+By + Cz + D=0です
xy平面は単純にz=0です。つまり、A = B = D = 0であり、C=必要なものは何でもです。簡単にするために1と言います。
この形式の平面がある場合、平面の法線はベクトル(A、B、C)によって定義されます。
したがって、(0,0,1)から(A、B、C)*に移動する回転が必要です。
*これは、{A、B、C}がユニタリである場合にのみ機能することに注意してください。したがって、ABとCをそれぞれsqrt(A ^ 2 + B ^ 2 + C ^ 2)で除算する必要がある場合があります。
2つの軸を中心に回転すると、任意の方向から他の方向に移動できるため、xとyを選択します。
これは、x軸を中心にa、y軸を中心にb回転するための回転行列です。
Rx:= {{1、0、0}、{0、Cos [a]、Sin [a]}、{0、-Sin [a]、Cos [a]}}
Ry:= {{Cos [b]、0、-Sin [b]}、{0、1、0}、{Sin [b]、0、Cos [b]}}
xy平面(0,0,1)に垂直なベクトルのxを中心に回転し、続いてyを中心に回転すると、次のようになります。
Ry.Rx. {0,0,1} = {-Cos [a] Sin [b]、Sin [a]、Cos [a] Cos [b]}
これはあなたのABC値です。
すなわち
A = -Cos [a] Sin [b]
B=罪[a]
C = Cos [a] Cos [b]
ここからは簡単です。
a = aSin [B]
つまり、A = -Cos [aSin [B]] Sin [b]
Cos [aSin [x]] = sqrt(1-x ^ 2)なので:
A = -Sqrt [1-B ^ 2] * Sin [b]
b = aSin [-A / sqrt [1-B ^ 2]]
a = aSin [B](x軸を中心とした回転)
b = aSin [-A / sqrt [1-B ^ 2]](y軸を中心とした回転)
これで、回転する必要のあるx軸とy軸の周りの角度がわかりました。
この後、あなたはそれがあなたがすでに持っているものと一致するまであなたの飛行機を上下に動かす必要があります。
現在の平面(これらの2つの回転後)は、Ax + By + Cz=0になります。
必要な平面はAx+Bx + Cz + D=0です。dを見つけるために、z軸が平面と交差する場所を確認します。
つまり、Cz + D = 0-> z = -D / C
したがって、Ax + By + Cz=0のzを-D/Cで変換して、次のようにします。
Ax + By + C(z + D / C)= Ax + By + Cz + D=0。ああ、それを見てくれませんか!
回転する角度が決まったら、余分な計算をする必要はありません。
2つの角度でA、B、Cが得られます。Dを取得するには、持っていたものからコピーするだけです。
それがお役に立てば幸いですが、実際に飛行機を描く計画がどのようになっているのか完全にはわかりません...
いくつかの恐ろしいフォーマットを修正するために編集されました。うまくいけば、今は良くなっています。