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


 

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

81499. Источники и образование одноуглеродных групп. Тетрагидрофолиевая кислота и цианкобаламин и их роль в процессах трансметилирования 168.87 KB
  Образование и использование одноуглеродных фрагментов. Ещё один источник формального и формиминофрагментов гистидин. Все образующиеся производные Н4фолата играют роль промежуточных переносчиков и служат донорами одноуглеродных фрагментов при синтезе некоторых соединений: пуриновых оснований и тимидиловой кислоты необходимых для синтеза ДНК и РНК регенерации метионина синтезе различных формиминопроизводных формиминоглицина и т. Перенос одноуглеродных фрагментов к акцептору необходим не только для синтеза ряда соединений но и для...
81500. Антивитамины фолиевой кислоты. Механизм действия сульфаниламидных препаратов 104.02 KB
  В медицинской практике в частности в онкологии нашли применение некоторые синтетические аналоги антагонисты фолиевой кислоты. Аминоптерин является наиболее активным цитостатикомантагонистом фолиевой кислоты; отличается высокой токсичностью вследствие чего показан лишь при тяжёлых формах псориаза. ПАБК необходима микроорганизмам для синтеза фолиевой кислоты которая превращается в фолиниевую кислоту участвующую в синтезе нуклеиновых кислот.
81501. Обмен фенилаланина и тирозина. Фенилкетонурия; биохимический дефект, проявление болезни, методы предупреждения, диагностика и лечение 261.77 KB
  Тирозин условно заменимая аминокислота поскольку образуется из фенилаланина. Метаболизм феиилаланина Основное количество фенилаланина расходуется по 2 путям: включается в белки; превращается в тирозин. Превращение фенилаланина в тирозин прежде всего необходимо для удаления избытка фенилаланина так как высокие концентрации его токсичны для клеток.
81502. Алкаптонурия и альбинизм: биохимические дефекты, при которых они развиваются. Нарушение синтеза дофамина, паркинсонизм 403.53 KB
  Нарушение синтеза дофамина паркинсонизм. Заболевание развивается при недостаточности дофамина в чёрной субстанции мозга. Для лечения паркинсонизма предлагаются следующие принципы: заместительная терапия препаратамипредшественниками дофамина производными ДОФА леводопа мадопар наком и др. подавление инактивации дофамина ингибиторами МАО депренил ниаламид пиразидол и др.
81503. Декарбоксилирование аминокислот. Структура биогенных аминов (гистамин, серотонин, γ-аминомасляная кислота, катехоламины). Функции биогенных аминов 239.46 KB
  Процесс отщепления карбоксильной группы аминокислот в виде СО2 получил название декарбоксилирования. В живых организмах открыты 4 типа декарбоксилирования аминокислот. αДекарбоксилирование характерное для тканей животных при котором от аминокислот отщепляется карбоксильная группа стоящая по соседству с αуглеродным атомом.
81504. Дезаминирование и гидроксилирование биогеных аминов (как реакции обезвреживания этих соединений) 168.64 KB
  Инактивация биогенных аминов происходит двумя путями: 1 метилированием с участием SM под действием метилтрансфераз. Таким образом могут инактивироваться различные биогенные амины но чаще всего происходит инактивация гастамина и адреналина. Так инактивация адреналина происходит путём метилирования гидроксильной группы в ортоположении . Реакция инактивации гистамина также преимущественно происходит путём метилирования 2 окислением ферментами моноаминооксидазами МАО с коферментом FD таким путем.
81505. Нуклеиновые кислоты, химический состав, строение. Первичная структура ДНК и РНК, связи, формирующие первичную структуру 107.11 KB
  Первичная структура ДНК и РНК связи формирующие первичную структуру Нуклеи́новые кисло́ты высокомолекулярные органические соединения биополимеры полинуклеотиды образованные остатками нуклеотидов. Нуклеиновые кислоты ДНК и РНК присутствуют в клетках всех живых организмов и выполняют важнейшие функции по хранению передаче и реализации наследственной информации. Поскольку в нуклеотидах существует только два типа гетероциклических молекул рибоза и дезоксирибоза то и имеется лишь два вида нуклеиновых кислот дезоксирибонуклеиновая ДНК...
81506. Вторичная и третичная структура ДНК. Денатурация, ренативация ДНК. Гибридизация, видовые различия первичной структуры ДНК 108.02 KB
  Вторичная структура ДНК. В 1953 г. Дж. Уотсоном и Ф. Криком была предложена модель пространственной структуры ДНК. Согласно этой модели, молекула ДНК имеет форму спирали, образованную двумя полинуклеотидными цепями, закрученными относительно друг друга и вокруг общей оси. Двойная спираль правозакрученная, полинуклеотидньхе цепи в ней антипараллельны
81507. РНК, химический состав, уровни структурной организации. Типы РНК, функции. Строение рибосомы 124.71 KB
  Первичная структура РНК - порядок чередования рибонуклеозидмонофосфатов (НМФ) в полинуклеотидной цепи. В РНК, как и в ДНК, нук-леотиды связаны между собой 3,5-фосфодиэфирными связями. Концы полинуклеотидных цепей РНК неодинаковы. На одном конце находится фосфорилированная ОН-группа