我一直在寻找,但我找不到答案。一世 需要绘制可调整大小的多边形与鼠标交互,但我 不希望不规则,重叠或交叉的多边形 端。
这是绘制可调整大小多边形的简单示例 http://www.wolfpil.de/polygon.html
您可以轻松创建&调整多边形,这很棒。但我需要一个 检测交叉点的额外功能,不允许奇怪 看形状/多边形。 您可以在此视频中看到问题: http://www.youtube.com/watch?v=zou2jcGM8zw
我在http://www.wikimapia.org找到的唯一解决方案。他们增加了处理问题的功能。 您可以在此视频中看到它:http://www.youtube.com/watch?v=K7-K0k2D-2A
我花了3天时间尝试实现这样的目标。我走了 通过wikimapia的javascript代码,但这对我来说太复杂了 了解。
总而言之,它不必像wikimapia那样看起来像花哨。我只是 需要可调整大小的多边形,在调整大小时不相交 为它添加新点。你能给我任何建议吗? 实现那个?
提前感谢。
答案 0 :(得分:1)
根据您允许的点数,一个简单的,简单的O(N^2)
线交叉算法就足够了。从算法上讲,这不是最好的解决方案,但是对于初学者来说,这是计算几何中最容易获得的解决方案。
首先,请参阅Wikipedia article on line segment intersection。关于如何计算两个线段的交点,One of its links有一个易于理解的解释。
祝你好运!答案 1 :(得分:1)
虽然这不是一个完整的答案,但请注意,您提供的示例似乎正在使用Geometry Controls中的GMaps Utility Library,这是一个托管在Google代码上的开源项目。
您可以查看the full source code in the Google Code browser。
Google's Geometry Controls http://img521.imageshack.us/img521/6787/poly.jpg