これはあなたの質問ですか?あなたの平面にxy平面のような単純な平面を変換
はかなり簡単である:あなたの平面がアックス+によって+のCz + D = 0
ある
XY平面= 0単にZです。すなわち、A = B = D = 0であり、C =任意のものである。簡単にするために1とします。
この形で平面を有する場合、平面の法線ベクトルを(A、B、C)で定義される
だから、(0,0,1から行くことができます回転を望ん)から(A、B、C)へ*
*これは{A、B、C}が単一である場合にのみ有効です。 A BとCをそれぞれsqrt(A^2 + B^2 + C^2)で割る必要があるかもしれません。
ちょうど2つの軸の周りを回転すると、任意の方向から任意の方向に向けることができるので、xとyを選択します。
は、約x軸による回転のための回転行列であり、bは、y軸の周りの回転行列です。
のRx:= {{1、0、0}、{0、COS [A]、シン[A]}、{0、-Sin [A]、COS [A]}}
さRy = {{Cos [b]、0、-Sin [b]}、{0,1,0}、{Sin [b]、0、Cos [b]}}
x 0平面に垂直なベクトルのyについての回転、(0,0,1)、
Ry.Rx. {0,0,1} = {-Cos [a ]あなたのABC値である罪[b]、罪[a]、コス[a]コス[b]}
です。
すなわち
A = -cos [A]シン[B]
B =シン[A]
C =コス[A]コス[B]
ここから、それは簡単です。
= ASIN [B]
今A = -cos [ASIN [B]シン[B]
コス[ASIN [X] =のSQRT(1-x^2) そう:
A = -sqrt〔1-B^2] *シン[B]
B = ASIN [-A/SQRT [1-B^2]
= 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
だから我々は斧+によって+のCzであなたのz変換= 0 -D/Cを与えることで:
アックス+により、 + C(z + D/C)= Ax + By + Cz + D = 0。ああ、あなたはそれを見ますか?
角度を回転させると余分な数学を行う必要はありません。
2つのアングルはA、B、Cを与えます。Dを取得するには、持っていたものからコピーします。
いくつかの助けの者が、私はあなたが実際にいくつかの恐ろしいの書式を修正する
が編集...しかし平面を描画することを計画か全くわからないことを願っています。うまくいけばそれは今より良いです。
正確には何ですか?飛行機のポイントとノーマルが欲しいですか?平面上に3つの点がありますか?Z = 0平面に対して平面の角度が必要ですか? – wich
こんにちは、 お返事ありがとうございます。 私は飛行機を描くことができるようにしたい。 私は飛行機で4点が必要ですが、この作業は先に提案されたものを作るのが難しいです。 私が欲しいものは、YX平面と私の平面(Ax + By + Cz + D = 0)の間のアフィン変換です。 この変換をした後、私はYX平面上に簡単に描画する平面に逆変換を適用して私の平面を描くことができます。 – talel
まあ、a、b、c、dは、固定アフィン変換を得るのに十分な情報を提供していません。投影は、平面内の任意の起点であってもよく、元のXY平面のXおよびYベクトルの新しい平面へのマッピング(すなわち、回転またはスキュー)であってもよい。 – wich