@foblex/2d

中文文档
1.2.2发布于 2025/03/09MITTypeScriptESM + CJS近 30 天下载 35.5万

用于2D几何计算的角库,为操纵点,行,向量,矩,弧,变等提供类和公用功能.

中文使用文档
文档目录10 节
  1. 概览
  2. 安装
  3. 使用量
  4. 与点合作
  5. 随行工作
  6. 矢量操作
  7. 与矩形合作
  8. 处理转换
  9. 查找接口
  10. 许可证

闪光灯2D

用于2D几何计算的角库,为操纵点,行,向量,矩,弧,变等提供类和公用功能. 用于 Foblex 流动 2D 几何操作.

概览

Foblex2D库旨在简化TypeScript和Angular应用中的2D几何操作. 它为下列人员提供了丰富的班级和公用事业功能:

  • 几何基数:点,行,矢,矩,弧,和圆形矩.
  • 几何计算:距离,角度,相交探测,和变相.
  • 转换:处理位置,缩放,和旋转转换.
  • 交叉检测: 寻找线段与各种形状之间的相交点,包括圆形矩形和弧形.

Foblex2D提供所需的工具.

安装

通过 npm 安装库 :

  npm install @foblex/2D

使用量

与点合作

创建和操纵点 :

import { Point, PointExtensions } from '@foblex/2D';

// Using the Point class
const pointA = new Point(10, 20);
const pointB = new Point(30, 40);

// Using PointExtensions for utility functions
const sumPoint = pointA.add(pointB);
const distance = PointExtensions.distance(pointA, pointB);

console.log(`Sum Point: (${sumPoint.x}, ${sumPoint.y})`);
console.log(`Distance between points: ${distance}`);

随行工作

创建和操纵行 :

import { Line, LineExtensions } from '@foblex/2D';

const point1 = new Point(0, 0);
const point2 = new Point(10, 10);

const line = new Line(point1, point2);

// Calculate the length of the line
const length = LineExtensions.hypotenuse(line);

console.log(`Line length: ${length}`);

矢量操作

执行向量计算 :

import { VectorExtensions } from '@foblex/2D';

const vector1 = VectorExtensions.initialize(1, 0);
const vector2 = VectorExtensions.initialize(0, 1);

// Calculate the angle between two vectors
const angleRadians = VectorExtensions.angle(vector1, vector2);
const angleDegrees = (angleRadians * 180) / Math.PI;

console.log(`Angle between vectors: ${angleDegrees} degrees`);

与矩形合作

创建和操纵矩形 :

import { RectExtensions, IRect, Point } from '@foblex/2D';

// Initialize a rectangle
const rect = RectExtensions.initialize(0, 0, 100, 50);

// Check if a point is inside the rectangle
const point = new Point(50, 25);
const isInside = RectExtensions.isIncludePoint(rect, point);

console.log(`Point is inside rectangle: ${isInside}`);

处理转换

与转变有关的工作:

import { ITransformModel, TransformModelExtensions } from '@foblex/2D';

const transform = TransformModelExtensions.default();
transform.position = { x: 100, y: 50 };
transform.scale = 2;

// Get the transformation matrix string
const transformString = TransformModelExtensions.toString(transform);

console.log(`Transform Matrix: ${transformString}`);

查找接口

检测行和形状之间的相交点 :

import { IntersectionFinder, RoundedRect, Point } from '@foblex/2D';

const fromPoint = new Point(0, 0);
const toPoint = new Point(150, 150);

const roundedRect = new RoundedRect(50, 50, 100, 100, 20, 20, 20, 20);

const intersections = IntersectionFinder.getIntersections(fromPoint, toPoint, roundedRect);

if (intersections.length > 0) {
  intersections.forEach((point, index) => {
    console.log(`Intersection ${index + 1}: (${point.x}, ${point.y})`);
  });
} else {
  console.log('No intersections found.');
}

许可证

这个项目根据麻省理工学院的许可证获得许可.

通过将Foblex2D集成到您的Angular项目中,可以简化复杂的2D几何计算,增强性能,并专注于构建功能丰富的应用.

版本与发布记录

@foblex/2d 共发布 13 个版本,首次发布于 2024/09/14;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.2.2latest2025/03/091.7 年前
1.2.12025/03/021.7 年前
1.2.02025/03/021.7 年前
1.1.92025/01/311.8 年前
1.1.82025/01/191.8 年前
1.1.72025/01/171.8 年前

关于 @foblex/2d 的常见问题

@foblex/2d 是什么?

用于2D几何计算的角库,为操纵点,行,向量,矩,弧,变等提供类和公用功能.

如何安装 @foblex/2d?

在项目目录运行 npm install @foblex/2d,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@angular/common(>=12.0.0)、@angular/core(>=12.0.0)、rxjs(>=6.6.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@foblex/2d 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@foblex/2d 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@foblex/2d 可以商用吗?

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

@foblex/2d 的下载量有多少?

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

@foblex/2d 还在维护吗?

最新版本 1.2.2 发布于 2025/03/09(1.7 年前);至今共发布 13 个版本,其中过去 12 个月发布了 0 个;首次发布于 2024/09/14。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。