如果我知道射线和平面上的一个点以及平面法线,我知道如何获得射线和平面之间的交点。
在我使用的代码中,平面表示为与原点的有符号偏移量,并且是正常的,我需要得到一些平面上的任何点。这该怎么做?
所以,平面方程: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
在平面上。