求不规则图形外接圆的算法 (附:三角形外接圆计算公式)

由于自己理解的算法,也不知道什么名字,所以就没有名字。

 

算法一:

1. 在点集中任取3点A,B,C。

2. 作一个包含A,B,C三点的最小圆,圆周可能通过这3点,也可能只通过

其中两点,但包含第3点.后一种情况圆周上的两点一定是位于圆的一条直

径的两端。

3. 在点集中找出距离第2步所建圆圆心最远的D点,若D点已在圆内或圆周上,

则该圆即为所求的圆,算法结束.则,执行第4步。

4. 在A,B,C,D中选3个点,使由它们生成的一个包含这4个点的圆为最小,这3

点成为新的A,B,C,返回执行第2步。若在第4步生成的圆的圆周只通过A,B,C,D

中的两点,则圆周上的两点取成新的A和B,从另两点中任取一点作为新的C

 

附:任意三角形外接圆计算公式

已知三角形三个顶点坐标:A(x1,y1) B (x2,y2) C (x3,y3)

设圆心坐标:O(x,y)

 

     x=((y2-y1)*(y3*y3-y1*y1+x3*x3-x1*x1)-(y3-y1)*(y2*y2-y1*y1+x2*x2-x1*x1))/(2*(x3-x1)*(y2-y1)-2*((x2-x1)*(y3-y1))); 


     y=((x2-x1)*(x3*x3-x1*x1+y3*y3-y1*y1)-(x3-x1)*(x2*x2-x1*x1+y2*y2-y1*y1))/(2*(y3-y1)*(x2-x1)-2*((y2-y1)*(x3-x1)));

 

 

你可能感兴趣的:(算法)