通用版1.W - The Circumference of the Circle

xiaoxiao2021-02-28  33

#include <stdio.h> #include <math.h> #define pi 3.141592653589793 int main() { int i,j; double x1,x2,x3,y1,y2,y3,r,k,b,x,y; while(~scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3)){ if(y1!=y3&&y2!=y3){ k=(x3-x1)/(y1-y3)-(x3-x2)/(y2-y3); b=(x3*x3-x1*x1)/2/(y1-y3)-(x3*x3-x2*x2)/2/(y2-y3)+(y2-y1)/2; x=b/k; y=(y1+y3)/2-(x3*x3-x1*x1)/2/(y1-y3)+x*(x3-x1)/(y1-y3); // printf("3333333\n"); }else if(y1==y3&&y2!=y3) { x=(x1+x3)/2; y=x/(y1-y2)*(x2-x1)+(y1+y2)/2-(x2*x2-x1*x1)/2/(y1-y2); //printf("222222\n"); }else if(y2==y3&&y1!=y3) { x=(x2+x3)/2; y=x/(y1-y2)*(x2-x1)+(y1+y2)/2-(x2*x2-x1*x1)/2/(y1-y2); //printf("11111\n"); //printf("%.4lf,,%.4lf",x,y); } r=sqrt(pow(x-x1,2)+pow(y-y1,2)); printf("%.2lf\n",pi*2*r); } return 0; }

外心是垂直平分线的交点,求垂直平分线时要注意垂直平分线平行于y轴的情况,此时这条直线没有斜率,所以开始前需要分情况讨论。求出外心坐标,求外心与任意一点的距离r,再求出2πr

转载请注明原文地址: https://www.6miu.com/read-2630498.html

最新回复(0)