Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Подавление эффекта мигания


Рекомендуемые сообщения

Программирую движение круга, квадрата и т.п. Дело состоит вот в чем:

1. рисование объекта красным (к примеру цветом)

2. стирание (рисование черным)

3. Задержка

4. Изменение координат и снова 1-4

Дело в том, что рисунок почему то мигает! Как устранить этот неблагоприятный эффект?

Ссылка на комментарий
Поделиться на другие сайты

Бумер:

А как ему не мигать, если ты его стираешь, делаешь задержку, а потом снова рисуешь?

Задержку надо делать после рисования, а не после стирания.

Ссылка на комментарий
Поделиться на другие сайты

Вообщем люди придумали duble buffering ( и triple тоже ) из за этого

Идея состоится в том, что ты рисуеш гдето на другом месте, а потом картинку показиваеш на екран.

Потому что скопировать память ( т.е. весь рисунок ) всегда бистрее чем рисовать эго на екране

Ссылка на комментарий
Поделиться на другие сайты

Ну ладно ,если это простой объект, то ничего. А попробуйте например нарисовать ромашку в паскале, за базовую точку возьмем центр цветка, остальное привяжем к координатам этой точки. Далее в цикле рисуем, делаем задержку, стираем, рисуем в новом месте и т.д.

Происходит мигание причем очень заметное. Видно даже то, что первое рисуется, а что потом. Ну например в программе рисуем лепестки сначала, а потом закрашиваем середину желтым. Причем желтое накладывается на белое - и все это будет видно при мигании!!! Уменьшить мигание получается только увеличением задержки и увеличением приращения координат!

Похоже, что это всего лишь комп думает долговато, хотя я юзаю везде integer, а это целый тип, поэтому вычисления выполняются быстрее чем с вещественными числами - ускорять уже некуда!!!

кто нибудь знает как победить этот эффект?

Ссылка на комментарий
Поделиться на другие сайты

Double Buffering

Создаёшь bitmap, рисуешь в нём, а потом показываешь его на экране. Рисуешь в другом bitmap-е — и опять.

На Pascal я этого не делал, использовал OpenGL только, а там это почти автоматически :)

Изменено пользователем Rulchik
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...