三维空间直线与直线的交点

已知

三维空间中两个直线
直线1:方向 V 1 V_{1} V1 直线上的任意一个点 P 1 P_{1} P1
直线2:方向 V 2 V_{2} V2 直线上的任意一个点 P 2 P_{2} P2
为了方便计算上面的方向向量 V V V均为单位向量
(从这里可以看出其实描述一个直线线只用5个数就可以 了,这个跟本文无关只是白话一下)
示意图如

在这里插入图片描述

求解过程

下文中 ∗ × ⋅ u n i t ( ) m o d ( ) *\times\centerdot unit()mod() ×unit()mod()分别表示乘、叉乘、点乘、取单位向量、取向量的模
首先应该确保两个直线不平行,且共面
不平行判断 ∣ V 1 × V 2 ∣ ≠ 0 |V_{1}\times V_{2}|\not=0 V1×V2=0 或者 ∣ V 1 ⋅ V 2 ∣ ∣ V 1 ∣ ∗ ∣ V 2 ∣ ≠ 1 \frac{|V_{1}\centerdot V_{2}|}{|V_{1}|* |V_{2}|} \not= 1 V1V2V1V2=1
共面判断 ( V 1 × V 2 ) ⋅ ( P 2 − P 1 ) = = 0 (V_{1}\times V_{2})\centerdot(P_{2}-P_{1})==0 (V1×V2)(P2P1)==0
注意这里还要判断 P 1 = = P 2 P_1==P_2 P1==P2如果相等了就直接返回结果就行

满足上面的条件后 假设交点为 P X P_{X} PX
P X = P 1 + k 1 ∗ V 1 P_X=P_1+k1*V1 PX=P1+k1V1
或者 P X = P 2 + k 2 ∗ V 2 P_X=P_2+k2*V2 PX=P2+k2V2

P 1 P 2 P X P_1 P_2 P_X P1P2PX三点构成三角形必然满足正弦定理

m o d ( P 1 − P 2 ) s i n ( ∠ P 1 P X P 2 ) = m o d ( P X − P 1 ) s i n ( ∠ P 1 P 2 P X ) \frac{mod(P_1-P_2)}{sin(\angle P_1P_XP_2)} =\frac{mod(P_X-P_1)}{sin(\angle P_1P_2P_X)} sin(P1PXP2)mod(P1P2)=sin(P1P2PX)mod(PXP1)

其中 s i n ( ∠ P 1 P X P 2 ) = m o d ( V 2 × V 1 ) sin(\angle P_1P_XP_2) = mod(V_2\times V_1) sin(P1PXP2)=mod(V2×V1) (因为是单位向量所以直接取模)
同理 s i n ( ∠ P 1 P 2 P X ) = m o d ( V 2 × u n i t ( P 1 − P 2 ) ) sin(\angle P_1P_2P_X) =mod(V2\times unit(P_1-P_2)) sin(P1P2PX)=mod(V2×unit(P1P2))
因为 P X = P 1 + k 1 ∗ V 1 P_X=P_1+k1*V_1 PX=P1+k1V1
所以 m o d ( P X − P 1 ) = ∣ k 1 ∣ mod(P_X-P_1) = |k1| mod(PXP1)=k1∣
重新整理可以得到

m o d ( P 1 − P 2 ) m o d ( V 2 × V 1 ) = ∣ k 1 ∣ m o d ( V 2 × u n i t ( P 1 − P 2 ) ) \frac {mod(P_1-P_2)}{mod(V_2\times V_1) }= \frac {|k1|}{mod(V2\times unit(P_1-P_2))} mod(V2×V1)mod(P1P2)=mod(V2×unit(P1P2))k1∣

前面的判断保证了这里的分母都不是0
根据正负 k 1 k1 k1分别算出两个点
P X 1 P_{X1} PX1 P X 2 P_{X2} PX2
判断 P X 1 − P 2 P_{X1}-P_2 PX1P2 P X 2 − P 2 P_{X2}-P_2 PX2P2哪个与 V 2 V2 V2平行哪个就是结果

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值