创建 平面求交点

如果两个平面只是方向不同的话,它们与射线的交点应该是相等的吧?下面 
算法计算出来的不相等吧?  
平面方程为Ax   +   By   +   Cz   +   D   =   0;   平面的单位法向量为N(A,   B,   C); 
射线表示为P   =   Org   +Dir*step;   Dir为射线的方向,已经规格化。Org为原点 
把射线的方程代入平面方程可以得 
step   =   -(DotProduct(N,   Org)+D)/(DotProduct(N,   Dir); 

平面的参数如下: 
A   =   1;   B   =   0;   C   =   0;   D   =   -7; 
A   =   -1;B   =   0;   C   =   0;   D   =   -7; 

射线的参数如下: 
Org   =   (2,   3,   4);   Dir   =   (0.577,   0.577,   0.577); 

如果将数据代入求step的话。两个step并不相等。就是说将step代入射线 
方程的话,得到的交点也不相等。

#1楼 得分:9回复于:2003-09-09 14:26:56
什么叫做两个平面只有方向不同呢? 
你的意思是D相同吧。 
可以想像,D的意义是平面到原点的距离,方向N是一个朝向。 
所有的D相同的面就是距离原点距离是D的一个球体的切面。 
射线和这些不同的切面的交点是不同的。除非d=0,射线通过原点的时候结果才是唯一的。 
  • YangLin1ST用户头像
  • YangLin1ST
  • (杨家枪法第六十七代传人)
  • 等 级:
#2楼 得分:11回复于:2003-09-10 00:31:14
是不是这个意思, 
A   =   1;   B   =   0;   C   =   0;   D   =   -7; 
A   =   -1;B   =   0;   C   =   0;   D   =   -7; 
这两个面没有重合在一起。D的意义是平面到原点的距离在平面法向量方向上投影的长度。所以当平面法向量方向符号变化时,D也应该对应着改变符号。 
A   =   1;   B   =   0;   C   =   0;   D   =   -7; 
A   =   -1;B   =   0;   C   =   0;   D   =     7;这两个面是在一起的,但是在数学方程上来看他们就是一样的,其实平面方程   Ax   +   By   +   Cz   +   D   =   0   给出的平面都是“双面”的,它的法线是一条直线,没有方向性。只不过我们在3D应用中约定取N   =   (A,   B,   C),作为法向量,这样就有了方向。
#3楼 得分:0回复于:2003-09-10 05:55:44
原来如此:),平面重合,但是方向不同,因此D也不相同。如果D相同了就不是重合的平面了。 

posted on 2011-10-24 17:03  盖天00  阅读(196)  评论(0编辑  收藏  举报

导航