已知三角形三個頂點求內切圓和外接圓半徑 以及面積 C語言模板

自己找的公式然後寫的,比較低級,

希望能有大佬看到能指點我一下有什麼更高級的公式。感激不盡!  

double Length(int x1,int y1,int x2,int y2){
	return (double)sqrt(pow(x1-x2,2)+pow(y1-y2,2));
}    
double a=Length(x1,y1,x2,y2);
double b=Length(x2,y2,x3,y3);
double c=Length(x3,y3,x1,y1);
		
double r=(double)sqrt((a+b+c)*(a+b-c)*(a+c-b)*(b+c-a))/(2*(a+b+c));    //內切圓   
double R=a*b*c/sqrt(4*b*b*c*c-pow(b*b+c*c-a*a,2));       //外接圓

更新面積

double S(double a,double b,double c){
    double p=(a+b+c)/2;
    return (double)sqrt(p*(p-a)*(p-b)*(p-c));
}


double area(node a, node b, node c) {
    return fabs((b.x - a.x) * (c.y - a.y) - (c.x - a.x) * (b.y - a.y)) / 2.0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章