- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在为 Waze 开发开源 JavaScript 插件——著名的免费 GPS 导航器——专门用于 online editor .这个用户脚本的想法是可以快速选择大的统一颜色的 map 区域以将它们转换为地标。
到目前为止我已经 successfully implemented您在 Photoshop 等图形编辑器中称为“魔术棒”的工具:用户单击 map 上的某处(例如,在湖泊或森林上),脚本选择由相同颜色覆盖的整个区域并为地标创建多边形。
一切都很好,除了我使用凸包算法来获得...好吧...凸包 :) 即:连接找到的点云的最外点的多边形。
但众所周知,只有少数地标具有凸形,而现实世界中的大多数物体都是具有凹形区域的折线形。在上图中,您可以看到该区域几乎没有锋利的边缘,右下角的农田被凸包覆盖——这是错误的。
我在谷歌上搜索了合适的算法并翻阅了数学论文,但仍然找不到合适的算法。 The most popular question关于 Stackoverflow 上的凹包是指 Alpha 形状和 Delaunay 三 Angular 形。虽然我不明白如何使用它以防万一:所有点都相互连接形成一条连续的多段线,因此我似乎找不到合适的 alpha 半径,因为半径等于 1 像素的偶数圆被 alpha 暴露。
任何关于如何实现构建凹壳目标的想法都将不胜感激!可能是我走错了方向,需要查看位图矢量化算法?
最佳答案
Alpha 形状是通过找到一组点的 delaunay 三 Angular 剖分然后删除超过 alpha 的边来定义的。您需要 delaunay 三 Angular 剖分但不需要圆圈。它也适用于线条。要使用 JS 计算形状,您可以使用 TopoJSON 或尝试这个答案:Calculate bounding polygon of alpha shape from the Delaunay triangulation .你也可以试试我的php包http://concavehull.codeplex.com/ .
关于javascript - 在 map 图像上检测到 "concave hull",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23467951/
当我尝试在 OpenGL 中使用 GL_POLYGON 时遇到问题。我不知道如何解释这一点,但我所有的顶点都与开始的顶点相连。当我尝试为对象着色时会出现问题。我想画一个简单的物体。 void TOP
我有一组点,我试图从它们的角度按 ccw 顺序或 cw 顺序排序。我希望对这些点进行排序,使它们可以形成一个多边形,其区域或交叉点没有分割。这很难,因为在大多数情况下,它会是一个凹多边形。 point
我该怎么办识别和删除 图像中绘制的那四个红点 这四个点使该多边形成为凹多边形,这就是我想删除它的原因。 我的目标是通过识别和删除这些点来删除这种点,从而将凹多边形转换为凸多边形。 有没有办法识别和删除
我正在尝试使用子弹物理 SDK 创建一个凹形移动形状,但找不到如何做。 您对如何实现这一目标有任何想法吗? 最佳答案 我建议查看 Bullet SDK 示例中的“MovingConcaveDemo”。
我正在为 Waze 开发开源 JavaScript 插件——著名的免费 GPS 导航器——专门用于 online editor .这个用户脚本的想法是可以快速选择大的统一颜色的 map 区域以将它
我正在编写一个相当简单的自上而下的 2D 游戏。它对所有碰撞数据使用均匀间隔的 2D 瓷砖网格。网格中的每个图块要么是实心的,要么是空的。 对于路径查找,我使用 A*(A 星),并尝试了曼哈顿和对角线
我目前正在使用 CGAL 执行一些 2D 三角测量任务,并且我也已经准备好了一些简单的工作。无论如何,我真的不知道如何对凹形进行三角剖分,因为现在我总是得到所有点的凸包。基本上我想在 mouseCli
这个学期,我在学校上了计算机图形学类(class),我们的第一个作业是创建凹凸错觉。 这是我应该创建的示例: Concave/Convex Circle Illusion 我试图自己解决这个问题,但我
我是一名优秀的程序员,十分优秀!