Юлия: извлечь ближайших соседей из первой оболочки тесселяции Вороного - PullRequest
2 голосов
/ 10 июля 2020

Я предполагаю, что лучший ответ на этот вопрос требует использования VoronoiDelaunay.jl, но я также открыт для других пакетов / подходов.

Если у меня есть набор точек в 2D (или 3D? Хотя я не уверен, что это возможно с пакетом VoronoiDelaunay.jl), каков самый быстрый способ получить каждого из их ближайших соседей в смысле тесселяции Вороного (например, соседей в «первой оболочке Вороного»)? Я также не совсем уверен в математике, лежащей в основе этого, или в том, как это связано с триангуляцией Делоне.

Структура данных не имеет большого значения для меня, но давайте просто предположим, что данные хранятся в 2D-массиве введите Array{Float64,2}, называется my_points, размер которого равен (nDims, nPoints),, а nDims - 2 или 3, а nPoints - количество точек. Скажем, я хочу, чтобы на выходе был какой-то список краев, например, массив массивов с именем edge_list (Array{Array{Int64,1}}), где каждый элемент i из edge_list дает мне индексы тех точек, которые являются соседями Вороного точки фокусировки i (координаты которой хранятся в my_points[:,i]).

Figure 1b from https://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1002678

For every point (point in the red tessellation), I want the coordinates / identities of the points that are its Voronoi neighbors (the points in the orange tessellations). This image is taken from Figure 1b of this paper: https://journals.plos.org/ploscompbiol/article?id=10.1371 / journal.pcbi.1002678

...