2014-04-01 60 views
8

鑑於3點A,B和C算法找到給定的電弧,其中心,半徑和角度3分

enter image description here

如何找到並開始於甲弧,中C端和通過B;其中心的座標,r和r'的半徑和角度?

enter image description here

+0

如果所有3個點形成等邊三角形,您將如何解決問題?我不確定問題是否足夠好。 –

+3

@Mark然後您的圓弧是完整圓的2/3 – ibrabeicker

+0

只要點不在同一條線上,該圓就是明確定義的。但是,您認爲弧的「開始」和「結束」是任意的。哦,當然還有'r == r'。 – Thomas

回答

5

有幾種方法去做這個。這是一種算法:

  1. 讓您COORDS

    A = {XA,YA}

    B = {XB,YB}

    C = {XC,YC}

    d = {xd,yd}

  2. 計算AB線和BC線的中點

    mid_AB = {(XA + XB)/ 2,(YA + YB)/ 2}

    mid_BC = {(的xB + XC)/ 2,(YB + YC)/ 2}

  3. 找到線AB和BC

    的斜坡

    slope_AB =(YB-YA)/(XB-XA)

    slope_BC =(YC-YB)/(XC-XB)

  4. 通過運行
  5. 構建線中點PERPENDICULAR AB和BC(謝謝Yves捕捉負)

    Slope_perp_AB!= - (slope_AB)^( - 1)

    Slope_perp_BC = - (slope_BC)^( - 1)

    ***與Slope_perp_AB線通過mid_AB運行

    ***與Slope_perp_BC線通過mid_BC

  6. 運行設置兩個方程彼此相等,解決找到交集! 這給你點d = {xd,yd} !!!

計算半徑和角度現在微不足道的中心點d!

+1

注意,垂線的斜率是-1/m,而不是+ 1/m。您應該更喜歡線性方程的隱式表達式,因爲它們更具各向同性並且適用於水平/垂直。 –

+0

很棒!謝謝。我會更新帖子。 – Joshua

+0

你能寫一個證明嗎?IOW定義xA,yA,xB,yB,xC,yC,xd,yd顯示'所有步驟來獲得xd,yd COORDS?我不確定'Slope_perp'是什麼意思除以-1?或到-1的冪?我不明白「設置兩個等式相等」的數學原理 – DarkPh03n1X

4

步驟1

查找AB和BC的垂直平分線。

第2步

找到這些線相交的點。

你會發現點將是你想要的圓的中心。

步驟3

計算從您在步驟2中發現中間的三個點,這將是半徑的圓你一個的距離。

注意點A,B和C不得在同一行。在執行步驟1至3之前,必須先檢查該步驟。

2

對此的解決方案與「非超定系統的最佳擬合圈」幾乎相同。由於您有三個點,它們正好位於以圓心(0,0)(給定)爲圓心的圓弧上,所以系統可以精確求解,而不需要最小二乘法逼近。

Finding the Center of a Circle Given 3 Points 


Date: 05/25/2000 at 00:14:35 
From: Alison Jaworski 
Subject: finding the coordinates of the center of a circle 

Hi, 

Can you help me? If I have the x and y coordinates of 3 points - i.e. 
(x1,y1), (x2,y2) and (x3,y3) - how do I find the coordinates of the 
center of a circle on whose circumference the points lie? 

Thank you. 


Date: 05/25/2000 at 10:45:58 
From: Doctor Rob 
Subject: Re: finding the coordinates of the center of a circle 

Thanks for writing to Ask Dr. Math, Alison. 

Let (h,k) be the coordinates of the center of the circle, and r its 
radius. Then the equation of the circle is: 

    (x-h)^2 + (y-k)^2 = r^2 

Since the three points all lie on the circle, their coordinates will 
satisfy this equation. That gives you three equations: 

    (x1-h)^2 + (y1-k)^2 = r^2 
    (x2-h)^2 + (y2-k)^2 = r^2 
    (x3-h)^2 + (y3-k)^2 = r^2 

in the three unknowns h, k, and r. To solve these, subtract the first 
from the other two. That will eliminate r, h^2, and k^2 from the last 
two equations, leaving you with two simultaneous linear equations in 
the two unknowns h and k. Solve these, and you'll have the coordinates 
(h,k) of the center of the circle. Finally, set: 

    r = sqrt[(x1-h)^2+(y1-k)^2] 

and you'll have everything you need to know about the circle. 

