过平面三点求圆的圆心和半径
设平面三点v0,v1,v2 求过三点的圆的圆心c?
解:
由圆的方程
(
x
−
x
c
)
2
+
(
y
−
y
c
)
2
=
r
2
(x-x_c)^2+(y-y_c)^2=r^2
(x−xc)2+(y−yc)2=r2 (1)
将三点代入(1)得到:
(
x
0
−
x
c
)
2
+
(
y
0
−
y
c
)
2
=
r
2
(x_0-x_c)^2+(y_0-y_c)^2=r^2
(x0−xc)2+(y0−yc)2=r2 (2)
(
x
1
−
x
c
)
2
+
(
y
1
−
y
c
)
2
=
r
2
(x_1-x_c)^2+(y_1-y_c)^2=r^2
(x1−xc)2+(y1−yc)2=r2 (3)
(
x
2
−
x
c
)
2
+
(
y
2
−
y
c
)
2
=
r
2
(x_2-x_c)^2+(y_2-y_c)^2=r^2
(x2−xc)2+(y2−yc)2=r2 (4)
(2)-(3)得
(
2
∗
x
1
−
2
∗
x
0
)
∗
x
c
+
(
2
∗
y
1
−
2
∗
y
0
)
∗
y
c
=
x
1
2
+
y
1
2
−
x
0
2
−
y
0
2
(2*x_1-2*x_0)*x_c+(2*y_1-2*y_0)*yc=x_1^2+y_1^2-x_0^2-y_0^2
(2∗x1−2∗x0)∗xc+(2∗y1−2∗y0)∗yc=x12+y12−x02−y02 (A)
(3)-(4)得
(
2
∗
x
2
−
2
∗
x
1
)
∗
x
c
+
(
2
∗
y
2
−
2
∗
y
1
)
∗
y
c
=
x
2
2
+
y
2
2
−
x
1
2
−
y
1
2
(2*x_2-2*x_1)*x_c+(2*y_2-2*y_1)*yc=x_2^2+y_2^2-x_1^2-y_1^2
(2∗x2−2∗x1)∗xc+(2∗y2−2∗y1)∗yc=x22+y22−x12−y12 (B)
则A,B构成一个二元一次方程组
[
a
0
b
0
a
1
b
1
]
[
x
c
y
c
]
=
[
d
0
d
1
]
\begin{bmatrix} a_0 & b_0 \\ a_1 & b_1 \end{bmatrix} \begin{bmatrix} x_c \\ y_c \end{bmatrix} = \begin{bmatrix} d_0 \\ d_1 \end{bmatrix}
[a0a1b0b1][xcyc]=[d0d1]
采用克莱姆法可以计算出xc(xc, yc),当分母
a
0
∗
b
1
−
a
1
∗
b
0
a_0*b_1-a_1*b_0
a0∗b1−a1∗b0接近0,则无解。
知道圆心,则代入(1)可以求出半径r。