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]
.
Value
A euclid_exact_numeric
vector for distance_squared()
and a
numeric matrix for distance_matrix()
See also
Other Measures:
approx_angle()
,
geometry_measures
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] 421.77716 2752.98285 4091.17283 42.85453 434.08593
# All distances
approx_distance_matrix(l, r)
#> [,1] [,2] [,3] [,4] [,5]
#> [1,] 20.53721 37.29638945 31.05899 6.438624 16.561279
#> [2,] 50.63798 52.46887505 79.76332 43.295951 1.068073
#> [3,] 24.33127 21.95942727 63.96228 29.736150 24.283498
#> [4,] 13.73086 30.42585356 15.92796 6.546337 33.089933
#> [5,] 13.29732 0.05472641 23.98094 14.912519 20.834729