Для простоты вот пример для обычного куба, то есть с 3 измерениями.Пусть он имеет длину стороны 1 и предположим, что вы хотите, чтобы точки располагались с интервалом 1 / n.(Это приводит к равномерному прямоугольному распределению точек, не совсем уверенному, что это именно то, что вам нужно).
Теперь немного псевдокода:
for i=0;i<=n;i++ //NB i<=n because there will be n+1 points along each axis-parallel line
for j=0;j<=n;j++
for k=0;k<=n;k++
addPointAt(i/n,j/n,k/n) //float arithmetic required here
Обратите внимание, что это неДекартово произведение чего угодно, но, кажется, удовлетворяет (частный случай) вашим критериям.Если вы хотите, чтобы точки располагались по-разному, настройте индексы начала и конца цикла или размер интервала.
Чтобы обобщить это для любого указанного более высокого измерения, добавьте больше циклов.
Обобщение для любого более высокого измерения, которое не известно до тех пор, пока время выполнения не станет немного сложнее.Вместо того, чтобы объявлять N-мерный массив, объявите 1-D массив с тем же количеством элементов.Затем вы должны написать индексную арифметику явно вместо того, чтобы компилятор написал ее для вас.
Я ожидаю, что вы сейчас скажете мне, что это не то, что вы хотите!Если нет, не могли бы вы уточнить.