S02E05:点到线段的距离

224 阅读1分钟

说明

点到线段的距离,计算方式也和射线类似,直接取最近点坐标,计算距离。

几何

同前面一样,为了性能考虑,我们也会给出一个距离平方的计算方法。

代码

///点到线段的距离
static func distanceBetween(point:simd_float3, segment:Segment) -> Float{
    let position = nearestPointOnSegment(from: point, to: segment)
    return distance(position, point)
}
///点到线段距离的平方
static func distanceSquaredBetween(point:simd_float3, segment:Segment) -> Float {
    let position = nearestPointOnSegment(from: point, to: segment)
    return distance_squared(position, point)
}