如何得出一组点的外围边界(急!!!)(100分)

  • 主题发起人 主题发起人 redcony
  • 开始时间 开始时间
R

redcony

Unregistered / Unconfirmed
GUEST, unregistred user!
有随机的一组点座标,要求沿着这组点的外轮廓画出一个封闭的多边形,除去在此多边形的
边界上的点外,所有的点都在多边形内。
 
大家思考一下:
我有一想法,不知是否可行,
1. 先找出最右(或左,下,上)的点(x0,y0),再用极坐标的方法,
测式此点与各点的联机,其中角度变化最小的点(x1,y1),两点联机之
2. 再以该点为(x1,y1)为起点, 测式此点与各点(x0,y0除外)的联机,其中角度变化最
小的点(x2,y2),两点联机之
3. 以此类推,,每次减一个点,然后全部联机
注: 我没有实作,只是提供想法,你可以试试!!!
 
在Mfc中有类可以直接使用建议用C++ Build试试
 
to ht99;
mfc中是什么类
 
没人会吗?
 
看来只好由我来解决了!
to redcony :
其实象你的这类关于图形的问题,有一个特别的概念你需要掌握好,即“斜率”。
K=(Y2-Y1)/(X2-X1)
首先你要判断出Y坐标最大的点,如果不止一个,再在这些Y坐标最大的点中求出X坐标
最大的点,总之就是求出一个角点来作为基点!
然后,你判断其他所有点与基点的连线斜率,如果所有的斜率都大于0,则与基点连线斜率最大和
最小的2点应该与基点相连;如果斜率都小于0,同理;如果斜率有的大于0,有的小于0,
则大于0中斜率最小的点和小于0中斜率最大的点应该与基点相连。
如此,得到边界上的3点,然后以基点两侧的2个点为基点,再进行判断,最终就会得到
边界!
 
接受答案了.
 
后退
顶部