Вот то, что я заканчиваю:
Я использую PickIntersector библиотеки визуализации, чтобы снова выбрать изображение поля высоты в режиме редактирования.Это вызывает локальные координаты изображения.Там преобразуются в ультрафиолетовые координаты, которые в свою очередь преобразуются в пиксельные координаты.Это делается, когда пользователь нажимает кнопку мыши, и продолжает происходить, когда мышь перемещается, пока она находится над изображением.
У меня есть класс PatchCanvas, который собирает все эти точки.В командах она использует библиотеку Anti-Grain Geometry , чтобы случайно растеризовать линии, которые можно построить из точек.
После этого растеризованное изображение разделяется на сетку фиксированныхразмер.Каждая плитка сканируется на цвет, отличный от нейтрального.Плитки, которые содержат только нейтральный цвет, сбрасываются.Другие сохраняются в соответствии с утвержденной схемой именования и могут быть загружены в следующем кадре.
Agg поддерживает строки другого размера.Это не реализованный джет, но идея состоит в том, чтобы выбрать соседние точки в пространстве экрана, получить эти ультрафиолетовые координаты, преобразовать их в пиксели и использовать в качестве толщины линии.Это должно привести к более широким штрихам для уменьшенных видов.