2010年6月27日のブックマーク (1件)

  • NUTSU » [as]円と円の接線

    2つの円に共通する接線を求めてみようと思います。接線は、それぞれの円の接点を求めることと同じになりますが、この接点は、Math.acos でわりと単純に求めることができます。 上の図のように、2つの円の中心を結ぶベクトルをvとします。接線ができるのは、2つの円について、vからの角度が同じθの場合と、θとθ+Math.PI の場合です。どちらも、vの角度から±θのところが接点になります。また、θとθ+Math.PIの場合は、2つの接線が交差します。 cosθは、上図のような関係になるので、θは、 a1 = Math.acos( (r0-r1)/v.length ); a2 = Math.acos( (r0+r1)/v.length ); で求めることができます。θは、(r0-r1)、(r0+r1)が、v.lengthより大きい場合は成立しませんから、その場合、接線はないことになります。 接点