Ладно, сначала я не был уверен, что это было лучше подходит для MathSO, так что извиняйтесь, если он нуждается в миграции.Найти минимальный набор лучей, пересекающих все вокселы
У меня есть трехмерная сетка точек (представляющая центры вокселей) с шагом, изменяющимся в каждом измерении, но регулярным. Например, разрешение может составлять 100 на 50-40 для объекта с кубической формой.
Давая мне nVox = 200,000
.
Для каждого вокселя - я хотел бы использовать лучи (nVox - 1), заканчивающиеся в центре и исходящие от каждого из других вокселей.
Теперь, очевидно, здесь много перекрытий, но у меня возникли проблемы с поиском, как рассчитать минимальный набор требуемых лучей. Это звучит как проблема, которая имеет изящное решение, но я, однако, изо всех сил пытаюсь ее найти.
В начале, то очевидно, что вам нужно всего лишь вычислить
[nVox * (nVox - 1)]/2
лучей, а другая половина будет просто в противоположных направлениях. В 2D случае также легко объединить все те, что параллельны одной из осей сетки (и двух диагоналей).
Итак, как мне найти минимальный набор лучей, которые мне нужны, чтобы пройти от всех воксельных центров, ко всем остальным?
Если кто-то может указать мне в правильном направлении, это было бы здорово. Любая помощь будет очень оценена.
Спасибо, что нашли время ответить, мне потребуется некоторое время, чтобы проверить этот подход, поскольку он вне моего опыта, но ваша помощь очень ценится, и я вернусь к вам с результатами. Ура! –