Dim xa As Single, xb As Single, xc As Single Dim ya As Single, yb As Single, yc As Single Dim x As Single, y As Single, r As Single Dim a11 As Single, a12 As Single, b1 As Single, a21 As Single, a22 As Single, b2 As Single Dim D As Single, D1 As Single, D2 As Single
'推导: '(x - xa) ^ 2 + (y - ya) ^ 2 = (x - xb) ^ 2 + (y - yb) ^ 2 圆心到A点距离等于到B点距离 '(x - xa) ^ 2 + (y - ya) ^ 2 = (x - xc) ^ 2 + (y - yc) ^ 2 圆心到A点距离等于到C点距离 '(-2 * xa + 2 * xb) * x + (-2 * ya + 2 * yb) * y = -xa * xa + xb * xb - ya * ya + yb * yb '(-2 * xa + 2 * xc) * x + (-2 * ya + 2 * yc) * y = -xa * xa + xc * xc - ya * ya + yc * yc 'vvbb 答疑网 www.dayi.net
a11 = -2 * xa + 2 * xb a12 = -2 * ya + 2 * yb b1 = -xa * xa + xb * xb - ya * ya + yb * yb a21 = -2 * xa + 2 * xc a22 = -2 * ya + 2 * yc b2 = -xa * xa + xc * xc - ya * ya + yc * yc
D = a11 * a22 - a12 * a21 If D = 0 Then Print "系数行列式 D = 0,无解或无穷多解!" Exit Sub End If D1 = b1 * a22 - a12 * b2 D2 = a11 * b2 - b1 * a21 x = D1 / D y = D2 / D r = ((x - xa) ^ 2 + (y - ya) ^ 2) ^ 0.5 Print "圆心坐标 x, y = " & x & ", " & y, "半径 r = " & r