0

法線が (0,1,0) の平面、つまり xz 平面があります。私は新しい法線と距離を持っています。元の平面を新しい平面の法線/距離に変換したいと考えています。

回転を計算するには、単純に 2 つの法線の外積を取り、内積を計算して角度を求めました。それから私はそれを回転させました。新しい法線に沿って平面を移動するにはどうすればよいですか? 元の平面が (0,0,0) から始まる場合、(Nx*d, Ny*d, Nz*d) (N = 新しい法線、d = 原点からの距離) だけ平行移動しますか?

4

1 に答える 1

1

新しい法線に沿って平面を移動するにはどうすればよいですか?

あなたの提案は正しいと思います。

平面を単位法線と、原点から平面までの距離である距離で表すとします。次に、以下のように任意の翻訳を行うことができます。

m_distance += m_normal.Dot(translation); \\ translation will be (Nx*d, Ny*d, Nz*d) in your case. 
m_normal; \\ normal stay the same, as translation won't change the direction of the plan.

この場合、実際には m_distance = m_distance + d です。

于 2013-10-30T15:43:57.160 に答える