请教己知三个平面坐标点,球圆心的方法!

发布网友 发布时间:2022-04-24 18:24

我来回答

4个回答

热心网友 时间:2023-07-15 20:07

计算步骤:
(1)写出AB,BC的斜率
(2)写出AB,BC的中点坐标
(3)算出AB,BC的中垂线的方程,AB的中垂线过AB的中点且垂直于AB
(4)根据AB,BC中垂线的方程,算出中垂线的交点坐标,交点坐标即是三角形
的外接圆的圆心坐标
(5)根据两点间距离公式可算得外接圆的半径

公式没有多大意义,按照上面的计算步骤算出圆的方程并不难,至于公式,我个人觉得纯属多余。

热心网友 时间:2023-07-15 20:07

我给你源程序 c语言的
#include<iostream.h>
#include<math.h>

int main()
{
int x1,y1,x3,y3;
double a,b,c,d,e,f;
double r,k1,k2,x,y,x2,y2;
cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;
cin>>x1>>y1>>x2>>y2>>x3>>y3;
if((y1==y2)&&(y2==y3))
{
cout<<"三点不构成圆!"<<endl;
return 0;
}
if((y1!=y2)&&(y2!=y3))
{
k1=(x2-x1)/(y2-y1);
k2=(x3-x2)/(y3-y2);
}
if(k1==k2)
{
cout<<"三点不构成圆!"<<endl;
return 0;
}
a=2*(x2-x1);
b=2*(y2-y1);
c=x2*x2+y2*y2-x1*x1-y1*y1;
d=2*(x3-x2);
e=2*(y3-y2);
f=x3*x3+y3*y3-x2*x2-y2*y2;
x=(b*f-e*c)/(b*d-e*a);
y=(d*c-a*f)/(b*d-e*a);
cout<<"圆心为("<<x<<","<<y<<")"<<endl;
r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
cout<<"半径为"<<r<<endl;
return 0;
}

热心网友 时间:2023-07-15 20:07

我给你源程序
c语言的
#include<iostream.h>
#include<math.h>
int
main()
{
int
x1,y1,x3,y3;
double
a,b,c,d,e,f;
double
r,k1,k2,x,y,x2,y2;
cout<<"请输入x1,y1,x2,y2,x3,y3"<<endl;
cin>>x1>>y1>>x2>>y2>>x3>>y3;
if((y1==y2)&&(y2==y3))
{
cout<<"三点不构成圆!"<<endl;
return
0;
}
if((y1!=y2)&&(y2!=y3))
{
k1=(x2-x1)/(y2-y1);
k2=(x3-x2)/(y3-y2);
}
if(k1==k2)
{
cout<<"三点不构成圆!"<<endl;
return
0;
}
a=2*(x2-x1);
b=2*(y2-y1);
c=x2*x2+y2*y2-x1*x1-y1*y1;
d=2*(x3-x2);
e=2*(y3-y2);
f=x3*x3+y3*y3-x2*x2-y2*y2;
x=(b*f-e*c)/(b*d-e*a);
y=(d*c-a*f)/(b*d-e*a);
cout<<"圆心为("<<x<<","<<y<<")"<<endl;
r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
cout<<"半径为"<<r<<endl;
return
0;
}

热心网友 时间:2023-07-15 20:08

做3边中垂线(两个就行)交点为圆心坐标
再求圆心坐标到一个点的距离

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com