因為工作中,用到了所以找了下,挺不錯,分享一下。
就是解三元二次方程組!
x,y,r為未知數,x1,y1,x2,y2,x3,y3為常數
(x1-x)²-(y1-y)²=r² (1)式
(x2-x)²-(y2-y)²=r² (2)式
(x3-x)²-(y3-y)²=r² (3)式
(1)-(2),就是左邊減左邊,右邊減右邊,得到
x1²-2xx1+x²-(y1²-2yy1+y²)-(x2²-2xx2+x²)+(y2²-2yy2+y²)=r²-r²
整理得x1²+y2²-y1²-x2²+2xx2-2xx1+2yy1-2yy2=0
(2)-(1)整理得:
x2²+y3²-y2²-x3²+2xx3-2xx2+2yy2-2yy3=0
再整理上面兩式得
(2x2-2x1)x+(2y1-2y2)y=y1²+x2²-x1²-y2²
(2x3-2x2)x+(2y2-2y3)y=y2²+x3²-x2²-y3²
程式問題:
a=2*(x2-x1);
b=2*(y2-y1);
c=x2*x2+y2*y2-x1*x1-y1*y1;
d=2*(x3-x2);
e=2*(y3-y2);
f=x3*x3+y3*y3-x2*x2-y2*y2;
x=(b*f-e*c)/(b*d-e*a);
y=(d*c-a*f)/(b*d-e*a);
r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
其中:變數和常量都為雙精度型(double)
已知三點求圓心與半徑
已知三點求圓心與半徑 kezunhai gmail.com 在計算機影象圖形學中,經常會用到求圓心或圓半徑的情況,本文介紹一種已知三個點求圓心和圓半徑的方法 當然三個點不能共線,共線的三個點不能構成圓 原理 相互連線三個點,選取其中的任意兩條直線,通過對這兩條直線的中心做垂線,兩條垂線的交點就是圓心...
已知三點座標,求外接圓圓心座標與半徑。
已知三點座標,求外接圓圓心座標與半徑。a y2 y1 y3 y3 y1 y1 x3 x3 x1 x1 y3 y1 y2 y2 y1 y1 x2 x2 x1 x1 2.0 x3 x1 y2 y1 x2 x1 y3 y1 b x2 x1 x3 x3 x1 x1 y3 y3 y1 y1 x3 x1 x2 ...
與計算機猜拳 通過shell指令碼用case語句實現
呼叫random值,以3取餘。num random 3 以三個數字0 1 2代表計算機出拳手勢 echo 1.剪刀 echo 2.石頭 echo 3.布 read p 輸入數字選擇出拳 select 以不同的數字代表case語句中的不同模組 case select in1 if num eq 0 t...