欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

三角形的外心公式

程序员文章站 2022-04-01 16:17:26
...

三角形的外心公式

已知三角形的三顶点:(x1,y1),(x2,y2),(x3,y3)(x_1,y_1),(x_2,y_2),(x_3,y_3)求外心。

思路:利用外心到顶点距离相等,可列出两个等式,联立消元即可。

令:d1=(x22+y22)(x12+y12),d2=(x32+y32)(x22+y22)d_1=(x_2^2+y_2^2)-(x_1^2+y_1^2),d_2=(x_3^2+y_3^2)-(x_2^2+y_2^2)

fm=2((y3y2)×(x2x1)(y2y1)×(x3x2))fm=2((y_3-y_2)\times(x_2-x_1)-(y_2-y_1)\times(x_3-x_2))

x=(y3y2)×d1(y2y1)×d2fm\Rightarrow x=\dfrac{(y_3-y_2)\times d_1-(y_2-y_1)\times d_2}{fm}

y=(x2x1)×d2(x3x2)×d1fm\Rightarrow y=\dfrac{(x_2-x_1)\times d_2-(x_3-x_2)\times d_1}{fm}

#define double db
#define f(x,y) (x*x+y*y)
pair<db,db> fun(db x1,db y1,db x2,db y2,db x3,db y3){
    cin>>x1>>y1>>x2>>y2>>x3>>y3;
    db d1=f(x2,y2)-f(x1,y1),d2=f(x3,y3)-f(x2,y2);
    db fm=2*((y3-y2)*(x2-x1)-(y2-y1)*(x3-x2));
    db ans_x=((y3-y2)*d1-(y2-y1)*d2)/fm;
    db ans_y=((x2-x1)*d2-(x3-x2)*d1)/fm;
    return make_pair(ans_x,ans_y);
}
相关标签: 计算几何