Определение разреза любого заданного многоугольника и пирамиды - PullRequest
0 голосов
/ 24 июня 2011

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

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

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

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

1 Ответ

0 голосов
/ 25 июня 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...