我嘗試使用光線投射式功能來做到這一點,但無法獲得任何可維護的結果。我試圖計算一個圓上兩個切線之間的交點。這張照片應該有助於解釋:計算一個圓上兩個切線的交點?
我GOOGLE +計算器搜索關於這個問題,但無法找到類似這樣的問題什麼。任何幫助?
我嘗試使用光線投射式功能來做到這一點,但無法獲得任何可維護的結果。我試圖計算一個圓上兩個切線之間的交點。這張照片應該有助於解釋:計算一個圓上兩個切線的交點?
我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,得到線垂直於矢量(x, y)
你只需要(y, -x)
(或(-y, x)
)
所以你的兩個(參數)切線是:
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)
然後計算兩條直線的交點你只需要使用standard intersection tests即可。
太棒了,這正是我需要的,謝謝:D! – Conros
彼得亞歷山大的答案假定你知道圓圈的中心,這從你的數字http://oi54.tinypic.com/e6y62f.jpg不明顯。 這裏是不知道的中心的解決方案:
點C
(在圖中)是相切的A(x, y)
的交點與線L
垂直於AB
,切割AB
成兩半。爲線L
參數方程可以導出如下:
的AB
中點是M = ((x+x2)/2, (y+y2)/2)
,其中B(x2, y2)
。垂直於AB
的矢量是N = (y2-y, x-x2)
。行L
的矢量方程因此是 L(t) = M + t N
,其中t是實數。
你知道如何計算兩條線的交點,給定它們的方程嗎? –
給定它們的等式?我想是的,是的 – Conros