闪光灯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几何计算,增强性能,并专注于构建功能丰富的应用.