UNPKG

fabric-texture

Version:

This JavaScript library enables fast and efficient image distortion transformations using Canvas 2D.

46 lines (45 loc) 1.49 kB
/** * 计算点到直线的垂足坐标 * * 计算从指定点到直线的垂线与该直线的交点(垂足)坐标。 * 该函数处理了所有可能的情况,包括: * 1. 直线垂直于 y 轴 * 2. 直线垂直于 x 轴 * 3. 一般情况的斜线 * * 计算步骤: * 1. 处理特殊情况(垂直于坐标轴的直线) * 2. 计算直线斜率 * 3. 计算垂线斜率(与原直线斜率互为负倒数) * 4. 通过联立方程求解交点 * * @param p1 - 直线的起点坐标 * @property {number} x - x坐标 * @property {number} y - y坐标 * @param p2 - 直线的终点坐标 * @property {number} x - x坐标 * @property {number} y - y坐标 * @param p0 - 需要计算垂足的点坐标 * @property {number} x - x坐标 * @property {number} y - y坐标 * * @returns {Coord} 垂足坐标 * @property {number} x - 垂足的x坐标 * @property {number} y - 垂足的y坐标 * * @example * ```typescript * const start = { x: 0, y: 10 }; * const end = { x: 20, y: 10 }; * const point = { x: 5, y: 15 }; * * const intersection = calcPerpendicularIntersection(start, end, point); * console.log(intersection); // { x: 5, y: 10 } * ``` * * @remarks * - 输入的两点不能重合,否则无法确定直线 * - 返回的坐标总是在直线上 * - 适用于直线而不限于线段(交点可能在延长线上) */ export declare const calcPerpendicularIntersection: (p1: Coord, p2: Coord, p0: Coord) => Coord;