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