69107

Анімаційні ефекти

Лекция

Информатика, кибернетика и программирование

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

Украинкский

2014-09-30

46.5 KB

0 чел.

Лекція 16. Тема: Анімаційні ефекти

1. Анімаційні ефекти

Під час розробки анімаційних програм потрібно створювати ефект пересування графічних об'єктів. Найпростіший спосіб реалізації цього ефекту полягає в тому, щоб намалювати зображення певним кольором, а потім приховати його шляхом повторного малювання в тих самих графічних координатах кольором фону. Наступного разу зображення відтворюється вже в нових координатах. Великі за розміром зображення пересуватимуться у такий способ надто повільно. Значно вищої швидкості, а отже і якості анімації можна досягти за допомогою копіювання зображень в оперативну пам'ять і виведення на екран їх копій у нових графічних координатах. Оскільки копія зображення зберігається в оперативній пам'яті, можливе її багаторазове виведення.

Процедури і функції, що застосовуються для створення анімаційних ефектів, наведені у табл. 5.1. Процедура GetImage (x1, y1, x2, y2: Integer; var BitMap) зберігає в пам'яті зображення, оточене прямокутником, лівим верхнім кутом якого є точка (х1,у1), а правим нижнім - точка (х2, у2). Параметр BitMap - це динамічна змінна, що в ній зберігатиметься зображення. Покажчик на змінну BitMap, як правило, нетипізований. На екран зображення виводиться за допомогою процедури PutImage (x, y: Integer; var BitMap; BitBlt: Word). Координатами лівої верхньої точки зображення є значення параметрів х і у. Параметр BitBlt визначає спосіб взаємодії нової копії зображення із зображенням, що вже є на екрані. Взаємодія здійснюється за допомогою логічних операцій, які застосовуються до кожного біта копії та оригіналу зображення. Значенням параметра BitBlt є одна із таких констант:

const

NormalPut=0;  {заміна наявного зображення на копію}

XorPut=1;  {операція виключного «або»}

OrPut=2;  {об’єднувальне «або»}

AndPut=3;  {логічне «і»}

NotPut=4;  {інверсія зображення}

Логічні операції над зображенням дають такі результати. У випадку використання константи NormalPut зображення на екрані знищується і на цьому місці відображається копія з оперативної пам'яті. В разі вибору константи NotPut буде виведено копію зображення в інверсному коді: так, код white (1510 = 11112) замінюється кодом black (010 = 00002), код red (410 = 01002) — кодом lightCyan (1110 = 10112). Використання константи  XorPut дає можливість видаляти зображення в тих точках екрана, де розміщено його оригінал. Якщо цю операцію застосувати двічі до тих самих координат екрана, то зображення не зміниться.

Приклад 5.5.

Створимо програму, що імітує рух місяця на зоряному небі. Коли зображення місяця сягає межі екрана, напрям його руху змінюється. Один із можливих станів екрана під час роботи програми зображено на рис. 5.4.

Program ex5_4;     {місяць на небі, зіроньки сяють}

uses crt, graph;

var dr, m: integer;     {графічний драйвер та режим}

     x, y,      {координати об’єкта під час руху}

     dx, dy: integer;     {приріст координат}

     ptr: pointer;  {покажчик на область пам’яті, де зберігаються зображення}

size: integer; {розмір необхідної для збереження зображення пам’яті}

     leftX, lefty,     {координати лівого верхнього і}

     rightX, rightY: integer;  {правого нижнього кутів прямокутника, в який вписано зображення}

     i: integer;      {параметр циклу}

{--------------------------------- відображення зоряного неба ---------------------------------}

procedure Sky;

begin

  randomize;     {ініціалізація генератора випадкових чисел}

  SetBkColor (1);     {визначення кольору фону}

  SetColor (14);     {колір зірок}

  for i:=0 to 200 do     {відображення зірок}

    Circle (random(640), random(480), 1);

end;

{--------------------------------- відображення місяця на небі ---------------------------------}

procedure Moon;

begin

  SetColor (14);

  Arc (450, 100, 270, 90, 50);

  Arc (390, 100, 320, 40, 80);

  SetFillStyle (1, 14);

  FloodFill (480, 100, 14);

end;

{----------------------- збереження зображення у динамічній пам’яті ----------------------}

procedure SaveClip;

begin

  leftX:=445;       {координати прямокутника}

  leftY:=45;       {у який вписано місяць}

  rightX:=505;

  rightY:=155;

  size:=imagesize (leftX, lefty, rightX, rightY);

  getmem (ptr, size);      {виділити пам’ять}

  getimage (leftX, lefty, rightX, rightY, ptr^);  {зберегти зображення в пам’яті }

  putimage (leftX, lefty, ptr^, xorput);   {приховати зображення}

end;

{--------------------------------- рух місяця ---------------------------------}

procedure Move;

begin

  x:=leftX; y:=lefty;      {стартові координати}

  dx:=10; dy:=10;      {приріст координат}

  repeat       {зсув зображення}

     x:=x+dx;       {зміна координат місяця}

     y:=y+dy;

     putimage (X, Y, ptr^, xorput);   {зобразити фігуру в нових координатах}

     delay (2000);      {затримати рух}

     putimage (X, Y, ptr^, xorput);   {сховати фігуру в старих координатах}

     if (x>640) or (x<0)    {якщо фігура сягнула межі екрана,}

        then dx:=-dx     {змінити напрям її руху}

        else

           if (y<0) or (y>480) then dy:=-dy;

  until keypressed;

