Day016 解決兩條直線交點問題

2021-10-08 23:26:50 字數 648 閱讀 5759

給定兩條直線方程,求交點。聯立解方程即可。方程的解即交點,無解時兩條直線要麼平行,要麼重合。

設直線1方程

設直線2方程

當現在不給方程,只給直線上兩個點,還求交點。

一開始思路,直線1方程帶入(x1,y1)和(x2,y2)。三個未知數,兩個方程,必然還需要乙個方程。然後繞啊繞,還是算不出係數。然後想到截距式方程 y = kx + b,通過引入直線上一點,再任意兩點斜率相等的條件推出截距式方程。通過比較係數的辦法得出a,b和e的係數。a = k, b = -1 ,e = kx1 - y1

截距式方程前提x1 != x2.如果相等,考慮直線上一點,y是任意值,所以b為0,.令a = 1,e = x1就可以滿足x是固定值條件。再比較係數得出a,b和e的係數。a = 1, b = 0 ,e = x1

然後考慮第一對點x值是否相等,第二對x值是否相等。一共四種情況。分別帶入相應係數到上面兩格方程求解。

x1 = x2,考慮直線上一點,y是任意值,所以b為0

解釋一下,直線平行y軸,x是固定值,即ax常數

現在ax + by = e,變形

by = e - ax,右邊是常數,則左邊是常數。有by1 = by2.b(y1- y2) = 0,b = 0或y1 - y2 = 0。因為y1 和 y2是任意取,可以不相等。所以只能吧b = 0;

計算兩條直線的交點 C

ps 從其他地方看到的原始碼是有問題的。下面是修正後的 計算兩條直線的交點 l1的點1座標 l1的點2座標 l2的點1座標 l2的點2座標 public static pointf getintersection pointf linefirststar,pointf linefirstend,po...

求兩條直線(線段)的交點

如圖,如何求得直線 ab 與直線 cd的交點p?以上內容摘自 演算法藝術與資訊學競賽 思路就是利用叉積求得點p分線段dc的比,然後利用高中學習的定比分點座標公式求得分點p的座標。看不懂的可以去複習下 定比分點 的知識。include include include include using nam...

求兩條直線的關係及交點

給你兩條直線,判斷這兩條直線是否共線,相交,不相交 即平行 相交的話輸出交點。判斷平行,然後通過叉積判斷是否共線。平行判斷可以判斷兩條直線的斜率是否相等。交點的話,相當於聯立方程組求解了。這些方程看模板理解的,剛才搜了下,有人講得比較清楚,借鑑下 如何判斷是否同線?由叉積的原理知道如果p1,p2,p...