给出空间中一个三角形的三个点,求三角形内切圆面积与外切圆面积的比值。
这个比值也就是,半径比值的平方。
内切圆:S=1/2*(a+b+c)*r
所以r=2*S/(a+b+c)
外切圆:S=1/2*a*b*sinC,c/sinC=R;
所以R=a*b*c/4*S
而S可有海伦公式求出,S=sqrt(p*(p-a)*(p-b)*(p-c)),p=1/2*(a+b+c);
所以r/R=(a+b-c)*(b+c-a)*(a+c-b)/(2*a*b*c);
#include"stdio.h"
#include"math.h"
struct node
{
int x,y,z;
}aa[3];
double len(node a,node b)
{
return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)+(a.z-b.z)*(a.z-b.z));
}
double fun(double a,double b,double c)
{
return (a+b-c)*(a+c-b)*(b+c-a)/(2*a*b*c);
}
int main()
{
double a,b,c;
while(scanf("%d%d%d",&aa[0].x,&aa[0].y,&aa[0].z)!=-1)
{
scanf("%d%d%d",&aa[1].x,&aa[1].y,&aa[1].z);
scanf("%d%d%d",&aa[2].x,&aa[2].y,&aa[2].z);
a=len(aa[0],aa[1]);
b=len(aa[1],aa[2]);
c=len(aa[2],aa[0]);
printf("%.3f\n",pow(fun(a,b,c),2));
}
return 0;
}