円と円の接線

Top »

円C(中心 = C(x1,y1), 半径 = r1) と 円D(中心 = D(x2,y2), 半径=r2) の円との接線

二円の中心間のベクトル : v = (x2-x1,y2-y1)

vの長さ: |v| = sqrt(pow(x2-x1,2)+pow(y2-y1,2))

円の位置関係と接線の本数:

分岐をまとめると
if (abs(r1-r2) < l) {
	//円は交わっているか離れているか外接する
	//外側接線1,2
	if (r1+r2 < l) {
		//円は離れている
		//内側接線3,4
	}
}
if ((abs(r1-r2) == l || r1+r2 == l) && l != 0) {
	//円は外接か内接し一致せず
	//接線5
}

図
円の中心から外側接線への垂線とdのなす角:a1 = acos((r1-r2)/l)

図
円の中心から内側接線への垂線とdのなす角:a2 = acos((r1+r2)/l)

X軸に対するvの角度 : a = atan2(y2-y1,x2-x1)

これで接点座標がわかった。接線の方程式を求めたいときは、r1,x1,y1,a±a1,a±a2を「円のθに於ける接線」に当てはめる。

inserted by FC2 system