flatten-js:JavaScript 里做 2D 几何,一次 import 就够了

发布时间:2026/8/23 9:58:17
flatten-js:JavaScript 里做 2D 几何,一次 import 就够了 flatten-jsJavaScript 里做 2D 几何一次 import 就够了【免费下载链接】flatten-jsJavascript library for 2d geometry项目地址: https://gitcode.com/gh_mirrors/fla/flatten-jsflatten-js 是一个 JavaScript 2D 几何库覆盖点、向量、线、圆、多边形等基础图形提供求交、测距、多边形布尔运算等算法。写过 canvas 交互demo或小游戏的人都绕不开一个判断这次点击落点多边形里了吗手写叉积和射线法常常是几个共线点或退化顶点就让结果翻车要是想算两块区域的公共部分还得自己去找稳健算法。flatten-js 解决的就是这类问题——把常用 2D 几何操作封装成开箱即用的方法。点在多边形内吗两个图形相交吗库内置点、向量、直线、射线、线段、圆、弧、多边形八类图形另有矩形和多线段import 之后就能构造。图形之间什么关系——是否相交、谁包含谁、相距多远——都有对应方法pointInPolygon一行代码判定点在不在多边形内部intersection直接返回两图形的交点。所以写命中检测、拖拽反馈时你不用自己攒公式调用就行。两个多边形如何求交集、并集、差集需要把两个图形叠在一起算时就该上布尔运算了对多边形调用对应方法交集、并集、差集的形状直接返回。这类计算最容易踩退化场景的坑flatten-js 内部处理了共线等边界情况。所以地图区域合并、裁剪重叠部分、生成碰撞掩码这类需求你调一次方法就能拿到结果多边形。大量图形的空间查询与仿射变换单点判断解决后更麻烦的是成百上千个图形。PlanarSet 是库里的空间容器把形状放进去一次问出落在某个矩形范围内的所有图形场景剔除非常好用Matrix 负责平移、旋转、缩放变换每个图形还带svg()方法返回能直接塞进页面的 SVG 字符串和 d3.js 配合很顺。所以你可以先做空间查询圈出要画的形状再用 svg() 一次性渲染出来。import {point, polygon} from flatten-js/core; const p point(5, 5); const poly polygon([[0, 0], [10, 0], [10, 10]]); poly.pointInPolygon(p); // true新版本你多拿到了什么多边形构造时做了有效性检查面不自相交、不互相重叠传入坏多边形不再得到奇怪结果新增cut方法用一个多边形去切另一个多边形或多线段直接得到一组子多边形布尔运算性能调优过复杂多边形算得更快适合做 canvas 交互、小游戏、地图和 GIS 相关前端的同学。库以 CommonJS、UMD、ES 模块三种格式分发还带 TypeScript 定义文件 index.d.tsTS 项目能直接享受静态类型检查。建议先npm install --save flatten-js/core跑起来再翻仓库 examples/ 目录的示例代码和 docs/ 目录里的完整 API 文档想读源码可以从https://gitcode.com/gh_mirrors/fla/flatten-jsclone 下来。【免费下载链接】flatten-jsJavascript library for 2d geometry项目地址: https://gitcode.com/gh_mirrors/fla/flatten-js创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