二维几何计算-线段交点计算


线段交点计算的部分内容可以参照直线交点计算,与之不同的部分是需要判断线段交点的参数是否在定义域内。

1.线段与线段求交

1.1 方程

线段1: P 0 + s d 0 ⃗ , P 0 , P 0 ′ 为线段两个端点 , d 0 ⃗ = P 0 ′ − P 0 , s ∈ [ 0 , 1 ] P_0+s\vec{d_0},P_0,P_0'为线段两个端点,\vec{d_0}=P_0'-P_0,s\in[0,1] P0+sd0 P0,P0为线段两个端点,d0 =P0P0,s[0,1].
线段2: P 1 + t d 1 ⃗ , P 1 , P 1 ′ 为线段两个端点 , d 1 ⃗ = P 1 ′ − P 1 , t ∈ [ 0 , 1 ] P_1+t\vec{d_1},P_1,P_1'为线段两个端点,\vec{d_1}=P_1'-P_1,t\in[0,1] P1+td1 P1,P1为线段两个端点,d1 =P1P1,t[0,1].

1.2 判断平行

同直线交点一致,满足该条件则说明两直线平行没有交点。
∣ ∣ 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

1.3 交点计算

同直线交点一致
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 )
判断是否在参数定义域内: s ∈ [ 0 , 1 ] s\in[0,1] s[0,1] and t ∈ [ 0 , 1 ] t\in[0,1] t[0,1]同时成立,则交点存在

2.线段与直线、线段与射线

这两种情况的交点计算同1基本一致,不同之处在于,求出参数s,t后,对s,t的定义域判断不同。可自行推理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值