レイキャスティングスタイルの関数を使ってみましたが、保守可能な結果は得られませんでした。私は1つの円の2つの接線の交点を計算しようとしています。この絵は、説明するのに役立つはずです。1つの円上の2つの接線の交点を計算しますか?
私はこの問題についてのstackoverflowを検索+ Googleで検索しましたが、この問題に似た何かを見つけることができません。どんな助け?
レイキャスティングスタイルの関数を使ってみましたが、保守可能な結果は得られませんでした。私は1つの円の2つの接線の交点を計算しようとしています。この絵は、説明するのに役立つはずです。1つの円上の2つの接線の交点を計算しますか?
私はこの問題についてのstackoverflowを検索+ Googleで検索しましたが、この問題に似た何かを見つけることができません。どんな助け?
さて、あなたの変数がある場合:
C = (cx, cy) - Circle center
A = (x1, y1) - Tangent point 1
B = (x2, y2) - Tangent point 2
二点A
とB
に円の中心からラインがそれぞれCA = A - C
とCB = B - C
です。
接線は中心から線に垂直であることがわかります。 2Dでは、あなただけ
を(y, -x)
(または(-y, x)
)を取る(x, y)
ベクトルに垂直な線を得るためにだからあなたの2(パラメトリック)の接線は、次のとおりです。
L1(u) = A + u * (CA.y, -CA.x)
= (A.x + u * CA.y, A.y - u * CA.x)
L2(v) = B + v * (CB.y, -CB.x)
= (B.x + v * CB.y, B.x - v * CB.x)
は、2線の交点を計算しますただstandard intersection testsを使用する必要があります。
素晴らしい、それはちょうど私が必要なもの、感謝:D! – Conros
Peter Alexanderの答えは、円の中心を知っていることを前提としています。これは、あなたの数字http://oi54.tinypic.com/e6y62f.jpgからは分かりません。ここ 中心を知ることなく溶液である:
点C
(あなたの姿で)半分にAB
切削、AB
に垂直な線L
とA(x, y)
での接線の交点です。次のようにラインL
ためのパラメトリック方程式を導出することができる。
AB
の中点がB(x2, y2)
M = ((x+x2)/2, (y+y2)/2)
、です。 AB
に垂直なベクトルはN = (y2-y, x-x2)
です。したがって、線L
のベクトル式は、 L(t) = M + t N
です。ここで、tは実数です。
2つの線の交点を計算する方法を知っていますか? –
それらの式が与えられると、私はそう思う、はい – Conros