【进化版】三角形外心坐标和外接圆半径

简介:

自己重写了一个更具有针对性的计算模板!!

欧耶~~~


功能:已知一个三角形的三个顶点的坐标,求他的外心及外接圆半径

#include <stdio.h>
#include <math.h>

typedef struct
{
	double x;
	double y;
}myPoint;


double distance(myPoint A,myPoint B)
{
	double dis = (A.x-B.x)*(A.x-B.x)+(A.y-B.y)*(A.y-B.y);

	return sqrt(dis);
}



void   miniCircle(myPoint   *p,myPoint&   center,double&   radius)   
{
	double   Xmove=p[0].x;   
	double   Ymove=p[0].y;
	p[1].x=p[1].x-p[0].x;
	p[1].y=p[1].y-p[0].y;
	p[2].x=p[2].x-p[0].x;
	p[2].y=p[2].y-p[0].y;
	p[0].x=0;
	p[0].y=0;
	int  index;

	double   x1=p[1].x,y1=p[1].y,x2=p[2].x,y2=p[2].y;   
	double   m=2.0*(x1*y2-y1*x2);   
	center.x=(x1*x1*y2-x2*x2*y1+y1*y2*(y1-y2))/m;   
	center.y=(x1*x2*(x2-x1)-y1*y1*x2+x1*y2*y2)/m;   
	radius=distance(center,p[0]);
	center.x+=Xmove;   
	center.y+=Ymove;     

}

int main()
{
	myPoint point[1000],center;
	double  radius;

	printf("请依次输入处理点坐标:\n");

	//输入点,放入p[]数组
	int i;
	for(i=0;i<3;i++)
		scanf("%lf%lf",&point[i].x,&point[i].y);

	miniCircle(point,center,radius);

	printf("三角形外心坐标为:(%.2lf,%.2lf)\n",center.x,center.y);
	printf("三角形外接圆半径为:%.2lf\n",radius);

	return 0;
}


顺便附上C++中常用函数的函数名:

三角函数和反三角函数 
cos(),sin(),tan(),acos(),asin(),atan(),atan2() 

双曲函数: 
cosh(),sinh(),tanh() 

指数对数函数: 
exp(),frexp(),ldexp(),log(),log10(),modf() 

幂函数和平方根函数: 
pow(),sqrt() 

绝对值,上下限值,模函数: 
ceil(),fabs(),floor(),fmod()



相关文章
|
算法 前端开发
圆和矩形是否有重叠
圆和矩形是否有重叠
86 0
|
3月前
|
算法
平面中判断点在三角形内算法(同向法)
平面中判断点在三角形内算法(同向法)
26 0
|
6月前
|
算法 测试技术 C#
【单调栈】【网格】【柱图面积】85. 最大矩形
【单调栈】【网格】【柱图面积】85. 最大矩形
试题:最大的矩形(给定直方图里面积最大的矩形)
试题:最大的矩形(给定直方图里面积最大的矩形)
|
6月前
|
算法
矩形总面积计算器:计算两个矩形的总面积,包括重叠区域
矩形总面积计算器:计算两个矩形的总面积,包括重叠区域
144 1
|
算法 Python
计算三角形的面积
计算三角形的面积
141 0
给定圆的半径r,求圆的面积。
给定圆的半径r,求圆的面积。
133 0
【C++之纯虚函数与抽象类2】计算圆形、正方形、矩形、梯形和三角形的图形面积,并求和
【C++之纯虚函数与抽象类2】计算圆形、正方形、矩形、梯形和三角形的图形面积,并求和
三角形绘制规则
三角形绘制规则
108 0