@allmaps/triangulate

中文文档
1.0.0-beta.34发布于 2026/09/22MITES Module近 30 天下载 8731

Allmaps 三边形库

中文使用文档
文档目录8 节
  1. 如何运作
  2. 安装
  3. 使用量
  4. 许可证
  5. API 密码
  6. 页:1
  7. 稳定
  8. 基准

@ allmaps/ 三角形

这个包提供了三角化多边形的方法:即返回一组分割多边形的三角形.

三角形符合某些条件: distance 提供了参数,三角形不超过 distance,一般不包含非常尖锐的角度或非常钝钝的角度.

此软件包用于内部 @ allmaps/ 放弃 将地理参考地图(使用GCP作为施泰纳点,使用可应用的面具作为施泰纳多边形)的全遮罩分解为一组三角形,可以使用WebGL来渲染.

如何运作

它使用现代 受限的 Delaunay 三相算法 多边形,使用 断层 财务报告和审定财务报表 约束者。 。 。 .

为了多了解一下它是如何运作的 看看这个 可观察笔记本。 。 。 .

简言之,三角形首先在多边形的边框内使用网格点来作成, 间距d distance 和由多边形边缘产生的分数(使用插值) distance),提供了施泰纳多边形的分和分. 从所有这些点来看,都进行了德劳奈三角测量。 这导致大多数网格细胞产生两个条件良好的三角. 后由相插多边形的边缘和相插斯泰纳多边形的边缘来制约三角.

安装

这是一个只在浏览器和Node.js中工作的无害环境管理模块.

用 pnpm 安装 :

pnpm install @allmaps/triangulate

使用量

这个软件包暴露出两个功能: triangulate() 简单地三角化多边形并返回三角形,以及 triangulateToUnique() 返回一组对象,这些对象使用它们之间独特的点和边来描述三角关系.

在最简单的情况下,可以使用如下:

import { triangulate } from '@allmaps/triangulate'

// Note that polygons are in double brackets (an array of an outer ring, and possibly inner rings if there are holes) and their rings are not round-trip (the first coordinate is not repeated at the and)
const polygon = [
  [
    [0.592, 0.953],
    [0.304, 2.394],
    [2.904, 2.201],
    [2.394, 0.232]
  ]
]

const distance = 1

// Compute constrained triangulation of `polygon` using a grid of size `distance`
const triangles = triangulate(polygon, distance)

// triangles = [
//   [
//     [ 1.304, 1.232 ],
//     [ 1.4655588463411926, 0.6034795070965593 ],
//     [ 0.592, 0.953 ]
//   ],
//   ...
// ]

两种功能都可以通过以下选项:

  • steinerPoints:施泰纳点. 这些成为了在构建三角形时考虑的第三组点.
  • steinerPolygons:斯坦纳多边形. 它们是多边形,它们的分点需要作为施泰纳分来添加,其边缘(用距离插入)也需要被限制.
  • minimumTriangleAngle: 由此产生的三角形最小角(以弧度计). 利用这个选项,可能由内部函数产生的sliver多边形可以被去除. 默认 : 0.01。 。 。 .
  • computeInsideSteinerPolygons:是否计算每个三角形,是否在施泰纳多边形内.

许可证

麻省理工学院

API 密码

页:1

稳定

  • Constrainautor不允许自相交集多边形,并将为此类输入引起出错.

基准

对于一个10分多边形(有直径~200),这里有一些以给定距离计算三角的基准:

  • triangulate(polygon, 1000) (无网点):74544个操作/s计算出8个三角形
  • triangulate(polygon, 100): 56849 计算出11个三角形
  • triangulate(polygon, 10): 2163 计算出435个三角形
  • triangulate(polygon, 1): 3个操作/s计算出38352个三角形

见 ./bench/index.js。 。 。 .

要运行基准,就运行 npm run bench。 。 。 .

版本与发布记录

@allmaps/triangulate 共发布 29 个版本,首次发布于 2023/08/22;过去 12 个月发布了 5 个版本。

版本发布日期距今
1.0.0-beta.34latest2026/09/221 个月前
1.0.0-beta.332026/05/295 个月前
1.0.0-beta.322026/02/108 个月前
1.0.0-beta.312025/11/2711 个月前
1.0.0-beta.302025/11/1111 个月前
1.0.0-beta.292025/07/201.3 年前

其他发布通道:beta → 1.0.0-beta.26。

关于 @allmaps/triangulate 的常见问题

@allmaps/triangulate 是什么?

Allmaps 三边形库

如何安装 @allmaps/triangulate?

在项目目录运行 npm install @allmaps/triangulate,或使用 pnpm add / yarn add / bun add。

@allmaps/triangulate 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/allmaps__triangulate 是否存在。

@allmaps/triangulate 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@allmaps/triangulate 可以商用吗?

@allmaps/triangulate 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@allmaps/triangulate 的下载量有多少?

根据 npm 官方下载统计,@allmaps/triangulate 在 2026/10/06 – 2026/11/04 这 30 天内被下载 8,731 次,日均约 291 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@allmaps/triangulate 还在维护吗?

最新版本 1.0.0-beta.34 发布于 2026/09/22(1 个月前);至今共发布 29 个版本,其中过去 12 个月发布了 5 个;首次发布于 2023/08/22。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。