У меня есть PathGeometry, определяющий некоторый путь, как этот:вырезка отверстий в PathGeometry
original path http://devblog.ailon.org/devblog/_stuff/wpfpathgeoquestion/original.gif
Это упрощенный пример. В действительности он может иметь сегменты любого типа (Line, Arc, Bezier).
Теперь мне нужно вырезать отверстие некоторого вида и размера (квадрат, круг и т.д.) в сегменте совместных точек, так что конечный результат будет выглядеть примерно так:
with holes http://devblog.ailon.org/devblog/_stuff/wpfpathgeoquestion/with_holes.gif
Моя первоначальная идея была объединить исходную PathGeometry с другими геометриями, содержащими квадраты (или что-то еще) в совместных точках, используя GeometryCombineMode.Exclude. К сожалению, это создает пустую геометрию, если путь не заполнен. И если он заполнен, он производит неверный результат.
Так что я застрял. В простом примере с сегментами строк я мог бы вычислить граничные точки заранее и сделать мои сегменты линии завершенными там, но с дугами и безьерами это будет своего рода излишним.
У кого-нибудь есть идея, как это сделать?
Примечание: Мне нужно, чтобы эти отверстия были стерты (прозрачны), поэтому размещение белого квадрата над ним не будет.