平面和平面的交线算法?
平面和平面的交线算法?
我知道平面方程
a1x+b1y+c1z+d1=0;
a2x+b2y+c2z+d2=0;
连立得:
(a1-a2)x+(b1-b2)y+(c1-c2)z+(d1-d2)=0;
现在需要返回一个直线,即两个点~
- C# code
public Line3D CrossPlane(Plane3D p) //求平面与平面的交线 { Line3D CrossLine = new Line3D(); float tempA = (p.d - d) - (norm.x - p.norm.x); float tempB = (p.d - d) - (norm.y - p.norm.y); float tempC = norm.z - p.norm.z; if (tempC != 0) { CrossLine.ptBegin.x = 1; CrossLine.ptBegin.y = 0; CrossLine.ptBegin.z = tempA /tempC; CrossLine.ptEnd.x = 0; CrossLine.ptEnd.y = 1; CrossLine.ptEnd.z = tempB / tempC; return CrossLine; } else { return null; } }
感觉有问题,我定了2个点,就定跟直线,
如何返回他们的交线?
谢谢!
[解决办法]
随便确定两组(x,y)、(x,y),算出z,不就得到两个(x,y,z)、(x,y,z)了吗,这不就可以确定直线了吗?