проверить, видна ли точка с поверхности двумерного выпуклого корпуса - PullRequest
1 голос
/ 17 января 2012

Я пытаюсь реализовать алгоритм Бойера-Ватсона для генерации триангуляции Делоне для набора точек на плоскости. Алгоритм предполагает наличие ограничивающего супер-треугольника, но также упоминались некоторые альтернативы, такие как поддержание выпуклой оболочки множества точек.

Таким образом, когда мы решаем произвести триангуляцию точек Делоне, предполагая выпуклую оболочку в инкрементном алгоритме, если точка находится вне выпуклой оболочки, мы должны нарисовать вершины от этой точки ко всем вершинам выпуклой оболочки, которые составляют грани корпуса, с которых видна точка.

Мне было интересно, как я могу подойти к этой проблеме? Должен ли я изначально генерировать выпуклую оболочку из всех точек или как в инкрементальном подходе, когда точки добавляются по одной за раз, должен ли я поддерживать выпуклую оболочку в форме DCEL?

РЕДАКТИРОВАТЬ: На изображении выше, если у меня есть точка P, которая находится за пределами выпуклой оболочки набора точек на плоскости, мне нужно вычислить края оболочки, с которой точка видна. [Зеленый край корпуса] image above

Я надеюсь, что изображение помогает прояснить вопрос.

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

1 Ответ

1 голос
/ 20 февраля 2012

Ребра, обозначающие букву P, образуют ребра, которые образуют треугольник по часовой стрелке с буквой P при пересечении корпуса против часовой стрелки (вычисление области со знаком).

...