如果我知道射线和平面上的一个点以及平面法线,我知道如何获得射线和平面之间的交点。
在我使用的代码中,平面表示为与原点的有符号偏移量,并且是正常的,我需要得到一些平面上的任何点。这该怎么做?
所以,平面方程:Ax + By + Cz + D = 0,我知道 A、B 和 C,这基本上是平面的法线,我知道 D,它是到原点的有符号距离。我的问题是,鉴于我如何在飞机上获得一些 3D 点?
谢谢
如果我知道射线和平面上的一个点以及平面法线,我知道如何获得射线和平面之间的交点。
在我使用的代码中,平面表示为与原点的有符号偏移量,并且是正常的,我需要得到一些平面上的任何点。这该怎么做?
所以,平面方程:Ax + By + Cz + D = 0,我知道 A、B 和 C,这基本上是平面的法线,我知道 D,它是到原点的有符号距离。我的问题是,鉴于我如何在飞机上获得一些 3D 点?
谢谢
如果 (A, B, C) 是归一化向量,则平面上最接近原始点的点就是:
(-AD,-BD,-CD)
从您的描述中可以很容易地知道(A,B,C)是平面法线,D是平面与原点之间的距离。
这种方法很简单,不需要任何分支。
您可以通过将平面与射线(线)相交来获得一个平面点 :-)
选择一些点P=(x,y,z),计算一下w=Ax+By+Cz。
如果w=-D比P在飞机上。
对于w!=-D,选择某个方向Q=(dx,dy,dz),l=Adx+Bdy+Cdz!=0例如q=(A,0,0),如果B!=0或C!=0。比点P+l*Q/w在平面上。