【发布时间】:2012-04-15 10:57:33
【问题描述】:
我正在开发一个 2D 游戏项目,我希望用户在其中绘制 2D 多边形(封闭路径),例如:
可能的解决方案:
1 - 按点绘制并计算边界线。
1 问题 - 边界线的计算。
2 - 从椭圆开始,让用户通过移动顶点来重塑它。
2 问题 - 当椭圆扩大时,它会在您无法重塑的顶点之间产生间隙。
3 - 添加和移动顶点
3 问题 - 剪耳三角测量卡在某个点(第 53 行 while 循环 @ http://pastebin.com/Ug337mH2,进入无限循环)
**经过一番思考,我决定更好地解决无限循环(在方法 3 中)问题,而不是放弃添加和移动顶点方法。是什么导致while 循环在第 53 行出现无限循环(请参阅http://pastebin.com/Ug337mH2)?
我的猜测:剪耳三角测量无法将某个顶点附加到任何三角形并不断重试。**
如何在我的游戏中轻松实现多边形绘制?
【问题讨论】:
-
用户绘制多边形的方式会受到限制吗?我的意思是会阻止他们创建与现有线相交的新线吗?
-
实际上线相交是可以的……无论如何,它们将被分组为单独的三角形。所以我认为即使它们相交也会起作用。
-
解决方案 3 运行良好,除了无限循环问题 :/ 。我对无限循环 pastebin.com/nw4ZAM7d 做了一个“假”修复,它忽略了导致无限循环的顶点。
-
这是我在方法 3 中的成就 - fbcdn-sphotos-a.akamaihd.net/hphotos-ak-prn1/p480x480/…
-
我唯一的问题是如何将“随机”线集细分为凹多边形本质上是不明确的,所以我假设您会阻止线相交。