vb中,已知圓上兩點和半徑值,求圓心座標的程式

時間 2021-08-11 15:48:34

1樓:匿名使用者

問題:已知圓上的兩點座標和半徑,求圓心。

數學分析:這個題目,涉及到簡單的數學問題,但是計算比較繁瑣。

假設已知圓上的兩點座標分別為n(x1,y1)和m(x2,y2),半徑為r,圓心座標為o(a,b),根據數學知識可得到:

(x1-a)^2 + (y1-b)^2 = r^2----(1)式

(x2-a)^2 + (y2-b)^2 = r^2----(2)式

分別上述兩個式子得到

(x1)^2 - 2*x1*a + a^2 + (y1)^2 - 2*y1*b + b^2 = r^2 ----(3)式

(x2)^2 - 2*x2*a + a^2 + (y2)^2 - 2*y2*b + b^2 = r^2 ----(4)式

(3)式 - (4)式

得到:x1^2 - x2^2 + 2*(x2-x1)*a + y1^2 - y2^2 + 2*(y2-y1)*b = 0

變形得到:

a = (x2^2 - x1^2 + y2^2 - y1^2)/2/(x2-x1) - (y2-y1)/(x2-x2) * b

設:c1 = (x2^2 - x1^2 + y2^2 - y1^2)/2/(x2-x1)

設:c2 = (y2-y1)/(x2-x2)

a = c1 - c2 * b ----(5)式

把(5)式代入(1)式,得到;

x1^2 - 2*x1*(c1-c2*b) + (c1-c2*b)^2 + y1^2 -2*y1*b + b^2 = r^2

簡化為關於b的一元二次方程一般形式;

(c2^2+1)*b^2 + (2*x1*c1-2*c1*c2-2*y1)*b + x1^2-2*x1*c1+c1^2+y1^2-r^2 = 0

二次項係數:a = (c2^2+1)

一次項係數:b = (2*x1*c1-2*c1*c2-2*y1)

常數項: c = x1^2-2*x1*c1+c1^2+y1^2-r^2

根的判別式:derta = b^2 - 4*a*c

如果:derta < 0 則無解

derta >0 有兩個不同的解

derta =0 有兩個相同的解

**:在窗體上新增7個文字框:

text1 --輸入已知圓上點第1個的x座標

text2 --輸入已知圓上點第1個的y座標

text3 --輸入已知圓上點第2個的x座標

text4 --輸入已知圓上點第2個的y座標

text5 --輸入已知圓的半徑

text6 --輸出圓心的x座標

text7 --輸出圓心的y座標

新增一個按鈕;

**如下:

private sub command1_click()

dim x1, y1, x2, y2, r as single

dim x01, y01, x02, y02 as single

dim a, b, c as single

dim derta as single

dim c1, c2 as single

x1 = val(text1.text)

y1 = val(text2.text)

x2 = val(text3.text)

y2 = val(text4.text)

r = val(text5.text)

c1 = (x2 ^ 2 - x1 ^ 2 + y2 ^ 2 - y1 ^ 2) / 2 / (x2 - x1)

c2 = (y2 - y1) / (x2 - x1)

a = (c2 ^ 2 + 1)

b = 2 * x1 * c2 - 2 * c1 * c2 - 2 * y1

c = x1 ^ 2 - 2 * x1 * c1 + c1 ^ 2 + y1 ^ 2 - r ^ 2

derta = b ^ 2 - 4 * a * c

if derta >= 0 then

derta = derta ^ (0.5)

y01 = (-b + derta) / 2 / a

y02 = (-b - derta) / 2 / a

x01 = c1 - c2 * y01

x02 = c1 - c2 * y02

'因為是一元二次方程,得到2個實數根,需要略去一個增根

if abs((x1 - x01) ^ 2 + (y1 - y01) ^ 2 - r ^ 2) < abs((x1 - x02) ^ 2 + (y1 - y02) ^ 2 - r ^ 2) then

text6.text = x01

text7.text = y01

else

text6.text = x02

text7.text = y02

end if

else

