ps:從其他地方看到的原始碼是有問題的。下面是修正後的
//////計算兩條直線的交點
/// ///
l1的點1座標
///l1的點2座標
///l2的點1座標
///l2的點2座標
///public
static
pointf getintersection(pointf linefirststar, pointf linefirstend, pointf linesecondstar, pointf linesecondend)
if (linesecondstar.x !=linesecondend.x)
switch
(state)
else
}case
1: //
l1存在斜率, l2平行y軸
case
2: //
l1 平行y軸,l2存在斜率
case
3: //
l1,l2都存在斜率
float x = (a * linefirststar.x - b * linesecondstar.x - linefirststar.y + linesecondstar.y) / (a -b);
float y = a * x - a * linefirststar.x +linefirststar.y;
return
newpointf(x, y);}}
//throw new exception("不可能發生的情況");
return
new pointf(0, 0
); }
C 根據兩條線段 計算該兩條直線的交點
也可以理解為 三角形乙個頂點 連線 內部某乙個點,延長後和另一條邊的交點。計算兩條直線的交點 l1的點1座標 l1的點2座標 l2的點1座標 l2的點2座標 public static xyz getintersection xyz linefirststar,xyz linefirstend,xy...
求兩條直線(線段)的交點
如圖,如何求得直線 ab 與直線 cd的交點p?以上內容摘自 演算法藝術與資訊學競賽 思路就是利用叉積求得點p分線段dc的比,然後利用高中學習的定比分點座標公式求得分點p的座標。看不懂的可以去複習下 定比分點 的知識。include include include include using nam...
求兩條直線的關係及交點
給你兩條直線,判斷這兩條直線是否共線,相交,不相交 即平行 相交的話輸出交點。判斷平行,然後通過叉積判斷是否共線。平行判斷可以判斷兩條直線的斜率是否相等。交點的話,相當於聯立方程組求解了。這些方程看模板理解的,剛才搜了下,有人講得比較清楚,借鑑下 如何判斷是否同線?由叉積的原理知道如果p1,p2,p...