vcg_kdtree_nearest | R Documentation |
k
pointsFor each point in the query, find the nearest k
points in target using
K-D
tree.
vcg_kdtree_nearest(target, query, k = 1, leaf_size = 16, max_depth = 64)
target |
a matrix with |
query |
a matrix with |
k |
positive number of nearest neighbors to look for |
leaf_size |
the suggested leaf size for the |
max_depth |
maximum depth of the |
A list of two matrices: index
is a matrix of indices of
target
points, whose distances are close to the corresponding
query
point. If no point in target
is found, then NA
will be presented. Each distance
is the corresponding distance
from the query point to the target point.
# Find nearest point in B with the smallest distance for each point in A
library(ravetools)
n <- 10
A <- matrix(rnorm(n * 2), nrow = n)
B <- matrix(rnorm(n * 4), nrow = n * 2)
result <- vcg_kdtree_nearest(
target = B, query = A,
k = 1
)
plot(
rbind(A, B),
pch = 20,
col = c(rep("red", n), rep("black", n * 2)),
xlab = "x",
ylab = "y",
main = "Black: target; Red: query"
)
nearest_points <- B[result$index, ]
arrows(A[, 1],
A[, 2],
nearest_points[, 1],
nearest_points[, 2],
col = "red",
length = 0.1)
# ---- Sanity check ------------------------------------------------
nearest_index <- apply(A, 1, function(pt) {
which.min(colSums((t(B) - pt) ^ 2))
})
result$index == nearest_index
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.