Возможно, вместо мозаики просто используйте одну геометрию пути и программно изменяйте данные пути, используя привязку данных или что-то еще, чтобы представить сегмент пути, на котором вы увеличиваете масштаб. Немного похоже на DeepZoom, но с путями. Это будет означать, что вам не придется возиться с путями слияния.
Я делаю что-то похожее на вас, но числа, которые я использую В моих путях немного меньше, поэтому я не рассматривал использование каких-либо методов виртуализации. Однако я не заметил серьезных проблем с производительностью. У меня есть траектория в просмотре прокрутки, представляющая около 1000-10000 точек, и она становится медленной только при увеличении масштаба, только если точки очень далеко друг от друга. Если точки на пути относительно близки к своим соседям (например, хорошая широкая синусоида), тогда WPF выполняет некоторую оптимизацию для них, чтобы предотвратить любое заметное отставание.
Например: этот путь ...
... рисование займет больше времени, чем этот путь:
даже если они содержат одинаковое количество точек, описывающих это. Хотя в действительности путь должен выглядеть примерно так, как показано на рисунке ниже, прежде чем вы заметите разницу в производительности.
Поскольку путь представляет звуковую волну, я намерен избавиться от любых будущих проблем, подобных этой, выполнив какую-то проверку, чтобы определить, создают ли точки массивный темно-синий блок, и заменить его чем-то менее энергоемким, но это может быть недостаточно для вас.
(извините за разницу в размерах изображений, бит, который вычисляет синусоидальную волну, в данный момент не работает, поэтому мне пришлось использовать старые jpegs)