#include typedef struct{
double x;
double y;
}_Power;
typedef struct{
_Power a;
_Power b;
_Power c;
}_Plan;
double side(_Power power1, _Power power2){//求两点间的距离(边长)
return
sqrt(pow(power1.x - power2.x, 2) + pow(power1.y - power2.y, 2));
}
double perimeter(_Plan triangle){//求周长
return
side(triangle.a, triangle.b) + side(triangle.a, triangle.c) + side(triangle.b, triangle.c);
}
double area(_Plan triangle){//求面积
double p = perimeter(triangle) / 2;
return
sqrt(p*(p - side(triangle.a, triangle.b))*(p - side(triangle.a, triangle.c))*(p - side(triangle.b, triangle.c)));
}
_Power core(_Plan triangle){//求外心
double A1 = 2 * (triangle.b.x - triangle.a.x), B1 = 2 * (triangle.b.y - triangle.a.y),
C1 = pow(triangle.b.x, 2) + pow(triangle.b.y, 2) - pow(triangle.a.x, 2) - pow(triangle.a.y, 2),
A2 = 2 * (triangle.c.x - triangle.b.x), B2 = 2 * (triangle.c.y - triangle.b.y),
C2 = pow(triangle.c.x, 2) + pow(triangle.c.y, 2) - pow(triangle.b.x, 2) - pow(triangle.b.y, 2);
_Power power;
power.x = ((C1*B2) - (C2*B1)) / ((A1*B2) - (A2*B1));
power.y = ((A1*C2) - (A2*C1)) / ((A1*B2) - (A2*B1));
return power;
}
_Power focus(_Plan triangle){//求重心
_Power power;
power.x = (triangle.a.x + triangle.b.x + triangle.c.x) / 3;
power.y = (triangle.a.y + triangle.b.y + triangle.c.y) / 3;
return power;
}
int main(){
_Plan plan;
scanf("%lf %lf %lf %lf %lf %lf",&plan.a.x, &plan.a.y,&plan.b.x, &plan.b.y,&plan.c.x, &plan.c.y);
printf("%.2lf\n", perimeter(plan));
printf("%.2lf\n", area(plan));
_Power power;
power = core(plan);
printf("%.2lf %.2lf\n", power.x, power.y);
power = focus(plan);
printf("%.2lf %.2lf\n", power.x, power.y);
return 0;
}
```