[**fabric-texture**](../../../../README.md)

***

# Function: calcPerpendicularIntersection()

> **calcPerpendicularIntersection**(`p1`, `p2`, `p0`): `Coord`

计算点到直线的垂足坐标

计算从指定点到直线的垂线与该直线的交点（垂足）坐标。
该函数处理了所有可能的情况，包括：
1. 直线垂直于 y 轴
2. 直线垂直于 x 轴
3. 一般情况的斜线

计算步骤：
1. 处理特殊情况（垂直于坐标轴的直线）
2. 计算直线斜率
3. 计算垂线斜率（与原直线斜率互为负倒数）
4. 通过联立方程求解交点

## Parameters

### p1

`Coord`

直线的起点坐标

### p2

`Coord`

直线的终点坐标

### p0

`Coord`

需要计算垂足的点坐标

## Returns

`Coord`

垂足坐标

## 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

- 输入的两点不能重合，否则无法确定直线
- 返回的坐标总是在直线上
- 适用于直线而不限于线段（交点可能在延长线上）
