UNPKG

unit-path

Version:

Get points from paths that like straight lines, quadratic Bessel curves, cubic Bessel curves, circles, arcs

144 lines (115 loc) 2.94 kB
# 获取一些路径上的点 <p> <a href="https://codecov.io/gh/humandetail/unit-path" > <img src="https://codecov.io/gh/humandetail/unit-path/branch/main/graph/badge.svg?token=5X0OFEAMK3"/> </a> <a href="https://www.npmjs.com/package/unit-path"> <img src="https://img.shields.io/npm/v/unit-path.svg" /> </a> <a href="https://github.com/humandetail/unit-path"> <img src="https://img.shields.io/github/license/humandetail/unit-path.svg" /> </a> <a href="https://github.com/humandetail/unit-path"> <img src="https://img.shields.io/github/issues/humandetail/unit-path.svg" /> </a> <a href="https://github.com/humandetail/unit-path"> <img src="https://img.shields.io/github/forks/humandetail/unit-path.svg" /> </a> <a href="https://github.com/humandetail/unit-path"> <img src="https://img.shields.io/github/stars/humandetail/unit-path.svg" /> </a> </p> 获取直线、二阶贝塞尔曲线、三阶贝塞尔曲线、圆、圆弧组成的点 ## 安装 - npm ```bash npm i -S unit-path ``` - yarn ```bash yarn add -S unit-path ``` - pnpm ```bash pnpm add -S unit-path ``` ## 使用 ```javascript import UnitPath from 'unit-path'; const unitPath = new UnitPath(); // 设置路径 const path = unitPath.setPath('LINE', { x: 50, y: 50 }, { x: 100, y: 100 }); // 获取指定位置上的点 const point = path.getPoint(.5); // 获取路径上平均分布的点 const points = path.getPoints(50); ``` ## 参数说明 `new UnitPath(options: UnitPathOptions)`: ```typescript type UnitPathOptions = { // 保留几位小数,不设置则全保留 decimalPlaces?: number // `getPoints()` 默认获取点的数量 defaultQuantity?: number } ``` ### `setPath()` - 直线 ```typescript setPath( type: 'LINE', // 起点坐标 startPoint: Point, // 终点坐标 endPoint: Point ) ``` - 二次贝塞尔曲线 ```typescript setPath( type: 'TWO_ORDER_BEZIER', // 起点坐标 startPoint: Point, // 控制点坐标 controlPoint: Point, // 终点坐标 endPoint: Point ) ``` - 三次贝塞尔曲线 ```typescript setPath( type: 'THREE_ORDER_BEZIER', // 起点坐标 startPoint: Point, // 控制点 1 的坐标 controlPoint1: Point, // 控制点 2 的坐标 controlPoint2: Point, // 终点坐标 endPoint: Point ) ``` - 圆 / 圆弧 ```typescript setPath( type: 'ARC', // 圆心坐标 x x: number, // 圆心坐标 y y: number, // 圆弧半径 r: number, // 起始角弧度 startAngle: number, // 结束角弧度 endAngle: number, // 是否为逆时针方向 anticlockwise?: boolean ) ``` ### `getPoint(t)` `t` 表示点位于路径的位置,它的取值范围为 [0,1],默认值为 0### `getPoints(quantity)` `quantity` 表示获取该路径上点的数量,取值范围为[0,∞]。