求助:已知圆上一些点的坐标和圆的半径,怎样编程计算圆心的坐标?

mengxihe 2002-07-18 04:18:58
...全文
919 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzwu 2002-07-22
  • 打赏
  • 举报
回复
能确定园的几组参数:

1.圆心+半径;
2.圆心+圆上一个点;
3.园上三个点;
4.园的一个直径;
5.园的一个外切三角形;
6.园的外切角的顶点及一个切点;
7. ....?
8. ....?


zzwu 2002-07-22
  • 打赏
  • 举报
回复
抱歉,讲错了.应纠正:

圆上一个点 + 圆心,
zzwu 2002-07-22
  • 打赏
  • 举报
回复
抱歉,讲错了.应纠正:

圆上一个点 + 圆心,
lovegreen 2002-07-19
  • 打赏
  • 举报
回复
lovetsinghua(瞌睡♂工作虫),
用两个中垂线方程求解效率应该很高。
假设以得到方程
1) Y=K1*X+A1
2) Y=K2*X+A2
则X=(A2-A1)/(K1-K2)
Y=K1*X+A1
mengxihe 2002-07-19
  • 打赏
  • 举报
回复
lovetsinghua(瞌睡♂工作虫)

矩阵相乘是不是把矩阵定义成一个二维数组,然后再按乘法规则相乘?
lovetsinghua 2002-07-19
  • 打赏
  • 举报
回复
quicmous(快鼠)
我没说不简单,只是我觉得效率有点低,呵呵。
lovetsinghua 2002-07-19
  • 打赏
  • 举报
回复
求半径和求圆心不太一样。前者可以直接得出,后者,如果不是用矩阵,一定要用循环。不然,还可以做一个修正性函数,用来估计不同的初值所用的循环范围。
wanbaocheng 2002-07-19
  • 打赏
  • 举报
回复
请参考如下网页
http://www.csdn.net/expert/topic/877/877214.xml?temp=.9626734
  • 打赏
  • 举报
回复
一点和半径:圆心在这点的圆周上
二点和半径:一个一元二次方程,(无解,单解,双解)不要用计算机去解
把求解公式给计算机那不是快多了
三点 :自己求解,把公式给计算机
三点和半径:无解,(当条件相背时)
四点。。
五点。。

N点,如果有这么多点了,你就描点法得了

许野平 2002-07-18
  • 打赏
  • 举报
回复
lovetsinghua(瞌睡♂工作虫) ,"对于已知圆上的三点和半径,求它的圆心是很容易的。"
如果已知三个点,就不需要知道半径了兄弟!
lovegreen 2002-07-18
  • 打赏
  • 举报
回复
lovetinghua,
高!
lovetsinghua 2002-07-18
  • 打赏
  • 举报
回复
这个问题的数学模型很简单。对于已知圆上的三点和半径,求它的圆心是很容易的。但是,有一个问题,是在于计算机在建立了两条垂线后,对于交点的计算是费时的,一般来说,正确的处理是要根据线与线的相关性建立迭代方程,然后利用循环得解。
  仔细分析,这道题完全是计算机图形学应用(不是求交不能得解,而是得法效率太低)。假设知道了两个点了(解不唯一),和半径。
    (x0,y0)
(x1,y1)
radius=R

二维旋转的旋转矩阵为;
T1= |1 0 0| T2= |cosA sinA 0|
|0 1 0| |-sinA conA 0|
|-x0 -y0 1| |0 0 1|

T3= |cosB 0 0| T4= |1 0 0|
|0 sinB 0| |0 1 0|
|0 0 R/length| |x0 y0 1|
(length为x0,y0与x1,y1的距离)
T1是将坐标原点移到x0,y0处。
T2将x1,y1转到x0,y0与圆心的连线上。
T3将x1,y1放缩到圆心位置。
T4将坐标恢复。
变化后的x1,y1就是圆心。(A、B可利用余弦定理)
T= T1*T2*T3*T4
使一层9次循环可得解。加上A、B的求解,length的计算。程序步为12。不随初值变化而变化。
darkstar21cn 2002-07-18
  • 打赏
  • 举报
回复
靠回去读初中去!
lovegreen 2002-07-18
  • 打赏
  • 举报
回复
zzwu,

圆上一个点 + 半径,不能确定圆心坐标,因为会有两个圆心坐标。
三点确定一圆是正确的。
算法:
1 求出两点的中点,并求出过中点的垂线方程ax+by=c
2 求出另两点的中点,并求出过中点的垂线方程dx+ey=f
3 求两个垂线方程的交点,即得

hy_bug 2002-07-18
  • 打赏
  • 举报
回复
不需要知道半径,但必须知道三个点的坐标。
设三个点A,B,C
L1为AB的垂直平分线,
L2为BC的垂直平分线,
圆心O即为L1和L2的交点。
直线方程可用中点和K求,但必须考虑K=0或是不存在的情况。
zzwu 2002-07-18
  • 打赏
  • 举报
回复
只要知道:
圆上一个点 + 半径,

圆上三个点,
就可确定园的一切了,无需太多
ninny 2002-07-18
  • 打赏
  • 举报
回复
同上。
由于是一些点,所以也要考虑这些点每3个组合求出的圆心并不一定相同,所以应该想办法求出一个统计学模型,使得能够找到一个圆心使得其到每个点的距离和半径最为接近
qubo 2002-07-18
  • 打赏
  • 举报
回复
圆心(a,b),列出3个圆的方程(x1-a)*(x1-a)+(x2-b)*(x2-b)=r*r;
用两个方程式解出一对交点,将这两个结果分别带入第三个圆方程,哪个点能使方程成立就是哪个点!

你试试看,这都是我的一点想法,不一定正确!
qubo 2002-07-18
  • 打赏
  • 举报
回复
知道圆上三个点即可,先确定原点,然后算出穿过任意两点组成的直线(两条),列出方程式,求出每条直线的中垂线,在求交点,即为圆心。

33,006

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