直线交点计算

本文详细阐述了二维空间中直线与直线、直线与射线以及射线与射线的定义、交点计算方法,包括二维叉积的运用,平行判断标准,以及如何通过克莱姆定理确定交点坐标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


一、直线与直线

1.两直线定义:

P 0 + s d 0 ⃗ P_0+s\vec{d_0} P0+sd0 P 1 + t d 1 ⃗ P_1+t\vec{d_1} P1+td1

2.定义一种二维叉积运算:

K R ( ( x 0 , y 0 ) , ( x 1 , y 1 ) ) = x 0 y 1 − x 1 y 0 KR((x_0,y_0),(x_1,y_1))=x_0y_1-x_1y_0 KR((x0,y0),(x1,y1))=x0y1x1y0
该运算与三维相关, ( x 0 , y 0 , 0 ) × ( x 1 , y 1 , 0 ) = ( 0 , 0 , K R ( ( x 0 , y 0 ) , ( x 1 , y 1 ) ) ) (x_0,y_0,0)\times (x_1,y_1,0)=(0,0,KR((x_0,y_0),(x_1,y_1))) (x0,y0,0)×(x1,y1,0)=(0,0,KR((x0,y0),(x1,y1))),
具有交换性: K R ( u ⃗ , v ⃗ ) = − K R ( v ⃗ , u ⃗ ) KR(\vec{u},\vec{v})=-KR(\vec{v},\vec{u}) KR(u v )=KR(v u )

3.交点存在判断

使用KC可以判断两直线是否平行, K R ( u ⃗ , v ⃗ ) = = 0 KR(\vec{u},\vec{v})==0 KR(u v )==0则说明两直线是平行(叉积性质),当然得可以考虑数值计算公差问题,一般 ∣ ∣ K R ( u ⃗ , v ⃗ ) ∣ ∣ ≤ ε ||KR(\vec{u},\vec{v})|| \le\varepsilon ∣∣KR(u v )∣∣ε,我们就认为两直线是平行的没有交点。但这是一种绝对误差的检查平行方法, K R ( u ⃗ , v ⃗ ) KR(\vec{u},\vec{v}) KR(u v )的值与向量的取值有很大关系,因此,一般用正弦值做平行检测,即: ∣ ∣ K R ( u ⃗ , v ⃗ ) ∣ ∣ / ( ∥ u ⃗ ∥ ∥ v ⃗ ∥ ) = ∣ sin ⁡ θ ∣ ≤ ε ||KR(\vec{u},\vec{v})||/(\left \| \vec{u} \right \|\left \| \vec{v} \right \|)=|\sin\theta|\le\varepsilon ∣∣KR(u v )∣∣/(u v )=sinθε
最后,为避免除法和平方根计算(这两种运算计算耗时长),我们可以使用下式做平行检查判断:
∣ ∣ K R ( u ⃗ , v ⃗ ) ∣ ∣ 2 ≤ ∥ u ⃗ ∥ 2 ∥ v ⃗ ∥ 2 ∣ ε 2 ||KR(\vec{u},\vec{v})||^2\le\left \| \vec{u} \right \|^2\left \| \vec{v} \right \|^2|\varepsilon^2 ∣∣KR(u v )2u 2v 2ε2
满足该条件则说明两直线平行没有交点。

4.交点计算公式

分别求出s和t后,就可以得到其交点。联立两个方程可得:
s d 0 ⃗ − t d 1 ⃗ = P 1 − P 0 s\vec{d_0}-t\vec{d_1}=P_1-P_0 sd0 td1 =P1P0
Δ = P 1 − P 0 \Delta=P_1-P_0 Δ=P1P0,由克莱姆定理则 s = K R ( Δ , d 1 ⃗ ) / K R ( d 0 ⃗ , d 1 ⃗ ) , t = K R ( Δ , d 0 ⃗ ) / K R ( d 0 ⃗ , d 1 ⃗ ) s=KR(\Delta,\vec{d_1})/KR(\vec{d_0},\vec{d_1}),t=KR(\Delta,\vec{d_0})/KR(\vec{d_0},\vec{d_1}) s=KR(Δ,d1 )/KR(d0 ,d1 ),t=KR(Δ,d0 )/KR(d0 ,d1 )

二、直线与射线

1.方程 直线 P 0 + s d 0 ⃗ , s ∈ R P_0+s\vec{d_0},s\in R P0+sd0 sR和射线 P 1 + t d 1 ⃗ , t ∈ [ 0 , + ∞ ] P_1+t\vec{d_1},t\in[0,+\infty ] P1+td1 ,t[0,+]

2.平行判断,这里同1.3一样做平行判断

3.交点计算

同1.4,求出t,判断t是否在定义域 t ∈ [ 0 , + ∞ ] t\in[0,+\infty ] t[0,+],t在定义域内时,两者相交,交点同1.4。

三、射线与射线

1.同二中类似,可自行推理

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值