2010-03-01 41 views
4

我一直在寻找,但找不到答案。 I 需要使用鼠标交互绘制可调整大小的多边形,但我不希望 末尾出现不规则,重叠或相交的多边形。绘图可调整大小(不相交)多边形

这里是绘制多边形可以调整大小 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那样看起来很花哨。我只需要 需要可调整大小的多边形,这些大小在调整大小时不会相交,或者 需要添加新的点。你可以给我任何建议如何实现 ?

提前致谢。

回答

1

根据您允许的点数,天真简单的O(N^2)线相交算法就足够了。从算法上讲,这不是最好的解决方案,但是对于初学者来说,它是计算几何中最容易获得的。请参阅Wikipedia article on line segment intersectionOne of its links对如何计算两条线段的交点有一个容易理解的解释。

祝你好运!

+0

谢谢,它帮助我明白,这个问题要复杂得多,比我想的。 – pars 2010-03-01 19:49:42

1

虽然这不是一个完整的答案,但请注意,您提供的示例似乎使用的是GMaps Utility Library中的Geometry Controls,这是一个托管在Google代码上的开源项目。您可以检查the full source code in the Google Code browser

Google's Geometry Controls http://img521.imageshack.us/img521/6787/poly.jpg

+0

谢谢丹尼尔,我已经通过了这个例子,但它并没有帮助我完全满足我需要的东西。 – pars 2010-03-01 19:47:47