Я создаю программу в wxWidgets, которая имеет аналогичные функции, скажем, MS Paint, но для более конкретных целей.
Я понимаю различные способы создания объекта с пером / карандашом, который фиксирует один пиксель при перемещении мыши. У меня возникают проблемы с визуализацией - это некоторые другие распространенные инструменты: прямоугольник, овал, линия и т. Д. Для этого вы нажимаете левую кнопку мыши, чтобы установить точку начала координат, и, когда вы перемещаете мышь, она временно визуализирует Наложение фигуры на холсте от начала координат до текущей позиции мыши, окончательная фиксация фигуры на изображении при отпускании кнопки мыши.
Как лучше всего создать этот процесс? Единственное решение, которое я могу придумать, - это сохранить исходную точку при наведении мыши, а при перетаскивании мыши установить временную переменную в текущее положение мыши. Каждый раз, когда изменяется положение мыши, вы бы делали недействительным прямоугольник от исходной точки до сохраненной позиции мыши. Когда кнопка мыши отпущена, форма будет передана модели изображения.
Я еще не реализовал это, поскольку сначала хотел бы получить обратную связь. Это оптимальное решение или оно может вызвать видимое мерцание, когда доступно гораздо более предпочтительное решение?