求兩個圓公切線的模板

2021-10-24 12:52:10 字數 703 閱讀 1851

// a[i] 和 b[i]存放第 i 條公切線與 圓a 和 園b 的交點

// 返回值為切線的條數 如果沒有切線返回值為-1

intgettangents

(circle a, circle b, point*a, point *b)

// 求外公切線

db ang =

acos

((a.r - b.r)

/sqrt

(d2));

//求阿爾法

// 兩條外公切線

a[cnt]

= a.

point

(base+ang)

; b[cnt]

= b.

point

(base+ang)

; cnt++

; a[cnt]

= a.

point

(base-ang)

; b[cnt]

= b.

point

(base-ang)

; cnt++;if

(d2 == rsum * rsum)

else

if(d2 > rsum * rsum)

// 此時,d2 < rsum * rsum 代表情況 4 只有兩條外公切線

return cnt;

}

兩個圓公切線求法 兩個圓的公切線

兩個圓的公切線 圓上任意一點擁有唯一的圓心角 struct circle 的極角進行旋轉即可求出切點,進而得到切線 情況 5 的內切線類似情況2 情況 6 的外公切線與情況4完全一樣 情況 6 的內切線也是先求出圓心角 alpha 如何求?cos alpha frac a i 存放第 i 條公切線與...

求兩圓的公切線計算

關於兩圓的公切線計算我們首先需要搞清楚的是兩個圓之間有哪些位置關係,兩個圓的位置包括內含 內切 外切 外離幾種方式,可以看出位置關係可以根據 兩圓心之間的距離 與 兩圓半徑和 以及 兩圓半徑差 之間的關係判斷。假設大圓半徑為r,小圓半徑為 r,把 兩圓心之間的距離 表示為d,兩圓半徑和 表示為s,兩...

圓的公切線演算法實現

返回外切線方程 求切線的k k 2 deltar 2 deltax 2 2k deltax deltay deltar 2 deltay 2 0 public static linesegment getexternaltangent round r1,round r2 else double b1...