Эквидистантные точки через куб

Мне нужно инициализировать некоторые трехмерные точки, и я хочу, чтобы они были равномерно распределены по всему кубу. Есть ли творческие способы сделать это?

Я использую итеративный алгоритм максимизации ожиданий, и я хочу, чтобы мои начальные векторы «охватывали»; пространство равномерно.

Например, предположим, у меня есть восемь точек, которые я хочу разместить одинаково в кубе размером 1x1x1. Я хотел бы, чтобы точки в углах куба с длиной стороны 0,333 центрировались внутри большего куба.

Пример 2D ниже. Обратите внимание, что красные точки равноудалены от друг друга и краев. Я хочу то же самое для 3D.

Equidistant points

В тех случаях, когда количество точек не имеет целочисленного корня куба, я вполне могу оставить некоторые «пробелы». в расположении.

В настоящее время я беру корень куба из числа точек и использую его для вычисления количества точек и желаемого расстояния между ними. Затем я перебираю точки и увеличиваю координаты X, Y и Z (в шахматном порядке, так что Y не увеличивается до тех пор, пока X не вернется к 0, то же самое для Z с учетом Y).

Если в MATLAB есть простой способ сделать это, я с радостью воспользуюсь им.

Ответы на вопрос(5)

Ваш ответ на вопрос