相关疑难解决方法(0)

按顺序排序四点

阵列中的四个2D点.我需要按顺时针顺序对它们进行排序.我认为只需一次交换操作即可完成,但我无法正式解决这个问题.

编辑:在我的情况下,四个点是凸多边形.

编辑:四个点是凸多边形的顶点.他们不需要整理好.

sorting algorithm graphics geometry

29
推荐指数
3
解决办法
2万
查看次数

如何对Google地图多边形中的点进行排序,以便线条不会交叉?

我正在尝试制作一个地图,用户可以在其中勾勒出他们想要的任何形状.但我遇到的问题是,用户可以选择使多边形线交叉的点,并排除我想要包含的区域.

要查看我在说什么,请转到此页面并执行以下步骤:

  1. 点击4个点来制作一个方框的4个角
  2. 在您刚制作的4个点中的每个点之间单击以进一步定义框的周边
  3. 点击完成

你应该看到这样的东西:

替代文字http://polygon.abemiester.com/1.bmp

有没有一种简单的方法来解决这个问题,或者我基本上处理的是"旅行推销员"类型的情况?所有的逻辑都是用javascript完成的,所以如果你想看看我是怎么做的,请随意"查看源代码".

sorting google-maps polygon convex-hull

5
推荐指数
1
解决办法
4228
查看次数

添加一个点以展开多边形而不将其附加到Google地图中?

我正在谷歌地图中通过可以拖动来重塑它的标记来构建多边形.因此,当有3个标记时,绘制多边形,并在形状中附加其他标记,将其展开.当用户只想遵循一个简单的顺时针/逆时针模式时,这很好,但是当他想要通过其中一个边缘扩展多边形时,它会附加标记,扭曲自身.

正常追加标记

在这个例子中,如果我们添加标记1,2和3,它将绘制一个简单的三角形.但是如果添加了标记4,则多边形只会自行扭曲.

相反,我希望当添加4时,它会插入标记1和2之间,如下图所示:

想要附加标记

基本上,在多边形的顶点数组中,而不是:

[
    //marker 1 position,
    //marker 2 position,
    //marker 3 position,
    //current marker 4 position
]
Run Code Online (Sandbox Code Playgroud)

我希望有:

[
    //marker 1 position,
    //desired marker 4 position
    //marker 2 position,
    //marker 3 position
]
Run Code Online (Sandbox Code Playgroud)

因此多边形将扩展而不是扭曲本身.

有没有办法实现这个目标?或者我只需要告诉用户构建他的多边形时钟/逆时针?

javascript google-maps polygon edge google-maps-api-3

5
推荐指数
2
解决办法
1521
查看次数