The minimum distance between two arbitrary geometries is non-trivial and is only exactly defined for non-circular geometries. distance_squared() will return the exact squared distance between geometries with x and y being recycled to the maximum length of either. distance_matrix will return a matrix of distances given as numerics (and thus not exact), with the geometries of x in the rows and the geometries of y in the columns so that the value of mat[i, j] corresponds to the distance between x[i] and y[j].

distance_squared(x, y)

approx_distance_matrix(x, y)

Arguments

x, y

eometry vectors or bounding boxes

Value

A euclid_exact_numeric vector for distance_squared() and a numeric matrix for distance_matrix()

Examples

# Calculate distances between lines and rays in 3D p <- point(sample(100, 20), sample(100, 20), sample(100, 20)) l <- line(p[1:5], p[6:10]) r <- ray(p[11:15], p[16:20]) # Pairwise exact distance distance_squared(l, r)
#> <exact numerics [5]> #> [1] 277.83139 1952.05705 13.46348 180.30916 2364.90037
# All distances approx_distance_matrix(l, r)
#> [,1] [,2] [,3] [,4] [,5] #> [1,] 16.6682751 11.907760 7.305162 1.925140 0.5411494 #> [2,] 0.9550823 44.182090 27.894085 54.879626 43.4921308 #> [3,] 2.2641643 11.936908 3.669261 7.854165 7.2842733 #> [4,] 40.8338731 3.536245 3.023829 13.427925 16.8036308 #> [5,] 4.6013258 70.789292 60.004589 51.756396 48.6302413