法線が (0,1,0) の平面、つまり xz 平面があります。私は新しい法線と距離を持っています。元の平面を新しい平面の法線/距離に変換したいと考えています。
回転を計算するには、単純に 2 つの法線の外積を取り、内積を計算して角度を求めました。それから私はそれを回転させました。新しい法線に沿って平面を移動するにはどうすればよいですか? 元の平面が (0,0,0) から始まる場合、(Nx*d, Ny*d, Nz*d) (N = 新しい法線、d = 原点からの距離) だけ平行移動しますか?
法線が (0,1,0) の平面、つまり xz 平面があります。私は新しい法線と距離を持っています。元の平面を新しい平面の法線/距離に変換したいと考えています。
回転を計算するには、単純に 2 つの法線の外積を取り、内積を計算して角度を求めました。それから私はそれを回転させました。新しい法線に沿って平面を移動するにはどうすればよいですか? 元の平面が (0,0,0) から始まる場合、(Nx*d, Ny*d, Nz*d) (N = 新しい法線、d = 原点からの距離) だけ平行移動しますか?
新しい法線に沿って平面を移動するにはどうすればよいですか?
あなたの提案は正しいと思います。
平面を単位法線と、原点から平面までの距離である距離で表すとします。次に、以下のように任意の翻訳を行うことができます。
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 です。