This can all be done symbolically, of course, but you'll get some 
pretty complicated expressions for h and k. The simplest forms of 
these involve determinants, if you know what they are: 

     |x1^2+y1^2 y1 1|  |x1 x1^2+y1^2 1| 
     |x2^2+y2^2 y2 1|  |x2 x2^2+y2^2 1| 
     |x3^2+y3^2 y3 1|  |x3 x3^2+y3^2 1| 
    h = ------------------, k = ------------------ 
      |x1 y1 1|    |x1 y1 1| 
      2*|x2 y2 1|    2*|x2 y2 1| 
      |x3 y3 1|    |x3 y3 1| 

Example: Suppose a circle passes through the points (4,1), (-3,7), and 
(5,-2). Then we know that: 

    (h-4)^2 + (k-1)^2 = r^2 
    (h+3)^2 + (k-7)^2 = r^2 
    (h-5)^2 + (k+2)^2 = r^2 

Subtracting the first from the other two, you get: 

    (h+3)^2 - (h-4)^2 + (k-7)^2 - (k-1)^2 = 0 
    (h-5)^2 - (h-4)^2 + (k+2)^2 - (k-1)^2 = 0 

    h^2+6*h+9 - h^2+8*h-16 + k^2-14*k+49 - k^2+2*k-1 = 0 
    h^2-10*h+25 - h^2+8*h-16 + k^2+4*k+4 - k^2+2*k-1 = 0 

    14*h - 12*k + 41 = 0 
    -2*h + 6*k + 12 = 0 

    10*h + 65 = 0 
    30*k + 125 = 0 

    h = -13/2 
    k = -25/6 

Then 

    r = sqrt[(4+13/2)^2 + (1+25/6)^2] 
     = sqrt[4930]/6 

Thus the equation of the circle is: 

    (x+13/2)^2 + (y+25/6)^2 = 4930/36 

- Doctor Rob, The Math Forum 
    http://mathforum.org/dr.math/ 

參考


  1. 尋找鑑於三點一個圈,訪問的2014年4月1日的中心,<http://mathforum.org/library/drmath/view/55239.html>
1

你有三個方程來確定三個未知XM,YM和R,

(xA-xM)^2+(yA-yM^2) = R^2 

等從B中減去甲方程和C方程給出

2*(xB-xA)*xM+2*(yB-yA)*yM = xB^2-xA^2+yB^2-yA^2 
2*(xC-xA)*xM+2*(yC-yA)*yM = xC^2-xA^2+yC^2-yA^2 

通過求解這2×2線性系統,您可以獲得圓的中心點,插入任何原始方程都可得出半徑。

5

圓的中心是等距離的三個已知點:

(X-Xa)^2+(Y-Ya)^2 = (X-Xb)^2+(Y-Yb)^2 = (X-Xc)^2+(Y-Yc)^2 

減去來自所述第二與第三所述第一構件,我們重新組合後得到:

2(Xa-Xb) X + 2(Ya-Yb) Y + Xb^2+Yb^2-Xa^2-Ya^2 = 0 
2(Xa-Xc) X + 2(Ya-Yc) Y + Xc^2+Yc^2-Xa^2-Ya^2 = 0 

該線性系統在兩個未知數中的兩個方程很容易用克萊默法則解決。

半徑和角度可以通過圍繞中心笛卡爾到極變換中找到:

R= Sqrt((Xa-X)^2+(Ya-Y)^2) 

Ta= atan2(Ya-Y, Xa-X) 
Tc= atan2(Yc-Y, Xc-X) 

但是你還是會錯過一兩件事:什麼是弧形的相關部分?小於或大於半圈?從TaTb或從Tb2 PiTa + 2 Pi,還是什麼?答案似乎不像看起來那麼明顯,試試吧(因爲三個角度Ta,TbTc都未定義爲2 Pi的倍數,您無法對它們進行排序)!

提示:考慮三角形ABC區域的正負號,正好是系統行列式的一半。它會告訴你B是在AC的左邊還是右邊。

1

有一個鮮爲人知的結果通過3點給人一種圓的隱式方程:

|Z X Y 1| 
|Za Xa Ya 1| 
|Zb Xb Yb 1| = 0 
|Zc Xc Yc 1| 

,我們已經爲簡明起見定義Z:= X^2 + Y^2

計算的3×3的未成年人,我們發展成:

M00 Z + M10 X + M20 Y + M30 = 0 

和,歸一化後,我們得到了通常的二度方程:

X^2 + Y^2 + 2U X + 2V Y + W = 0 

這可以被改寫爲:

(X - U)^2 + (Y - V)^2 = U^2 + V^2 - W 

立即給中心(U, V) = (-M10/2.M00, -M20/2.M00)和半徑R^2 = U^2 + V^2 - M30/M00

相關問題