Алгоритм сортировки полигонов и объектов по дальности
Есть 2 проблемы. Мне нужен алгоритм сортировки полигонов и объектов по дальности (далее 1 и 2 - номера вопросов/проблем):
По условию для алгоритма дано:
- Cписок полигонов в 3-х мерном пространстве. Пример:
list = [
[[0, 0, 0], [5, 0, 5], [5, 5, 5]],
...
]
*все координаты даны в последовательности x y z.
И мне нужно отсортировать эти полигоны по дальности так так, чтобы при отрисовке они накладывались друг на друга и создавалось ощущение полноценного 3д объекта, а не рандомно нарисованных полигонов.
- Cписок из списков таких же полигонов (список объектов) и мне нужно отсортировать эти объекты (списки полигонов) по дальности так, чтобы он накладывались друг на друга по очереди и задние не перекрывали ближние.
Помогите?
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Ну вот вам пример, всё же просто:
import numpy as np
polygons = np.random.randint(10, size=(10, 3, 3)).tolist()
polygons.sort(key=lambda poly: sum(z for (x,y,z) in poly))
print(polygons)
Я здесь сортирую по сумме координат z полигонов, входящих в объект.