msgbox("無解!")

text6.text = derta

end if

end sub

2樓:前沿建築技術

圓弧座標計算,仔細看圖。c點圓心是計算出來的吧。

已知起點終點和半徑就行了。

3樓:匿名使用者

有數學公式的話 就可以做的

好久沒接觸這個公式了

應該求出來的圓心有兩個的。

知道圓上兩個點座標和半徑,怎麼求圓心

4樓:莪要狠幸福

連線圓上兩點,找到中心做垂線,然後在這兩點任意一點以此點為圓心,半徑相同做願,那麼垂線和圓的焦點就是圓心了

5樓:咫尺天涯_死神

假設已知p(x1,y1)抄,q(x2,y2),半徑為r,求襲圓心座標o(m,n)

求得經過pq兩點所在

直線l1的函式為:y=kx+a, kx-y+a=0

則與pq垂直的直線l2函式為:y=-x/k+b, x/k+y-b=0

利用點到直線的距離公式:pq兩點到l2直線的距離相等得到:│ x1/k+y1-b│=│ x2/k+y2-b│……式1; r²-(x2/k+y2-b)²/(1/k²+1)=(km-n+a)/(k²+1)……式2;同時圓心還在l2直線上,就有m/k+n-b=0 ……式3;

式子1求得l2函式的b,式子2,3的互相關係,求得m,n 有2個點,關於l1對稱的,除非圓心過l1,如果是就一個點,表示圓心是經過l1的。

已知2點座標和半徑 怎麼求圓心座標

6樓:明哥歸來

設圓方bai

程為(x-a)^2+(y-b)^2=r^2將兩點座標

du及圓半徑代入可zhi解方程組得圓心dao座標(a,b)比如的給的a(0,15),b(40,0),r=160,代入可得(0-a)^2+(15-b)^2=160^2(40-a)^2+(0-b)^2=160^2解之可得

另外,也可按求出兩點間距l及中點座標((x1+x2)/2,(y1+y2)/2)及斜率k=(y1-y2)/(x1-x2),則有過圓心座標的直線方程為l=y,再求得直線到兩點距離為半徑r的點的座標就是所求圓心座標.

一般只要已知兩點距離小於2r,則有兩個圓心座標,一般兩點間距離等於2r,則圓心座標只有兩點中點,如果兩點間距離大於2r,則實數範圍內無解.

7樓:從龍山南

以已知座標為圓心,已知半徑為半徑畫圓,交點為所求圓心。可以列兩個圓的方程求解

圓周上兩點之間的部分叫做什麼,圓上兩點之間的部分叫做什麼?

弧.長於半圓的叫優弧 短於半圓的叫劣弧 華樂正封紫 數學上,圓周上兩點之間的部分叫弧。根據弧的定義 弧就是圓上任意兩點之間的部分。所以圓周上兩點之間的部分叫弧。弧的大小有兩種表示方法 弧長與弧度。弧長 在圓上過2點的一段弧的長度叫做弧長。弧度 弧長等於半徑的弧,其所對的圓心角為1弧度。擴充套件資料 ...

如圖 已知AOB和C D兩點,求作一點P,使PC PD,且

愛刷 棍哥 作cd的中垂線和 aob的平分線,兩線的交點即為所作的點p 如圖,已知 aob和c d兩點,求作一點p,使pc pd,且點p到 aob兩邊的距離相等 保留作圖痕跡 冰雪 作圖詳見解析.試題分析 點p就是所求的點 如圖11,已知角aob和c,d兩點,求做一點p,使pc pd,且點p到角ao...

如圖,已知角AOB和C D兩點,求作一點P,使PC PD,且

曳尾塗中 都是作cd垂直平分線,及 a0b角平分線 兩者交點則p 如圖,已知 aob和c d兩點,求作一點p,使pc pd,且點p到 aob兩邊的距離相等 保留作圖痕跡 冰雪 作圖詳見解析.試題分析 點p就是所求的點 如圖 已知 aob和c d兩點,求作一點p,使pc pd,且p到 aob兩邊的距離...