Polygon类的distanceToPoint方法可以计算一个点到多边形的最短距离。该方法的实现基于欧几里得距离公式。
polygon.distanceToPoint(point)
Object
要计算距离的点,格式为 {x: number, y: number}
。距离输入点最近的多边形边的距离。
const polygon = new Yuka.Polygon([
new Yuka.Vector3(-2, -2),
new Yuka.Vector3(2, -2),
new Yuka.Vector3(2, 2),
new Yuka.Vector3(-2, 2)
]);
const point = { x: 1, y: 1 };
const distance = polygon.distanceToPoint(point);
console.log(distance); // 输出 0.41421356237309515
该方法计算一个点到多边形的最短距离。首先,获取多边形所有边的起始点和终止点,然后对每条边计算点到直线的距离。如果输入点在边的两侧,则距离为点到直线的距离;否则,距离为输入点到边端点的最短距离。由此得出距离最小的边,并返回该距离。