【问题标题】:How to get a 3D point on a plane (which is represented as normal and offset from origin)?如何在平面上获得 3D 点(表示为法线并从原点偏移)?
【发布时间】:2012-11-21 17:40:26
【问题描述】:

如果我知道射线和平面,我知道如何获得射线和平面之间的交点 平面上的一个点,平面法线。

在我使用的代码中,平面表示为与原点的有符号偏移量,并且是正常的,而我 需要得到一些,在飞机上的任何一点。如何做到这一点?

所以,平面方程:Ax + By + Cz + D = 0,我知道A,B和C,基本上就是 平面的法线,我知道 D,它是与原点的有符号距离。和 我的问题是,鉴于我如何在飞机上获得一些 3D 点?

谢谢

【问题讨论】:

  • 平面上没有满足方程o点的点吗?

标签: game-engine computational-geometry game-physics raytracing


【解决方案1】:

如果 (A, B, C) 是归一化向量,则平面上最接近原点的点就是:

(-AD,-BD,-CD)

从你的描述中很容易知道,(A,B,C)是平面法线,D是平面到原点的距离。

此方法简单,不需要任何分支。

Point on plane closest to origin

【讨论】:

    【解决方案2】:

    通过将平面与射线(线)相交得到一个平面点 :-)

    选择某个点P=(x,y,z),计算w=Ax+By+Cz

    如果w=-DP 在飞机上。

    对于w!=-D,选择某个方向Q=(dx,dy,dz),其中l=Adx+Bdy+Cdz!=0,例如q=(A,0,0),如果是 B!=0C!=0。比点P+l*Q/w 在平面上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-19
      • 1970-01-01
      • 1970-01-01
      • 2016-07-21
      相关资源
      最近更新 更多