根据三点坐标可以求圆,,但是超过三点改怎么求?急用。。帮忙看看(100分)

  • 主题发起人 主题发起人 lxcy
  • 开始时间 开始时间
L

lxcy

Unregistered / Unconfirmed
GUEST, unregistred user!
有四个坐标
1 x=156.4300 y=106.8410
2 x=156.9200 y=106.3660
3 x=156.4300 y=106.8380
4 x=155.9170 y=106.3680
根据这四个坐标求圆的半径和圆心。听说好像要用拟合的方法,可是我查了好久查不到相关资料。
 
1和2相连,画中垂线,3和4相连,画中垂线,假设两条中垂线交点为5,如果1-5线段和3-5线段等长,那么5就是圆心。如果不等,就继续1-3,2-4,用同样的方法试。但是4个点不一定能确定一个圆。
 
首先假定这个圆已经存在,则落在这个圆上的点至少有两个(否则我可以先移动圆心,再收缩圆)。
(1)首先假设只有两个点落在圆上,那么这两个点必须是圆形的直径(否则我可以移动圆心,收缩圆),所以首先计算所有的点距离最长的两个点,以它们为直径画一个圆,如果所有的点落在这个圆形内,则这个圆形就是所求的圆。
(2)接上面的思路,如果画出上述的圆后,有点在这个圆形外面,则证明所求的圆形至少有三个点落在圆上,那么问题就简化成在一堆点中任意取三个点,画外接圆,所有圆中外接圆直径最大的就是所求的圆。
 
楼主,我对这方面不是特别懂,别笑话我:
既然“三点坐标可以求圆”,四个点任取三个不就结了?难道里面还有不在圆上的点(或者点重合)需要你判断??
反过来说,如果允许有点不在圆上,是允许一个、两个、三个还是四个?
我越来越糊涂了~~
 
根据三点坐标可以求圆,,但是超过三点改怎么求?急用。。

1。首先超过三点,不一定可以成圆。
2. 如果确认可以成圆,那就从中取三点即可。
 
比较啊。取最外的三个点。
 
取任意三个点就ok了
干吗非要用四个点啊,这不是脱了裤子放屁吗
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
740
import
I
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部