说明
和点到直线的距离类似,点到射线的距离,最简单就是利用前面求出的最近点的坐标来计算。
几何
一般来说,计算两点的距离需要开方运算,我们会同时提供一个计算距离平方的方法,可以在不必要时减少开方运算。
代码
///点到射线的距离
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)
}