/*一个三角形必然存在它的内切圆与外接圆,求他们的面积比。考虑到精度问题,我们输出面积比*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 //提示:自动阅卷结束唯一标识,请勿删除或增加。