我有使用x,y,z的行方向
和两个点A,B,我使用B-A
的线段如何获得它们之间的交叉点
祝你好运
答案 0 :(得分:8)
方程组:
具有方向(a,b,c)和一个点X(x1,x2,x3)的线的参数方程是:
D1:(x, y, z) = (x1, y1, z1) + t1(a, b, c)
具有2点A和B的线的参数方程是:
D2:(x, y, z) = (xa, ya, za) + t2(xb-xa, yb-ya, zb-za)
你只需要均衡D1和D2以获得结果,找到可行的参数t1和t2。 (2个未知的方程式)
如果没有解决方案,则没有交集。
仅与细分市场交叉:
现在让M成为你需要验证的结果:
t2 in [0,1]
or 0<AM.AB<||AB||^2 (M is in the segment AB)
<强>备注:强>
如果你的线的表示来自笛卡尔方程(计划的交集),那么问题是相同的,但有4个方程式,3个未知
示例:强>
A (1,1,1)
B (0,0,0)
D2:(x,y,z)=(1-t2,1-t2,1-t2)
(a,b,c)=(1.-1.1)
(x1,y1,z1)=(1,0,1)
D1:(x,y,z)=(t1+1,-t1,1+t1)
(D1和D2是侧面立方体的2个对角线= 1放置在0,0,0上)
令M(x,y,z)为交点D1,D2
我们发现t1和t2均衡上述等式:D1和D2
我们很容易 t1 = -1 / 2且t2 = 1/2
此外t2在[0,1]中,因此得到的交点在[A,B]
中M(1 / 2,1 / 2,1 / 2)= D1(t1)= D2(t2)是解决方案