Получите горизонт для точки во время пошагового выпуклого корпуса 3D

Я реализую инкрементный CH 3D на С++ с помощью qt, но не могу решить эту проблему:

Я должен найти горизонт обзора заданной точки:

горизонт

У меня есть карта со списком всех видимых граней данной точки "pr", но я не знаю, как получить только горизонт без изменения сложности алгоритма (это O(nlogn)).

Моя идея заключалась в следующем: для всех видимых ребер граней проверить, видна ли падающая грань близнеца или нет. Если его не видно, то добавьте его в список границ горизонта, но это изменяет сложность алгоритма (я думаю).

Обратите внимание, что у меня есть еще один список, где у меня есть набор всех точек, которые могут просматривать данное лицо (возможно, это поможет).

Заранее спасибо


person Alessandro Massa    schedule 26.08.2013    source источник


Ответы (1)


Если у вас есть выпуклые многогранники, только ваша идея должна это сделать (сложность O (1), у вас уже есть результаты). Да, вы бы сделали дополнительный поиск со сложностью O (n).

person Community    schedule 26.08.2013
comment
Хорошо, теперь я пытаюсь сделать это! - person Alessandro Massa; 29.08.2013