求三角形外接圆周长

 
  
#define PAI 3.1415926

#include
< stdio.h >
#include
< math.h >
// 求三角形外接圆周长

// 三角形三边a,b,c,半周长p(p=(a+b+c)/2)
// 面积:S= √[p(p - a)(p - b)(p - c)]
// 外接圆半径 R=abc/4S
// 外接圆半径 R=abc/4√[p(p - a)(p - b)(p - c)]
// 外接圆周长C=2*PAI*R

float S( float x1, float y1, float x2, float y2, float x3, float y3){
return ((x1 - x3) * (y2 - y3) - (y1 - y3) * (x2 - x3) );
}

float cal_center_x( float x1, float y1, float x2, float y2, float x3, float y3){
return (S(x1 * x1 + y1 * y1,y1, x2 * x2 + y2 * y2, y2,x3 * x3 + y3 * y3,y3) / ( 2 * S(x1,y1,x2,y2,x3,y3)) );
}

float cal_center_y( float x1, float y1, float x2, float y2, float x3, float y3){
return (S(x1, x1 * x1 + y1 * y1, x2, x2 * x2 + y2 * y2, x3, x3 * x3 + y3 * y3) / ( 2 * S(x1,y1,x2,y2,x3,y3)));
}

int main()
{
float x1, y1, x2, y2, x3, y3, x, y;
while (scanf( " %f %f %f %f %f %f " , & x1, & y1, & x2, & y2, & x3, & y3) != EOF)
{
x
= cal_center_x(x1, y1, x2, y2, x3, y3);
y
= cal_center_y(x1, y1, x2, y2, x3, y3);
float C = 2 * PAI * sqrt((x - x1) * (x - x1) + (y - y1) * (y - y1));
printf(
" %.2f\n " , C);
}
return 0 ;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值