concaveman
用JavaScript实现的高速二维凹包算法,可为点集生成大致轮廓。适用于凸包会包含过多空白区域的情况。
分享到 X许可证: ISC
概述
concaveman 是二维凹包算法的 JavaScript 实现。传入一组点,它会返回勾勒这组点整体形状的多边形,适合凸包会包含过多空白区域的场景。只需把点数组交给一个函数即可,还可以调节轮廓的精细程度。算法基于一篇公开论文,并用快速的最近点搜索提升速度。项目另有 C++ 移植版,方便其他语言调用。
主要特点
- 一次调用即可由 [x, y] 点集得到轮廓多边形
- concavity 参数控制细节,设为 Infinity 得到凸包
- lengthThreshold 参数可简化轮廓形状
- 基于 rbush、tinyqueue 和 robust-predicates
适用场景
适合需要为散落的二维点(如地图上的点)生成紧贴轮廓的人。concavity 低于 1 时可能得到奇怪的形状。
- 上游仓库
- mapbox/concaveman
- GitHub 上的 fork
- Guo-astro/concaveman
- 上游 Star 数
- 724
- 分类
- 地图与地理空间
- 编程语言
- JavaScript
- 许可证
- ISC
- Fork 时间
- 2020-11-01
- 同步状态
- 已同步上次同步 2026-09-29