Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Определение разреза любого заданного многоугольника и пирамиды

Автор вопроса: LeonОтветов: 1

Я пытаюсь реализовать на С++ функцию, определяющую разрез любого заданного многоугольника и пирамиды.

На самом деле все оказалось гораздо проще, чем я себе представлял сначала.

Сначала для каждого ребра пирамиды проверьте пересечение линии и плоскости (данный многоугольник представляет собой плоскость, состоящую из 3 точек). Это приведет к появлению новых вершин на секущей плоскости.

Во-вторых, поскольку многоугольник не является бесконечной плоскостью, необходимо проверить пересечение линии-линии между ребрами полигона (тремя) и каждым из ребер.

polygonintersection

Ответы

Ответ 1 · Chaim Zonnenberg

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

Сначала определите плоскость, в которой находится ваш выпуклый многоугольник. Затем определите пересечение этой плоскости с пирамидой. В результате получается второй выпуклый многоугольник.

Теперь вы должны найти пересечение двух выпуклых многоугольников. Как это можно сделать, вы можете найти здесь.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы