空间中两个平面求交线
欢迎关注更多精彩
关注我,学习常用算法与数据结构,一题多解,降维打击。
话题:给出2个平面方程,求解交线方程
A
1
x
+
B
1
y
+
C
1
z
+
D
1
=
0
A_1x+B_1y+C_1z+D_1=0
A1x+B1y+C1z+D1=0
A 2 x + B 2 y + C 2 z + D 2 = 0 A_2x+B_2y+C_2z+D_2=0 A2x+B2y+C2z+D2=0
基本思路
一条直线可以用以下形式表示
P
=
O
+
t
⋅
D
P=O+t·D
P=O+t⋅D
O 为 直 线 上 一 点 , D 为 方 向 向 量 O为直线上一点,D为方向向量 O为直线上一点,D为方向向量
对于两个平面,只要确定D和O就可以确定这条交线。
就可以将问题分解成两个子问题:
- 求解直线方向向量
- 求解交线上一点
求解直线方向向量
交线肯定在平面1和平面2上,所以跟平面1,平面2的法线都垂直。
只需要将N1,N2 作叉乘即可求出交线方向。
当N1, N2平行时,按照无交线处理
求解交线上一点
在上述条件有交线的情况下,求解交线上一点。
可设z=0, 得到2条方程
A
1
x
+
B
1
y
+
D
1
=
0
A_1x+B_1y+D_1=0
A1x+B1y+D1=0
A 2 x + B 2 y + D 2 = 0 A_2x+B_2y+D_2=0 A2x+B2y+D2=0
解出上述x, y即可得到一点。
特殊情况
当遇到z=?, x=?, y=? 特殊平面方程时,要换0坐标轴。
可使x=0或y=0。
总结
通过以上两步解出交线上一点O和直线方向后D。
直线方程为 P=O+t·D。
本人码农,希望通过自己的分享,让大家更容易学懂计算机知识。
更多推荐
所有评论(0)