S02E02:点到射线的距离

1,253 阅读1分钟

说明

和点到直线的距离类似,点到射线的距离,最简单就是利用前面求出的最近点的坐标来计算。

几何

一般来说,计算两点的距离需要开方运算,我们会同时提供一个计算距离平方的方法,可以在不必要时减少开方运算。

代码

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