问题标签 [polygon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1188 浏览

java - 多边形相交失败,碰撞“大小”太大

好的,所以我正在尝试制作一个简单的小行星克隆。一切正常,除了碰撞检测。

我有两个不同的版本,第一个使用 java.awt.geom.Area:

这就像一个魅力......如果你不关心只有 120 颗小行星的 40% CPU :(

所以我在网上搜索了著名的分离轴定理,因为我的数学不太好,所以我从这里获取了实现并将其转换为适合我的 Java 需求:

它工作......有点。实际上,使用这个代码时,小行星的“碰撞壳”似乎太大了,就像小行星的 1.2 倍一样大。我不知道为什么。

这里有两张图片进行比较:
http://www.spielecast.de/stuff/asteroids1.png
http://www.spielecast.de/stuff/asteroids2.png

正如您所希望看到的,图片 1 中的小行星比使用 SAT 代码的图片 2 中的小行星密集得多。

那么有什么想法吗?或者有谁知道我可以使用的具有交叉测试的 Java Polygon 实现?

0 投票
1 回答
1246 浏览

google-maps - 谷歌地图 - 缓慢加载多边形

我有一个包含 127 个简单多边形的 KML。

如果我通过 GGeoXml 将它们全部加载,那么它的速度很快,当您放大/缩小时,它会立即重绘所有多边形(几乎)。

当我使用 EGeoXml 或 CsGeoXml 类时,放大/缩小会变慢(大约 4-6 秒),因为它一次重绘多边形 20-30 个左右。

我需要将自定义信息窗口放在每个标记上,因此 GGeoXML 并没有真正为我剪裁它。

GGeoXML 是否以与上述类不同的方式加载多边形?或者 EGeoXml/CsGeoXml 是否加载/附加 GGeoXml 没有的东西,导致它们运行得更慢?

我还尝试从 KML 文件中获取形状,将它们放入 JSON 文件并解析 - 同样的问题。

有什么想法/建议吗?

0 投票
3 回答
15347 浏览

path - 将标签放在 SVG 路径的“中心”

我正在尝试在 svg 文件的多边形上绘制标签。我面临的问题是大致找出这个多边形的中心来放置标签,因为路径的坐标是 svg 格式并且需要解析。有没有更简单的方法来确定 svg 多边形的中心(也许有人可以指出一个 javascript 库或片段)?我正在使用 Raphael javascript 库来操作 svg,但它似乎并没有超出标准的 svg 功能。

0 投票
5 回答
18016 浏览

matlab - 查找由区域掩码表示的多边形的角

BW = poly2mask(x, y, m, n)从由向量 x 和 y 表示的 ROI 多边形计算二进制感兴趣区域 (ROI) 掩码 BW。BW 的大小是 m×n。

poly2mask将 BW 中位于多边形 (X,Y) 内的像素设置为 1,将多边形外的像素设置为 0。

问题: 给定这样一个凸四边形的二进制掩码BW,确定四个角的最有效方法是什么?

例如,

例子

迄今为止最好的解决方案: 使用edge找到边界线,霍夫变换在边缘图像中找到 4 条线,然后找到这 4 条线的交点,或者在边缘图像上使用角检测器。看起来很复杂,我不禁觉得那里有一个更简单的解决方案。

顺便说一句,convhull并不总是返回 4 个点(也许有人可以建议qhull防止这种情况的选项):它也沿边缘返回几个点。

编辑: Amro 的回答似乎非常优雅和高效。但是每个真正的角落可能有多个“角落”,因为峰不是唯一的。我可以基于θ对它们进行聚类并平均一个真实角落周围的“角落”,但主要问题是使用order(1:10).

10足以说明所有角落还是会排除真实角落的“角落” ?

0 投票
2 回答
2310 浏览

geometry - 删除多边形中的孔

我有一个由点数组确定的多边形。

这个多边形正在交叉自己,在多边形本身上形成一些洞。

我的问题是:我怎样才能省略这个洞而只得到多边形的外点?

或者什么是相同的并且可能更容易:我应该使用哪种算法来检查一个点是否在多边形内,以将多边形孔中的点检测为内点?

提前致谢,

/罗杰

0 投票
2 回答
264 浏览

iphone - iPhone 有什么免费的多边形库吗?

我需要一个可以管理多边形建模和基本转换(如旋转和平移)的库。我宁愿不从头开始重新开发一切谢谢

0 投票
4 回答
5440 浏览

algorithm - 从切割多边形(2D)生成新多边形

我被这个小问题困住了,我解决这个问题的算法并不适用于所有情况。有人知道如何解决这个问题吗?

这是一个示例多边形:

例如 http://img148.imageshack.us/img148/8804/poly.png

正式说明

我们有一个以 CW 顺序定义多边形的点列表。我们也可以用 查询一个点是否是一个切割点is_cut(p),给定点在哪里p。现在我们要计算由这个“切割”引起的新多边形。

该算法应该这样做:

输入:{a, c1, b, c4, c, c5, d, c6, e, c3, f, c2}

输出:{a, c1, c2}, {b, c4, c3, f, c2, c1}, {d, c6, c5},{e, c3, c4, c, c5, c6}

这是我当前的算法:

c如果您从或开始,则此算法不成立f

0 投票
6 回答
15988 浏览

c - 用C画一个多边形

我需要在给定 2 个点(他的顶点的中心和 1 个顶点)的情况下绘制一个“n”边的多边形,只是我在数学上很烂。我读了很多书,所有这些都是我能够理解的(我不知道它是否正确):

好的,我用毕达哥拉斯定理取两点(半径)之间的距离:

以及这2点与atan2之间的角度,如下所示:

其中 xc, yc 是中心点,x, y 是唯一知道的顶点。

有了这些数据,我会:

问题是程序不能正常工作,因为它绘制的线条不像多边形。

有人怎么知道足够的数学来帮忙?我正在使用 C 和 turbo C 在这个图形基元中工作。


编辑:我不想填充多边形,只需绘制它。

0 投票
3 回答
2223 浏览

algorithm - 在一个区域中拟合二维多边形的算法?

有这方面的标准吗?算法名称?

说:我有 10 个不同大小的多边形。我有一个特定大小的区域。

我想知道如何填充该区域中最多的多边形,以及它们是如何安装的。

注意:多边形可能会根据限制设置旋转。

0 投票
1 回答
3229 浏览

mysql - 如何绘制 mysql 多边形圆,而不是正方形?

下面的函数用 4 个点创建一个多边形正方形,我假设最后 5 个点闭合了正方形,我需要它至少有 24 个点并组成一个圆。有任何想法吗?

在 js 版本之下,这很完美