一个平面表示正常并偏移?

use*_*942 2 raytracing game-engine computational-geometry

我正在阅读其他人的代码,他将平面表示为法线和偏移,但我不确定该偏移是什么.我想这是从世界起源到飞机中心的距离?

谢谢

AnT*_*AnT 6

最有可能的是它是从世界起源到飞机的"距离".不是"飞机中心"(什么是"飞机中心"?),而是飞机本身.

我将"距离"这个词放入引号,因为它可能会证明你的"距离"没有标准化,即它乘以某个因子.

你可能知道,3D平面的方程是

A*x + B*y + C*z + D = 0
Run Code Online (Sandbox Code Playgroud)

(A, B, C)法线向量在哪里,D实际上是从原点到平面的符号距离.然而,D将代表当且仅当矢量定期欧几里德距离 (A, B, C)被归一化,即,的值A,B,CD被缩放以便|(A, B, C)| = 1.如果矢量未标准化,则D距离乘以|(A, B, C)|.

有时,术语"偏移"用于表示D非标准化平面方程中的系数.换句话说,有可能在你的情况下,飞机可以简单地通过其代表A,B,CD系数.无论他们是否正常化 - 你必须检查自己.

  • @user1796942:这是正确的。系数“D”将告诉您点“O”(原点)位于平面的哪一侧。如果它位于法向量“(A, B, C)”指向的同一侧,则“D”为正。如果它位于另一个尺寸上,则“D”为负。如果“O”位于平面上,则“D”为零。 (2认同)
  • @user1796942:没错。系数“D”是从“O”到平面的最短“距离”。请记住它已签名。当且仅当您对平面方程进行归一化时(即将所有系数除以“|(A, B, C)|”),它才是真正的欧几里德距离。 (2认同)