问题标签 [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.
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 实现?
google-maps - 谷歌地图 - 缓慢加载多边形
我有一个包含 127 个简单多边形的 KML。
如果我通过 GGeoXml 将它们全部加载,那么它的速度很快,当您放大/缩小时,它会立即重绘所有多边形(几乎)。
当我使用 EGeoXml 或 CsGeoXml 类时,放大/缩小会变慢(大约 4-6 秒),因为它一次重绘多边形 20-30 个左右。
我需要将自定义信息窗口放在每个标记上,因此 GGeoXML 并没有真正为我剪裁它。
GGeoXML 是否以与上述类不同的方式加载多边形?或者 EGeoXml/CsGeoXml 是否加载/附加 GGeoXml 没有的东西,导致它们运行得更慢?
我还尝试从 KML 文件中获取形状,将它们放入 JSON 文件并解析 - 同样的问题。
有什么想法/建议吗?
path - 将标签放在 SVG 路径的“中心”
我正在尝试在 svg 文件的多边形上绘制标签。我面临的问题是大致找出这个多边形的中心来放置标签,因为路径的坐标是 svg 格式并且需要解析。有没有更简单的方法来确定 svg 多边形的中心(也许有人可以指出一个 javascript 库或片段)?我正在使用 Raphael javascript 库来操作 svg,但它似乎并没有超出标准的 svg 功能。
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
足以说明所有角落还是会排除真实角落的“角落” ?
geometry - 删除多边形中的孔
我有一个由点数组确定的多边形。
这个多边形正在交叉自己,在多边形本身上形成一些洞。
我的问题是:我怎样才能省略这个洞而只得到多边形的外点?
或者什么是相同的并且可能更容易:我应该使用哪种算法来检查一个点是否在多边形内,以将多边形孔中的点检测为内点?
提前致谢,
/罗杰
iphone - iPhone 有什么免费的多边形库吗?
我需要一个可以管理多边形建模和基本转换(如旋转和平移)的库。我宁愿不从头开始重新开发一切谢谢
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
。
c - 用C画一个多边形
我需要在给定 2 个点(他的顶点的中心和 1 个顶点)的情况下绘制一个“n”边的多边形,只是我在数学上很烂。我读了很多书,所有这些都是我能够理解的(我不知道它是否正确):
好的,我用毕达哥拉斯定理取两点(半径)之间的距离:
以及这2点与atan2之间的角度,如下所示:
其中 xc, yc 是中心点,x, y 是唯一知道的顶点。
有了这些数据,我会:
问题是程序不能正常工作,因为它绘制的线条不像多边形。
有人怎么知道足够的数学来帮忙?我正在使用 C 和 turbo C 在这个图形基元中工作。
编辑:我不想填充多边形,只需绘制它。
algorithm - 在一个区域中拟合二维多边形的算法?
有这方面的标准吗?算法名称?
说:我有 10 个不同大小的多边形。我有一个特定大小的区域。
我想知道如何填充该区域中最多的多边形,以及它们是如何安装的。
注意:多边形可能会根据限制设置旋转。
mysql - 如何绘制 mysql 多边形圆,而不是正方形?
下面的函数用 4 个点创建一个多边形正方形,我假设最后 5 个点闭合了正方形,我需要它至少有 24 个点并组成一个圆。有任何想法吗?
在 js 版本之下,这很完美