Задать вопрос
@Irina_Yurievna
тестировщик с 3 летним опаттом

Как создать все трехмерные кубы заданного размера содержащие данную точку?

Дан 3 трехмерный куб n размера содержащее точку [x,y,z], создать все кубы (3-мерные массивы ) которые содержат эту точку.

Пример:

# data
    cubeDimension = 5
    size=2
    point = [ 3, 3, 3 ]
    
    cubesThatContainsIt = [
       ([ 3, 3, 3 ], [ 4, 4, 4 ]),
       ([ 2, 3, 3 ], [ 3, 4, 4 ]), 
       ([ 2, 2, 3 ], [ 3, 3, 4 ]),
       ([ 2, 2, 2 ], [ 3, 3, 3 ])
    ]
    ]
  • Вопрос задан
  • 281 просмотр
Подписаться 2 Простой 1 комментарий
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Если говорим о кубах с целочисленными вершинами и рёбрами, параллельными осям координат, то достаточно вложенными циклами перебирать возможные положения кубов по каждой координате.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Irina_Yurievna Автор вопроса
тестировщик с 3 летним опаттом
Мой вариант кода:
def _generate_cubes(n, x0, y0, z0, k):
    if x0>=n or y0>=n or z0>=n or x0<0 or y0<0 or z0<0:
        return
    for x in range(max(x0-k+1, 0), min(x0+1, n-k+1)):
        for y in range(max(y0-k+1, 0), min(y0+1, n-k+1)):
            for z in range(max(z0-k+1, 0), min(z0+1, n-k+1)):
                yield ((x, y, z) (x+k-1, y+k-1, z+k-1))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы