2009-11-21 5 views
0

В моем приложении я хочу нарисовать полигоны, используя метод Windows Create Graphics, а затем отредактировать многоугольник, разрешив пользователю выбирать точки многоугольника и позволяя их повторно устанавливать.Рисование векторной графики Быстрее

Я использую событие moue move, чтобы получить новое положение точки, чтобы получить новые координаты перемещаемой точки и использовать событие Paint для повторного рисования многоугольника. Приложение работает, но когда точка перемещается, движение не является гладким.

Я не знаю, как перемещается мышь или событие краски, препятствие к работе.

Может ли кто-нибудь сделать предложение о том, как улучшить это?

ответ

1

Возможно, у вас нет реальной проблемы с производительностью - возможно, вам просто нужно сделать вывод на экран DC, а затем скопировать его в свое окно, что уменьшит мерцание и сделает движение более плавным.

Если вы используете кодировку с помощью Win32 api, обратитесь к this для справки.

1

Убедитесь, что вы не перекрашиваете для каждого перемещения мыши. Правильный способ сделать это - обработать все ваши входные события, изменить данные многоугольника и установить флаг, который должен иметь перерисовка (в Windows возможно просто вызвать InvalidateRect() без вызова UpdateWindow()).

0

... и, конечно же, убедитесь, что вы только аннулируете область, которую необходимо перекрасить. Поскольку вы отслеживаете полигоны, аннулируйте только область многоугольника (прямоугольное объединение состояний до и после).

Смежные вопросы