一直一個三角形的三個頂點的座標,求他的外心及外接圓半徑
void miniCircle(myPoint *p,myPoint& center,double& radius)
{
double Xmove=p[0].x;
double Ymove=p[0].y;
p[1].x=p[1].x-p[0].x;
p[1].y=p[1].y-p[0].y;
p[2].x=p[2].x-p[0].x;
p[2].y=p[2].y-p[0].y;
p[0].x=0;
p[0].y=0;
int index;
double x1=p[1].x,y1=p[1].y,x2=p[2].x,y2=p[2].y;
double m=2.0*(x1*y2-y1*x2);
center.x=(x1*x1*y2-x2*x2*y1+y1*y2*(y1-y2))/m;
center.y=(x1*x2*(x2-x1)-y1*y1*x2+x1*y2*y2)/m;
radius=distance(center,p[0]);
center.x+=Xmove;
center.y+=Ymove;
}
同時附上C++中常用函數的函數名:
三角函數和反三角函數
cos(),sin(),tan(),acos(),asin(),atan(),atan2()
雙曲函數:
cosh(),sinh(),tanh()
指數對數函數:
exp(),frexp(),ldexp(),log(),log10(),modf()
冪函數和平方根函數:
pow(),sqrt()
絕對值,上下限值,模函數:
ceil(),fabs(),floor(),fmod()