看板 Math 關於我們 聯絡資訊
做題目時突然看到這個題目 已知兩線段的起點與終點 L1:(x1,y1) (x2,y2) L2:(a1,b1) (a2,b2) 想要證明這兩條線段是否有交點 請問一下有沒有什麼方式可以算? (我想到最麻煩的是先把線段的直線方程式給出來 求出交點後看有沒有在線段上 但總覺得這樣很麻煩 想知道有沒有更快的方式) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.65.154
Vulpix :兩個不等式:L1(L2)那兩點在L2(L1)同側。 05/19 13:07
Vulpix :不等式長這種樣子:(ax1+by1+c)(ax2+by2+c)>0 05/19 13:09
Vulpix :ax+by+c=0是L2的直線方程。 05/19 13:09
這個方法我有想過 但是沒辦法保證交點是一定在L2的線段上吧?
WINDHEAD :就用參數式阿,出來結果兩個參數都落在[0,1]就是有交 05/19 13:28
※ 編輯: c871111116 來自: 140.113.237.237 (05/19 18:44)
Vulpix :所以我說有兩個不等式啊,還有另外一個。 05/19 19:27
Vulpix :(pa1+qb1+r)(pa2+qb2+r)>0, px+qy+r=0是L1的直線方程 05/19 19:27
newversion :參數式快慢有分,並不一定在同一時間相交! 05/20 00:36
WINDHEAD :都跟你說兩個參數了是在驚嘆號什麼啦XDD 05/20 04:53
newversion :但這樣要先知道交點,才能求t時間是否都在 0~1 05/20 07:56
newversion :既然交點都知道了,可以直接判斷了,又何需參數? 05/20 07:58
WINDHEAD :算了,解釋這個浪費時間...反正又不是你問的... 05/20 11:20
sneak : 兩個不等式:L1(L2 https://muxiv.com 11/10 11:50
sneak : ax+by+c=0是L https://noxiv.com 01/02 15:25
muxiv : //muxiv.com https://moxox.com 07/07 11:03