天天看點

ZOJ1090 The Circumference of the Circle

  計算幾何題,使用的數學公式參考http://topic.csdn.net/t/20050329/22/3892541.html

複制代碼

#include <iostream>

#include <iomanip>

#include <cmath>

using namespace std;

const double PI = 3.141592653589793;

double Distance(double x1,double y1,double x2,double y2)

{//兩點間的距離

    double deltaX = x1-x2;

    double deltaY = y1-y2;

    return sqrt(deltaX*deltaX+deltaY*deltaY);

}

double CaculateCircum(double x1,double y1,double x2,double y2,double x3,double y3)

{//計算三角形外接圓周長

    //海倫公式計算三角形面積

    double a,b,c,L,S;

    a = Distance(x1,y1,x2,y2);

    b = Distance(x2,y2,x3,y3);

    c = Distance(x1,y1,x3,y3);

    L = (a+b+c)/2;

    S = sqrt(L*(L-a)*(L-b)*(L-c));

//計算三角形外接圓周長

    return PI*a*b*c/(2*S);

int main(void)

{

    double x1,y1,x2,y2,x3,y3,circum;

    while(cin>>x1>>y1>>x2>>y2>>x3>>y3)

    {

        circum = CaculateCircum(x1,y1,x2,y2,x3,y3);

        cout<<fixed<<setprecision(2)<<circum<<endl;

    }

    return 0;

本文轉自Phinecos(洞庭散人)部落格園部落格,原文連結:http://www.cnblogs.com/phinecos/archive/2008/10/31/1323492.html,如需轉載請自行聯系原作者