# @foblex/2d 中文文档

规范地址：https://npmcn.com/package/%40foblex/2d/

版本：1\.2\.2
npm 元数据更新时间：2025-03-08T22:53:00.400Z
中文译文更新时间：2026-11-15T03:43:38.783Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40foblex/2d
原文对照：https://npmcn.com/package/%40foblex/2d/?lang=original
项目主页：https://flow.foblex.com/
源码仓库：https://github.com/siarheihuzarevich/foblex2D

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：381 kB，83 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：1 个
- peer 依赖：@angular/common \>=12\.0\.0，@angular/core \>=12\.0\.0，rxjs \>=6\.6\.0
- 首次发布：2024-09-13T22:28:28.402Z
- 最新版本发布：2025-03-08T22:53:00.202Z
- 近 30 天下载量：355308（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：13（近 12 个月 0 个）

## 中文简介

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

## 安装

```sh
npm install @foblex/2d
```

也可以使用：`pnpm add @foblex/2d`、`yarn add @foblex/2d`、`bun add @foblex/2d`

## README

# 闪光灯2D

用于2D几何计算的角库,为操纵点,行,向量,矩,弧,变等提供类和公用功能. 用于 [Foblex 流动](https://flow.foblex.com/) 2D 几何操作.

## 概览

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

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

Foblex2D提供所需的工具.

## 安装

通过 npm 安装库 :

```bash
  npm install @foblex/2D
```

## 使用量

### 与点合作

创建和操纵点 :

```typescript
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}`);
```

### 随行工作

创建和操纵行 :

```typescript
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}`);
```

### 矢量操作

执行向量计算 :

```typescript
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`);
```

### 与矩形合作

创建和操纵矩形 :

```typescript
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}`);
```

### 处理转换

与转变有关的工作:

```typescript
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}`);
```

### 查找接口

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

```typescript
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 是什么？

用于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 和提交记录判断。

