怎么已知圆方程求圆心和半径的半径和圆心坐标?


选择擅长的领域继续答题?
{@each tagList as item}
${item.tagName}
{@/each}
手机回答更方便,互动更有趣,下载APP
提交成功是否继续回答问题?
手机回答更方便,互动更有趣,下载APP
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
下载百度知道APP,抢鲜体验使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。扫描二维码下载
×个人、企业类侵权投诉
违法有害信息,请在下方选择后提交
类别色情低俗
涉嫌违法犯罪
时政信息不实
垃圾广告
低质灌水
我们会通过消息、邮箱等方式尽快将举报结果通知您。说明
做任务开宝箱累计完成0
个任务
10任务
50任务
100任务
200任务
任务列表加载中...
}

选择擅长的领域继续答题?
{@each tagList as item}
${item.tagName}
{@/each}
手机回答更方便,互动更有趣,下载APP
提交成功是否继续回答问题?
手机回答更方便,互动更有趣,下载APP
展开全部圆在标准方程式下的圆心坐标为:(a,b),半径公式为:r=√[(x-a)^2+(y-b)^2]。圆在一般方程式下的圆心坐标为:(-D/2,-E/2),半径公式为:r=√[(D^2+E^2-4F)]/2。标准方程圆的标准方程为:(x-a)^2+(y-b)^2=r^2 ,其中a和b分别是平面坐标系中分别距离y轴和x轴的距离,也是圆的圆心坐标。r为半径。x和y值代表任意一个坐标点,但要满足x-a>0和y-b>0。由此根据勾股定理可得:圆半径公式r=√[(x-a)^2+(y-b)^2]。圆心坐标为(a,b)。圆的一般方程圆的一般方程为:x^2+y^2+Dx+Ey+F=0 ,配方可化为标准方程:(x+D/2)^2+(y+E/2)^2=(D^2+E^2-4F)/4 。由圆的标准方程可知,x+D/2>0和y+E/2>0。同时,(D^2+E^2-4F)/4>0。由此可得:圆心坐标:(-D/2,-E/2) 。圆半径公式r=√[(D^2+E^2-4F)]/2。圆的直径:D^2+E^2-4F。拓展资料:圆的面积公式:S = π×r^2 。圆周长计算公式:L = 2×π×r。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
为你推荐:
下载百度知道APP,抢鲜体验使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。扫描二维码下载
×个人、企业类侵权投诉
违法有害信息,请在下方选择后提交
类别色情低俗
涉嫌违法犯罪
时政信息不实
垃圾广告
低质灌水
我们会通过消息、邮箱等方式尽快将举报结果通知您。说明
做任务开宝箱累计完成0
个任务
10任务
50任务
100任务
200任务
任务列表加载中...
}
已知圆上的两点坐标和半径,求圆心。数学分析:这个题目,涉及到简单的数学问题,但是计算比较繁琐。假设已知圆上的两点坐标分别为N(X1,Y1)和M(X2,Y2),半径为R,圆心坐标为o(a,b),根据数学知识可得到:(x1-a)^2 + (y1-b)^2 = R^2----(1)式(x2-a)^2 + (y2-b)^2 = R^2----(2)式分别展开上述两个式子得到(x1)^2 - 2*x1*a + a^2 + (y1)^2 - 2*y1*b + b^2 = R^2
----(3)式(x2)^2 - 2*x2*a + a^2 + (y2)^2 - 2*y2*b + b^2 = R^2
----(4)式(3)式 -
(4)式得到:x1^2 - x2^2 + 2*(x2-x1)*a + y1^2 - y2^2 + 2*(y2-y1)*b = 0变形得到:a = (x2^2 - x1^2 + y2^2 - y1^2)/2/(x2-x1) - (y2-y1)/(x2-x2) * b设:C1 = (x2^2 - x1^2 + y2^2 - y1^2)/2/(x2-x1)设:C2 = (y2-y1)/(x2-x2)a = c1 - c2 * b
----(5)式把(5)式代入(1)式,得到;x1^2 - 2*x1*(C1-C2*b) + (C1-C2*b)^2 + y1^2 -2*y1*b + b^2 = R^2展开简化为关于b的一元二次方程一般形式;(C2^2+1)*b^2 + (2*x1*C1-2*C1*C2-2*y1)*b + x1^2-2*x1*C1+C1^2+y1^2-R^2 = 0得到求b的方程组
二次项系数:A = (C2^2+1)一次项系数:B = (2*x1*C1-2*C1*C2-2*y1)常数项:
C = x1^2-2*x1*C1+C1^2+y1^2-R^2已知两点坐标和半径求圆心坐标程序
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ofstream fout;
typedef struct
{
double x;
double y;
}Point;
double Y_Coordinates(double x,double y,double k,double x0);//4个参数
void Circle_Center(Point p1,Point p2,double dRadius);
bool Data_Validation(Point p1,Point p2,double dRadius);
void ReadData(Point &p1,Point &p2,double &dRadius);
void main()
{
Point p1,p2;
double dRadius = 0.0;
ReadData(p1,p2,dRadius);
fout.open("Result.txt");
Circle_Center(p1,p2,dRadius);
fout.close();
}
void Circle_Center(Point p1,Point p2,double dRadius)
{
double k = 0.0,k_verticle = 0.0;
double mid_x = 0.0,mid_y = 0.0;
double a = 1.0;
double b = 1.0;
double c = 1.0;
Point center1,center2;
k = (p2.y - p1.y) / (p2.x - p1.x);
if(k == 0)
{
center1.x = (p1.x + p2.x) / 2.0;
center2.x = (p1.x + p2.x) / 2.0;
center1.y = p1.y + sqrt(dRadius * dRadius -(p1.x - p2.x) * (p1.x - p2.x) / 4.0);
center2.y = p2.y - sqrt(dRadius * dRadius -(p1.x - p2.x) * (p1.x - p2.x) / 4.0);
}
else
{
k_verticle = -1.0 / k;
mid_x = (p1.x + p2.x) / 2.0;
mid_y = (p1.y + p2.y) / 2.0;
a = 1.0 + k_verticle * k_verticle;
b = -2 * mid_x - k_verticle * k_verticle * (p1.x + p2.x);
c = mid_x * mid_x + k_verticle * k_verticle * (p1.x + p2.x) * (p1.x + p2.x) / 4.0 -
(dRadius * dRadius - ((mid_x - p1.x) * (mid_x - p1.x) + (mid_y - p1.y) * (mid_y - p1.y)));
center1.x = (-1.0 * b + sqrt(b * b -4 * a * c)) / (2 * a);
center2.x = (-1.0 * b - sqrt(b * b -4 * a * c)) / (2 * a);
center1.y = Y_Coordinates(mid_x,mid_y,k_verticle,center1.x);
center2.y = Y_Coordinates(mid_x,mid_y,k_verticle,center2.x);
}
fout << center1.x << "
" << center1.y << endl;
fout << center2.x << "
" << center2.y << endl;
}
double Y_Coordinates(double x,double y,double k,double x0)
{
return k * x0 - k * x + y;
}
bool Data_Validation(Point p1,Point p2,double dRadius)
{
double dDistance = 0.0;
dDistance = sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y));
if(dDistance == 0.0)
{
cout << "\n输入了相同的点!\n";
return false;
}
if((2 * dRadius) >= dDistance)
return true;
else
{
cout << "\n两点间距离大于直径!\n";
return false;
}
}
void ReadData(Point &p1,Point &p2,double &dRadius)
{
cout << "请输入圆周上一点的坐标:";
cin >> p1.x >> p1.y;
cout << "请输入圆周上另一点的坐标:";
cin >> p2.x >> p2.y;
cout << "请输入圆的半径:";
cin >> dRadius;
if(! Data_Validation(p1,p2,dRadius))
{
cout << endl << "数据不合理!\n";
exit(0);
}
}
}

我要回帖

更多关于 已知圆方程求圆心和半径 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信