求三角形外接圆的圆心_外接圆圆心是什么交点「建议收藏」

求三角形外接圆的圆心_外接圆圆心是什么交点「建议收藏」直角三角形的外心(即三边垂直平分线交点)在斜边的中点上,因此直角三角形的外接圆半径就等于斜边的一半三角形三边为a、b、c半周长p=(a+b+c)/2三角形面积S=√[p(p-a)(p-b)(p-

1. 直角三角形的外心(即三边垂直平分线交点)在斜边的中点上,因此直角三角形的外接圆半径就等于斜边的一半

2. 求外接圆半径

三角形三边为 a、b、c

半周长     p=(a+b+c)/2

三角形面积 S=√[p(p-a)(p-b)(p-c)]   (海伦公式)

内切圆半径 r = S/p

                       =√[(p-a)(p-b)(p-c)/p]

                       = ½√[(-a+b+c)(a-b+c)(a+b-c)/(a+b+c)]

外接圆半径 R= abc/(4S)

                        = ¼ abc/√[p(p-a)(p-b)(p-c)]

                        = abc/√[(a+b+c)(-a+b+c)(a-b+c)(a+b-c)]

R、r、S 关系

rR = S/p *  abc/(4S) = abc/[2(a+b+c)]

3. 求外接圆圆心

求三角形外接圆的圆心_外接圆圆心是什么交点「建议收藏」

三维矩阵行列式:

求三角形外接圆的圆心_外接圆圆心是什么交点「建议收藏」

4. 实现代码(C++)

/**
处理:如三点共线,则返回false;否则,返回true,并将计算得到的圆心与半径存放在center和radius众返回。
*/
bool  triangleCircle(const Point& p1,const Point& p2,const Point& p3,Point &center,double &radius)  
{
	//检查三点是否共线
	if( isThreePointsOnOneLine(p1,p2,p3) )
		return false;

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

	x1  =  p1.x; 
	x2  =  p2.x;
	x3  =  p3.x;
	y1  =  p1.y;
	y2  =  p2.y;
	y3  =  p3.y;

	//求外接圆半径
	double a=sqrt( (x1-x2)*(x1-x2)+(y1-y2)*(y1-y2) );
	double b=sqrt( (x1-x3)*(x1-x3)+(y1-y3)*(y1-y3) );
	double c=sqrt( (x2-x3)*(x2-x3)+(y2-y3)*(y2-y3) );
	double p=(a+b+c)/2;
	double S=sqrt( p*(p-a)*(p-b)*(p-c) );
	radius=a*b*c/(4*S);

	//求外接圆圆心
	double t1=x1*x1+y1*y1;
	double t2=x2*x2+y2*y2;
	double t3=x3*x3+y3*y3;
	double temp=x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2;
	double x=(t2*y3+t1*y2+t3*y1-t2*y1-t3*y2-t1*y3)/temp/2;
	double y=(t3*x2+t2*x1+t1*x3-t1*x2-t2*x3-t3*x1)/temp/2;

	center.x  =  x  ;
	center.y  =  y  ;

	return true;
}
/**
判断3个点是否共线
*/
bool isThreePointsOnOneLine(const Point& p1,const Point& p2,const Point& p3){
	if(p2.x==p1.x){
		if(p2.x==p3.x)
			return true;
		return false;
	}else{
		if(p2.x==p3.x)
			return true;
	}
	//判断依据:p2与p1两点构成直线的斜率=p2与p3两点构成直线的斜率
	double k1=(p2.y-p1.y)/(p2.x-p1.x);
	double k2=(p3.y-p2.y)/(p3.x-p2.x);
	double DIFF=0.00000001;
	if( fabs(k1-k2)<DIFF  )
		return true;
	return false;
}

参考资料:

1. 三角形外接圆半径公式:http://zhidao.baidu.com/link?url=1WKM_z0Vfaejav_OnjsiSJtFf1LFyEKPaS4EPswqkd5xBbCAAJzNZNn3qwVpS_XymmetcTDhCQ4HRShVXEjDI_

2. 三角形外接圆圆心公式:http://zhidao.baidu.com/link?url=-3KVP3Gi5Nqs6gEb_gYt1TfWSDhcI13Etsd8xeMorWiQ64x7v8HMapIU-pVx7GHjIPZbHvfQejx3uGDnmi6UI_

今天的文章求三角形外接圆的圆心_外接圆圆心是什么交点「建议收藏」分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/88424.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注