回 帖 发 新 帖 刷新版面

主题:[讨论]如何将一个凸多边形分割成多个三角形?

如何将一个凸多边形分割成多个三角形?
程序的输入是多边形的顶点
程序输出分割后的三角形,三个顶点来描述三角形(只要找出一种分割方案即可)。

希望高手能给个算法或给个思想,不胜感激!

回复列表 (共2个回复)

沙发

假设一共有n个顶点。
先任取一个顶点,把其它n-1个顶点与它相连,得到n-1个向量。
计算这n-1个向量到x轴正方向的夹角(注意正负号),并根据夹角的大小进行排序。
设最初选取的点为v(0),排序后的点为v(1), v(2), v(3), ..., v(n-1)
则按照如下方法就可以快速的分割出所需要的三角形:
v(0), v(1), v(2)
v(0), v(2), v(3)
v(0), v(3), v(4)
...
v(0), v(n-2), v(n-1)

总共n-2个三角形。时间复杂度为O(n*log(n)),性能瓶颈在于排序。

板凳

你好.我是全职网赚工作者.
如果你有时间有电脑.
想在网络上创业.请联系我..
项目绝对真实.详情QQ空间资料
加盟请联系 QQ908889846

我来回复

您尚未登录,请登录后再回复。点此登录或注册