加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

凹多边形分割成凸多边形

(2011-01-26 21:03:41)
标签:

it

分类: 工作/开发方面

来源于:计算机图形学的算法基础一书P172页

这种算法的分割结果不是最优的分割,即生成的凸多边形数目不是最少。

算法可表述为:

1、对多边形的一个顶点Vi,平移多边形使Vi位于坐标原点;

2、绕原点旋转多边形,使Vi+1落在X轴的正半轴上;

3、检查第i+2个顶点y坐标分量的符号。如果符号为正或零,那么多边形在该边处是凸的;反之,则是凹的。分割多边形。

4、分割多边形的时候,检查第i+2个顶点后面的各顶点的y坐标分量,直至发现一个顶点的y坐标分量大于或等于零。这个顶点在x轴的上方,或恰好落在x轴上,记为Vi+j。那么,分割下来的多边形为Vi+1Vi+2...Vi+jVi,剩下的多边形为ViVi+1Vi+j...Vi。

5、多分割的多边形再次使用该算法,直到它们都为凸多边形。

 

这个算法也可以以一边为参考,判断其他顶点在这一边的方向(左、右)来确定多边形的凹凸性;分割多边形时步骤

1、以多边形的一边AB为参考,判断其他点在AB的那一边,直到一点反向(比如这一点为点C),然后连接BC对多边形进行分割;

2、再根据此算法对分割出来的多边形继续进行分割。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有