отсечение многоугольника против прямоугольника - PullRequest
3 голосов
/ 05 июня 2011

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

Считайте серый прямоугольник моей страницей. Рассматривайте зеленый многоугольник как то, что я на самом деле рисую.

Первая картинка показывает вам то, что у меня есть на самом деле, а вторая показывает вам конечный результат, который я хочу получить.

Polygon and page as I have them now Polygon and page as I need to have them Сначала я подумал об уменьшении своего многоугольника в простых треугольниках, чтобы рисовать только точки в пределах экрана. Но я думаю, что существует более простое решение ... если у вас есть, не стесняйтесь поделиться им со мной:)

EDIT:

У меня есть еще этот сложный случай:

enter image description hereenter image description here

Спасибо.

1 Ответ

3 голосов
/ 05 июня 2011
  1. Отсечение многоугольника с прямоугольником. Мы уменьшаем эту проблему до
  2. отсечение многоугольника с линией. Мы сводим это к еще более простой проблеме:
  3. отсечение одного края многоугольника с линией. Что на самом деле просто
  4. Нахождение пересечения отрезка с линией (если она существует).

Последняя проблема довольно проста, учитывая, что ваши линии вертикальные или горизонтальные. Этого достаточно?

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