|
三维空间内,有两条线段,通过叉乘可知道是否平行或共线。若不共线,怎么求出两条线段是否相交,如果相交,怎么求出交点。
常规算法如下;
但问题是 如果两条线段都在z=0的平面上,方程中分母会出现为0的情况
求大佬解答!!!
设第一条线段起点(x1,y1,y2)终点(x2,y2,z2);设第二条线段起点(x3,y3,y3)终点(x4,y4,z4),若有交点为(x,y,z)// t1 = 0,t2 = 0;// t2 = ( (z3-z1)/(z2-z1) - (x3-x1)/(x2-x1) ) / ( (x4-x3)/(x2-x1) - (z4-z3)/(z2-z1) );// t1 = ( z3-z1 + (z4-z3)*t2) / (z2-z1);// if (t1 <= 1 && t2 <= 1) {// x=(x1+(x2-x1)*t1);// y=(y1+(y2-y1)*t1);// z=(z1+(z2-z1)*t1); // }// else
|
|