понеділок, 12 квітня 2021 р.

Анімація у програмуванні мовою програмування Pascal ABC

 

Після запуску PascalABC, за замовчуванням, запускається текстовий режим. Для роботи з графікою служить окреме графічне вікно.

Щоб його відкрити, необхідно підключити модуль GraphABC. У цьому модулі міститься набір процедур і функцій, призначених для роботи з графічним екраном, а також деякі вбудовані константи і змінні, які можуть бути використані в програмах з графікою.

З їх допомогою можна створювати різноманітні графічні зображення і супроводжувати їх текстовими написами.

Система координат в Паскалі відповідає екранної системі координат і виглядає наступним чином:

 





Як на мові програмування Паскаль АВС створити найпростішу анімацію - ілюзію руху?

Анімація в програмуванні полягає в тому, що спочатку малюється фігура кольоровим інструментом, потім з тим же координатами малюється та ж фігура білим кольором. Після чого відбувається зсув фігури і дії повторюються.
У цьому уроці буде показано, як можна створити анімоване зображення за допомогою модуля GraphABC.

Процедура LockDrawing;

Малювання засобами PascalABC відбувається дуже повільно. Поки воно йде, картинка на екрані встигає багато разів оновитися. Звідси мерехтіння. Тобто, ми бачимо не остаточну картинку, а процес її малювання. Остаточну картинку в общем-то не бачимо - як тільки вона вишикувалася, ми її тут же стираємо і починаємо новий цикл малювання. Для боротьби з цим ефектом придумали подвійну буферизацію. Ідея в тому, щоб спочатку побудувати картинку в пам'яті (не вивільняючи на екран), а потім відобразити новий кадр на екрані цілком, без проміжних варіантів, де не вистачає половини промінчиків. Для цього на початку програми викликаємо процедуру LockDrawing.

Процедура ClearWindow (color);


Після кожної проходу по циклу очищає графічне вікно вказаним кольором, який передається в якості параметра. Після цього всі команди малювання будуть створювати картинку в пам'яті (в так званому вторинному буфері). Безпосередньо на екрані нічого малюватися не буде. Після того, як черговий кадр анімації повністю відмалювали (тобто перед ClearWindow), потрібно викликати процедуру Redraw; Ця процедура викличе перерисовку всієї картини. Намалюємо спочатку чотири кола.


Другою стадією, буде підмальовка п'ятої окружності і за допомогою вищевказаних процедур і циклу змусимо його рухатися по заданій траєкторії.


Відео готової програми, яка демонструє рух чотирьох кругів від центра до кутів екрану дивіться у вкладці відео до уроків.

Немає коментарів:

Дописати коментар