public sub draw(byval a_x as integer,byval a_y as integer,byval b_x as integer,byval b_y as integer,byval c_x as integer,byval c_y as integer)
dim circle_point_x as integer=0
dim circle_point_y as integer=0
dim circle_r as integer=0
dim arc_start_angle as integer=0
dim arc_cross_angle as integer=0
*确定是否在一条直线上
*求ab两点的解析式
dim function_1_k as double=(a_y-b_y)-(a_x-b_x)
dim function_1_b as double=a_y-function_1_k*a_x
if c_y=function_1_k*c_x+function_1_b then
*在同一条直线上没有弧
exit sub
end if
*分别计算ab,bc的垂直平分线的交点
dim high_1 as integer=abs(a_y-b_y)
dim width_1 as integer=abs(a_x-b_x)
dim middle_point_1_x as integer=0
dim middle_point_1_y as integer=0
if a_x<b_x then
middle_point_1_x=a_x+width_1/2
else
middle_point_1_x=b_x+width_1/2
end if
if a_y<b_y then
middle_point_1_y=a_y+high_1/2
else
middle_point_1_y=b_y+high_1/2
end if
dim function_2_k as double=-(1/function_1_k)
dim function_2_b as double=middle_point_1_y-function_2_k*middle_point_1_x
*bc解析式
dim high_2 as integer=abs(c_y-b_y)
dim width_2 as integer=abs(c_x-b_x)
dim middle_point_2_x as integer=0
dim middle_point_2_y as integer=0
if c_x<b_x then
middle_point_2_x=c_x+width_2/2
else
middle_point_2_x=b_x+width_2/2
end if
if c_y<b_y then
middle_point_2_y=c_y+high_2/2
else
middle_point_2_y=b_y+high_2/2
end if
dim function_3_k as double=-(1/(c_y-b_y)-(c_x-b_x))
dim function_3_b as double=middle_point_2_y-function_3_k*middle_point_2_x
*确定圆心
circle_point_x=(function_3_b-function_2_b)/(function_2_k-function_3_k)
circle_point_y=function_2_k*circle_point_x+function_2_b
*求半径
circle_r=sqrt(sqr(abs(circle_point_x-a_x))+sqr(abs(circle_point_y-a_y)))
end sub
circle_point_x和circle_point_y是圆心坐标,circle_r是半径,我只能做到这了