VB求三角形外接圆心与半径

VB求三角形外接圆心与半径
day158 tick
[求助] 求三角形外接圆心的位置坐标与半径长算法
己经:三个点  A(xa,ya),  B(xb,yb),  C(xc,yc);
求:三点组成的三角形的外接圆心的坐标及半径长
写这种算法vb代码,
多谢!大侠!
vvbb TwoFlag
Option Explicit

Private Sub Command1_Click()

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

xa = InputBox("输入圆周坐标 xa")
xb = InputBox("输入圆周坐标 xb")
xc = InputBox("输入圆周坐标 xc")
ya = InputBox("输入圆周坐标 ya")
yb = InputBox("输入圆周坐标 yb")
yc = InputBox("输入圆周坐标 yc")
Print "坐标 xa, xb, xc = " & xa & ", " & xb & ", " & xc
Print "坐标 ya, yb, yc = " & ya & ", " & yb & ", " & yc

'推导:
'(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

End Sub


from:http://www.dayi.net/CExcellent/39392.asp












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值