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.Анімаційні ефекти


 

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

34148. Рынок 16.16 KB
  Это самое простое но одновременно и самое поверхностное понятие рынка. В настоящее время существует множество определений рынка. Есть и определение рынка как действительного пространства на котором взаимодействуют предложение и спрос на те или иные блага товары и услуги и существуют способы их взаимодействия. Для нормального функционирования рынка необходимы следующие основные условия: 1 свобода предпринимательской деятельности; 2 конкуренция совершенная и несовершенная; 3 наличие различных форм собственности; 4 свободное...
34149. Деньги 29.36 KB
  Сущность денег раскрывается в их функциях. Ученыеэкономисты считают что можно выделить пять функций денег Современные экономисты считают что деньги выполняют три функции деньги как мера стоимости деньги как средство обращения и деньги как средство накопления. движение денег в наличной и безналичной формах закрепленная национальным законодательством; включает следующие элементы денежную единицу масштаб цен виды денег в стране и порядок их эмиссии порядок обращения денег и платежей а также государственный аппарат осуществляющий...
34150. Закон стоимости 14.56 KB
  Закон стоимости вынуждает товаропроизводителей следить за тем чтобы индивидуальные затраты труда на производство товаров не превышали общественно необходимые. Закону стоимости свойственны следующие черты: в основе стоимости лежит общественно необходимый труд; величина стоимости товара прямо пропорциональна количеству воплощенного в нем общественно необходимого труда и обратно пропорциональна его производительной силе; обмен товаров совершается в соответствии с количеством воплощенного в них общественно необходимого труда; с возникновением...
34151. Понятие «рынок» и «рыночная экономика» 14.23 KB
  Рынок возникает и развивается вместе с разделением труда в обществе задолго до формирования рыночной экономики. В современной экономической литературе понятия рынок и рыночная экономика употребляются в одном и том же значении: для характеристики рыночной экономики одновременно понимаемой и как рынок. Рынок это одна из важнейших категорий товарного хозяйства выражающая его наиболее существенные связи и отношения связанные с обменом.
34152. Спрос 17.46 KB
  Объем спроса это количество товара которое покупатели желают приобрести за некоторый период например день или год. Объем спроса зависит от цены данного товара цены других товаров товаровзаменителей доходов покупателей и их вкусов. Графическое выражение между ценой товара и величиной спроса предъявляемого покупателями на этот товар называется кривой спроса. Кривая спроса обычно является убывающей.
34153. Объем предложения товара 16.06 KB
  Объем предложения товара это количество товара которое продавцы желают продать за некоторый период например день или год. Объем предложения зависит от цены товаров от цены используемых в производстве ресурсов имеющихся в распоряжении товаропроизводителей и других факторов. Важно отличать объем предложения от объема производства: не все что создано производителем предлагается к продаже и не все что продается обязательно покупается. Объем предложения определяется только поведением продавцов тогда как объем продаж определяется и...
34154. Равновесная цена 14.49 KB
  Взаимодействие предложения и спроса приведет к установлению рыночной цены или равновесной цены. Равновесная цена это цена при которой объем спроса равен объему предложения и этот объем является соответственно равновесным. Возможны четыре варианта взаимодействия спроса и предложения: 1 возрастание спроса на товар кривая его двигается вправо; 2 уменьшение спроса на товар кривая его двигается влево; 3 возрастание предложения на товар кривая его двигается вправо; 4 уменьшение предложения на товар кривая его двигается влево.
34155. Главный фактор потребности выбора 16.57 KB
  Потребляя те или иные блага люди тем самым как бы оценивают их полезность для себя. Главный фактор потребности выбора полезность того или иного товара это категория применяемая для характеристики результатов эффективности экономических решений или деятельности. В более ограниченном смысле полезность определяется как субъективная польза извлекаемая индивидом из потребления товара или услуги. Полезность означает способность экономического блага товара услуги удовлетворять определенные потребности людей.
34156. ПОТРЕБИТЕЛЬСКИЙ ВЫБОР 22.98 KB
  Изменение цены какоголибо товара влияет на объем спроса через эффект дохода и эффект замещения. Эффект дохода возникает поскольку изменение цены данного товара увеличивает при снижении цены или уменьшает при повышении цены реальный доход или покупательную способность потребителя. Эффект замещения замены возникает в результате относительного изменения цен. Эффект замещения способствует росту потребления относительно подешевевшего товара тогда как эффект дохода может стимулировать и увеличение и сокращение потребления товара или быть...