1. 程式人生 > >【計算幾何】如何計算兩個圓的交點坐標

【計算幾何】如何計算兩個圓的交點坐標

style coo 正交 ces sta 設定 由於 直接 ima

How to calculate two coordinates of the intersection points of two circles?

題目:

  給定兩個圓的的方程

    (x-x1)^2+(y-y1)^2=r1^2,

    (x-x2)^2+(y-y2)^2=r2^2

  求解兩個圓的交點坐標。

這種知識是高中的知識了,如果直接聯立,由於計算特別暴力所以很難得到正確結果。

事實上,造成這種計算問題的結果是因為消去一個變量後,剩下變量的系數太過復雜。

我們通過更改坐標系的方法來使得另外一個系數變得簡單。

我們先計算中點坐標:技術分享圖片

圓心距:技術分享圖片

設定兩個新的正交單位向量作為新的坐標系的x和y軸,而原點為圓心線段的中點, 設為M:

技術分享圖片

在新的坐標系中, 圓1的方程變為:

          技術分享圖片 (1)

圓2的方程變為:

          技術分享圖片(2)

聯立(1)(2)兩式,得到a=技術分享圖片

  技術分享圖片

最後的交點變換回原來的坐標技術分享圖片

技術分享圖片

References:

https://math.stackexchange.com/questions/256100/how-can-i-find-the-points-at-which-two-circles-intersect

【計算幾何】如何計算兩個圓的交點坐標