获取由两个矩形的交集定义的线段的端点
我在两个平面之间的交叉线上尝试了算法
但都没有返回正确的结果
我有三个3D矩形,每个由三个点定义,我想得到交叉线上的两个点,这样在交叉点末端的两个点我做了以下步骤:
- 使用三个点将每个矩形转换为两个平面
- 通过每个平面法线的叉积来得到线方向
我想获得位于飞机边界上的线的实际终点
最好的祝福
您提供的链接最有可能是正确的解决方案:)您是否正确地将您的三点信息转换为Ax + By + Cz + D = 0表格? 检查所有这些点是否满足此公式。 如果您有正确的{A,B,C,D},则可以很容易地计算其余部分,如链接中所述。
这是一个链接,解释如何使用3分获得此公式。
好的,这里有一个简单的总结:
-
给定空间中的三个点(x1,y1,z1),(x2,y2,z2),(x3,y3,z3),计算:
A = y1(z2-z3)+ y2(z3-z1)+ y3(z1-z2)
B = z1(x2 – x3)+ z2(x3 – x1)+ z3(x1 – x2)
C = x1(y2-y3)+ x2(y3-y1)+ x3(y1-y2)
D = – (x1(y2 z3-y3 z2)+ x2(y3 z1-y1 z3)+ x3(y1 z2-y2 z1))
对于这两架飞机 这意味着你有A1,B1,C1,D1和A2,B2,C2,D2。
-
使用A,B,C,D计算:
x1 = 0
z1 =(B2 / B1)* D1 – D2)/(C2 – C1 * B2 / B1)
y1 =(-C1 * z1-D1)/ B1
-
然后这个:
x2 =某个值..
z2 =(B2 / B1)*(A1 * x2 + D1) – A2 * x2 – D2)/(C2 – C1 * B2 / B1)
y2 =( – C1 * z2-A1 * x2-D1)/ B1
基本上只是结合这两个链接中描述的两种方式..