Объединение смежных фигур в C # / WPF - PullRequest
2 голосов
/ 05 декабря 2010

Я использую CombinedGeometry в C # для объединения нескольких полигонов.

RenderedGeometry каждой фигуры берется и соединяется с окончательной формой с помощью GeometryCombineMode.Union.

Однако у меня проблема с тем, что две фигуры являются смежными, но не перекрываются (разрыв между ними составляет 0px).Так как они не перекрываются, они не будут объединены CombinedGeometry.

. Я рассмотрел увеличение каждой входной фигуры на 1 пиксель, а затем сужение выходных данных тем же, но это не может быть сделаноточно используя ScaleTransform.

Как мне соединить эти две фигуры вместе?

1 Ответ

2 голосов
/ 05 декабря 2010

Попробуйте следующее - я не проверял это, но логически я думаю, что это будет работать:

Создайте прямоугольник, который окружает ваши фигуры - рассчитайте объединенную ограничивающую рамку и немного увеличьте ее, чтобы справиться с ошибкой округления.

Затем выполните «Исключение» между прямоугольником и каждой формой по очереди.

Как только вы это сделаете, у вас будет прямоугольник с вырезанным отверстием, который будет эффективным объединением всех ваших фигур.

Затем выполните «Xor» для этого с другим прямоугольником того же размера, что и первый.

Я думаю, что это должно породить ваш "союз".

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