На Visual C ++, Как сделать простую программу рисования? - PullRequest
0 голосов
/ 22 октября 2009

Я хочу создать простую программу рисования на Visual C ++, которая позволяет пользователю рисовать путь из серии прямых линий, которые следуют друг от друга. Как только пользователь сделает это, он должен дважды щелкнуть, чтобы остановить рисование. Важно, чтобы я записал координаты начальной и конечной точек каждой линии пути, потому что я хочу использовать эту информацию, чтобы найти величину и направление каждой линии, используя простую математику. Пожалуйста, может кто-нибудь дать мне где-нибудь начать и любое другое руководство.

Ответы [ 3 ]

1 голос
/ 22 октября 2009

Вы должны начать с учебника по: MFC. Изучите основы: Документ / Просмотр архитектуры и как рисовать (GDI и контекст устройства).

По сути, вы должны: 1. создать приложение MFC (SDI - интерфейс для одного документа), 2. Обработайте OnLButtonDown (WM_LBUTTONDOWN), OnMouseMove (WM_MOVE), OnLButtonUp (WM_LBUTTONUP). 3. Поддерживать динамический массив / список (TypedPtrList) точек 4. обработать событие двойного щелчка для определения завершения.

Вы должны использовать функцию Invalidate () для (после) каждого клика, чтобы увидеть изменения на экране.

Это всего лишь небольшая информация, с которой можно начать

0 голосов
/ 26 октября 2009

на вашем месте я бы использовал Qt. Виджеты Qt отлично подходят для пользовательского интерфейса. вы должны проверить примеры qt ...

если вы хотите выполнить обработку изображения позади, вы можете использовать библиотеку imagemagick. эта библиотека отлично подходит для любых манипуляций с изображениями.

0 голосов
/ 22 октября 2009

Вы захотите:

  • класс или структура для представления точки (если вы сделаете ее классом, она может иметь методы вычисления, которые, например, рассчитывают расстояние и направление до другой точки)
  • переменная-член: экземпляр класса контейнера (список, массив и т. Д.) Для хранения ваших точек
  • переменная-член: логический флаг, отображающий, рисуете вы или нет (начиная с not)

и вам нужно обработать:

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

Стратегия Ярона не рисует линии, пока не нажаты 2 точки. Мой использует «резиновые ленты», чтобы закрепить первый конец линии, а затем, чтобы второй конец следовал за вашим курсором, пока вы не нажмете, чтобы закрепить его. Используйте тот, который вам больше нравится.

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