end;

{--------------------------------- основна програма ---------------------------------}

begin

  dr:=Detect;

  InitGraph (dr, m, ‘ ’);

  Sky;

  Moon;

  SaveClip;

  Move;

end.

Контрольні питання

1.Анімаційні ефекти


 

А также другие работы, которые могут Вас заинтересовать

65442. ПІДВИЩЕННЯ ПРОДУКТИВНОСТІ ОБРОБКИ ДЕТАЛЕЙ У ВІБРУЮЧИХ КОНТЕЙНЕРАХ ШЛЯХОМ ВИБОРУ ФОРМИ ІНСТРУМЕНТУ 323 KB
  Відповідно до цього актуальною науковопрактичною задачею стосовно вібраційної обробки є розробка рекомендацій що сприяють підвищенню її продуктивності за рахунок розробки та дослідження інструменту одиничних абразивних...
65443. Експериментальні методи оцінки часової та функціональної ефективності алгоритмів у програмно-апаратних середовищах 922.5 KB
  Переважна більшість теоретичних досліджень з аналізу алгоритмів ґрунтується на аспекті представлення алгоритмів і не враховує особливостей сучасних засобів їх виконання. Можна виділити три основні підходи до аналізу алгоритмів.
65444. МІЦНІСТЬ ЗАЛІЗОБЕТОННИХ ПЛИТ ПРИ ПРОДАВЛЮВАННІ ШТАМПАМИ РІЗНОЇ ГЕОМЕТРІЇ 7.21 MB
  У сучасному будівництві все більше поширення отримують монолітні залізобетонні будинки з безригельним безкапітельним каркасом коли плоскі плити перекриттів постійної товщини опираються безпосередньо на колони.
65445. ПРАВОВЕ РЕГУЛЮВАННЯ ПЕНСІЙНОГО ЗАБЕЗПЕЧЕННЯ СУДДІВ В УКРАЇНІ 163 KB
  Одним із перших змін у спеціальному пенсійному законодавстві зазнало пенсійне забезпечення суддів у зв’язку із прийняттям Закону України Про судоустрій і статус суддів. Законом України Про судоустрій і статус суддів закріплено...
65446. ГІГІЄНІЧНА ОЦІНКА ОСОБЛИВОСТЕЙ ХАРЧУВАННЯ МОЛОДШИХ ШКОЛЯРІВ У ЗАГАЛЬНООСВІТНІХ НАВЧАЛЬНИХ ЗАКЛАДАХ РІЗНОГО ТИПУ 368 KB
  У сучасних соціальноекономічних реаліях життя в Україні коли змінюються умови навчання дітей та виникають його нові форми і програми дослідження з вивчення харчового статусу дитячого населення України з метою його корекції є вкрай актуальним але недостатньо вивченим...
65447. ТЕРИТОРІАЛЬНА ОРГАНІЗАЦІЯ ВИЩОЇ ОСВІТИ УКРАЇНИ 352.5 KB
  Оцінка впливу чинників на сучасний стан вищої освіти; Дослідження регіональних особливостей вищої освіти; Визначення відповідності розвитку вищої освіти рівню розвитку регіону Аналіз територіальної структури вищої освіти тенденцій її розвитку Типізація регіонів України...
65448. ЕКОНОМІЧНЕ ОБҐРУНТУВАННЯ ІНВЕСТИЦІЙ В ІННОВАЦІЙНІ ПРОЕКТИ ПРОМИСЛОВИХ ПІДПРИЄМСТВ 413.5 KB
  Результативність інноваційної діяльності підприємств залежить від розміру інвестицій які вкладаються та повинні окуповуватися за відповідний період часу. Оцінка економічної ефективності інвестицій в інноваційні проекти один із головних елементів технікоекономічного аналізу.
65449. МОДЕЛІ ТА МЕТОДИ АВТОМАТИЗАЦІЇ ПРОЕКТУВАННЯ ТЕХНОЛОГІЧНОГО ОСНАЩЕННЯ ДЛЯ ВИРОБІВ ІЗ ПЛАСТМАС 11.09 MB
  У сучасних системах автоматизованого проектування САПР при проектуванні технологічного оснащення ТО для виготовлення виробів із пластмас недостатньо враховуються особливості пластмасового матеріалу виробу які пов'язані з нестабільністю технологічних...
65450. ПРОДУКТИВНІСТЬ ТА М’ЯСНІ ЯКОСТІ СВИНЕЙ ВІТЧИЗНЯНИХ І ІМПОРТНИХ ГЕНОТИПІВ ЗА РІЗНИХ МЕТОДІВ РОЗВЕДЕННЯ В УМОВАХ ПРОМИСЛОВОЇ ТЕХНОЛОГІЇ 620 KB
  Нині в Україні розводять 11 порід свиней серед яких 3 вітчизняні спеціалізовані м’ясні породи що створені на багатопородній кросбредній основі які використовуються як батьківська форма в системах гібридизації.