三角形内切圆与外接圆

/*一个三角形必然存在它的内切圆与外接圆,求他们的面积比。考虑到精度问题,我们输出面积比*1000的整数部分(直接下取整)。
输入数据是一个三角形的三个顶点,但这三个顶点在三维空间中,所以输入是9个整数,分别表示三个顶点(x1,y1,z1) (x2,y2,z2) (x3,y3,z3),保证三点不共线,每个整数在-1000,+1000范围内。
输出内接圆与外切圆的面积比*1000的整数部分。
*/
#include "stdio.h"
#include "math.h"
#include "iostream"
using namespace std;
class Point{
public:
    double x,y,z;
    Point (double x,double y,double z){
        this->x=x;
        this->y=y;
        this->z=z;
    }
};
typedef  Point Vector;

double neiji(Vector,Vector);
double distanse(Point,Point);
//double wai(Point ,Point,Point);
int proceed(Point A,Point B,Point C);

double neiji(Vector v1,Vector v2){
    return v1.x*v2.x+v1.y*v2.y+v1.z*v2.z;
}
double distanse(Point p1,Point p2){
    return neiji(Vector(p1.x-p2.x,p1.y-p2.y,p1.z-p2.z),Vector(p1.x-p2.x,p1.y-p2.y,p1.z-p2.z));
}

int proceed(Point A,Point B,Point C){
    double a=distanse(B,C);
    double b=distanse(A,C);
    double c=distanse(A,B);
    double p=(a+b+c)/2;
    double S=sqrt((p-a)*(p-b)*(p-c)*p);
    double wai=c*b*a/S/2;
    double nei=S/p;
    double bi=pow(nei/wai,2);
    int r=(int)(bi*1000);
    return r;
}
class Test {
public:
    static int ratio (int   x1,int   y1,int   z1,int   x2,int   y2,int   z2,int   x3,int   y3,int   z3)
    {Point A((double)x1,(double)y1,(double)z1);
    Point B((double)x2,(double)y2,(double)z2);
    Point C((double)x3,(double)y3,(double)z3);
    return proceed(A,B,C);
        return 0;
    }
};
//start 提示:自动阅卷起始唯一标识,请勿删除或增加。
int main()
{   
    cout<<Test::ratio(0,0,0,0,0,0,0,0,0)<<endl;   
} 
//end //提示:自动阅卷结束唯一标识,请勿删除或增加。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值