我到处找都找不到答案。我需要使用鼠标交互来绘制可调整大小的多边形,但我不想要不规则的、重叠的或相交的多边形。
以下是绘制可调整大小的多边形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的那样花哨,我只需要在调整大小或添加新点时不相交的可调整大小的多边形。你能给我一些如何做到这一点的建议吗?
提前感谢。
发布于 2010-03-01 09:41:28
根据您允许的点数,一个简单的O(N^2)直线相交算法就足够了。从算法上讲,这不是最好的解决方案,但对于计算几何的初学者来说,这是最容易理解的。
对于初学者,请参阅Wikipedia article on line segment intersection。One of its links对如何计算两条直线段的交点有一个易于理解的解释。
祝好运!
发布于 2010-03-01 17:38:04
虽然这不是一个完整的答案,但请注意,您提供的示例似乎使用了来自GMaps Utility Library的Geometry Controls,这是一个托管在Google Code上的开放源码项目。
你可以查看the full source code in the Google Code browser。

https://stackoverflow.com/questions/2353409
复制相似问题