1210

Программа реализующая цветное движущееся изображение: фейерверк

Курсовая

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

Разработать программу, реализующую цветное движущееся изображение: фейерверк. В двух вариантах: для DOS и Win9x. Графический вывод в программе для Win9x был реализован через DirectDraw.

Русский

2013-01-06

42 KB

13 чел.

Министерство общего и профессионального

образования Российской Федерации

Южно-Уральский государственный университет

Кафедра ЭВМ

Пояснительная записка к курсовому проекту

по курсу "Компьютерная графика"

Руководитель

_______________ Ярош Е.С.

"___" ______________2001г

Автор работы:

студент группы ПС-357

____________Муратов И.И.

"___" _____________ 2010г

Челябинск

2010

СОДЕРЖАНИЕ

  1.  Задание
  2.  Анализ задания
  3.  Руководство программиста
    1.  Критические участки
    2.  Особенности исполнения
    3.  Текст программы
  4.  Руководство пользователя

4.1 Системные требования.

5. Литература
1. Задание

Разработать программу, реализующую цветное движущееся изображение: фейерверк. В двух вариантах: для DOS и Win9x.


2. Анализ задания

Графический вывод в программе для Win9x был реализован через DirectDraw, т.к. данный метод позволяет добиться наиболее рационального использования ресурсов, а так же осуществляет поддержку аппаратной реализации большинства из предоставляемых функций.

3. Руководство программиста

  1.  Особенности исполнения.

Для Win9x:

Программа при запуске устанавливает разрешение 800x600x16, создаёт экранный (первичный) и внеэкранный (вторичный) буфера (primary и back buffers), располагая их в видеопамяти. Все спрайты так же загружаются в видеопамять. Построение изображения путём копирования спрайтов во вторичный буфер, и генерация ландшафта в нём же. Затем функцией Flip() происходит обмен указателей на первичный и вторичный буфера синхронно с обратным ходом луча.   

Для DOS:

При запуске устанавливается разрешение 640x350x8, работа ведётся с двумя видеостраницами, переключение происходит при обратном ходе луча.

3.2 Критические участки

При отсутствии сообщений вызываются две основных функции:

– MoveFrame();

– ShowFrame();

MoveFrame() – в этой функции происходит расчёт всех необходимых параметров.

ShowFrame() производит генерацию изображения и вывод его на экран.

  1.  Текст программы

Т.к. текст программы занимает значительный объём, то имеет смысл привести только наиболее значимые участки:

Для Win9x:

Основной цикл WinMain:

...

while( msg.message != WM_QUIT )

   {

       if(PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ))

       {

                       TranslateMessage( &msg );

                       DispatchMessage( &msg );

       }

       else if(g_bReady)

               {

                       if(timeGetTime()-oldTime > g_time)

                       {

                               oldTime=timeGetTime();

                               MoveFrame();

                               ShowFrame(1);

                       }

       }

   }

...

Функция для расчёта взрывов:

VOID MoveSnow(SNOW *Snow)

{

Snow->x+=cos(Snow->tau)*Snow->speed;

Snow->y+=sin(Snow->tau)*Snow->speed;

Snow->y+=Snow->r/80;

Snow->r=sqrt((Snow->x-Snow->u)*(Snow->x-Snow->u)+(Snow->y-Snow->v)*(Snow->y-Snow->v));

Snow->t++;

Snow->type++;

if (Snow->type>Snow->change) {Snow->color=(int)(RandDouble*6); Snow->type=0;}

if (Snow->t>Snow->live)

{

 Snow->death=true;//ChangeSnow(Snow);

 CurN--;

}

}

Функция вывода на экран:

HRESULT ShowFrame(int k)

{

   if( lpPrimary == NULL) return E_FAIL;

// Очистка буфера

       DDBLTFX ddbltfx;

       ddbltfx.dwSize = sizeof(ddbltfx);

       ddbltfx.dwFillColor = 0x0000ff;

       lpBack->Blt(NULL,NULL,NULL,DDBLT_COLORFILL | DDBLT_WAIT,&ddbltfx);

// Копирование фейерверков

int stp=1, x1, x2, y1, y2, a, b, u1, u2, v1, v2;

for (i=0; i<SnowN; i++)

 if (!Snow[i].death)

 {

  x1=Snow[i].x;

  y1=Snow[i].y;

  snowrect.left=((int)(Snow[i].r/Snow[i].live*4))*10;

  snowrect.right=snowrect.left+10;

  snowrect.top=Snow[i].color*10;

  snowrect.bottom=snowrect.top+10;

  lpBack->BltFast(x1, y1, lpSnow, &snowrect,  DDBLTFAST_SRCCOLORKEY | DDBLTFAST_WAIT);

 }

// Обмен буферов

      lpPrimary->Flip( NULL, DDFLIP_WAIT );

      return DD_OK;

}

Для DOS

...

// Переключение страниц

    wait_direct();

    setvisualpage(1-frame);

    setactivepage(frame);

    frame=1-frame;

    wait_vertic();                     // ждем обратный ход луча

...

    

// отрисовка

...

4. Руководство пользователя

Для Win9x

При запуске программа переходит в полноэкранный режим. По нажатию клавиши «пробел» и левой кнопки мыши вызывается пауза. Скорость регулируется клавишами и . Выход из программы осуществляется по нажатию клавиши «ESC» или правой кнопки мыши.

Для DOS

Изменение скорости производится клавишами и . По нажатию клавиши «пробел» вызывается пауза. Выход из программы осуществляется по нажатию клавиши «ESC».

4.1 Минимальные системные требования:

Для DOS:

  •  процессор не ниже Intel 80286
  •  видеоадаптер EGA c 512кб памяти
  •  минимальный объем оперативной памяти 87 кБ

Для Win9x

  •  процессор не ниже Pentium Celeron 400MHz
  •  видеоадаптер SVGA c 4Mb памяти
  •  MS Windows 9x
  •  DirectX 6.0 или выше.

5. Литература

  1.  Нейбауер А. Програмирование на С++/Перевод с англ. – СПб: Питер, 1995. – 168с.
  2.  Шикин Е.В., Боресков А.В. Компьютерная графика. Динамика, реалистические изображения. – М.:Диалог – МИФИ, 1995.-288с.


 

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

52406. БЫТЬ ЧЕЛОВЕКОМ НА ЗЕМЛЕ 108.5 KB
  Ученик 1. Всем людям свойственно познавать самого себя и мыслить Гераклит Ученик 3. Декарт Ученик 4.Брехт Ученик 5.
52407. Економіко - географічне положення Чернігівської області, його вплив на господарську спеціалізацію. Природні умови та ресурси, їх оцінка 99 KB
  Мета: навчити давати характеристику ЕГП Чернігівської області; зясувати вплив ЕГП на господарську спеціалізацію області; показати особливості природних умов і ресурсів області; оцінити їх вплив на життя та діяльність населення; закріпити вміння і навички оцінювати ЕГП області природні умови і ресурси; продовжити формувати науковий світогляд учнів; визначити еколого географічне положення області екологічне виховання; ...
52408. Chernobyl Tragedy 76.5 KB
  On April 26, 1986, the number four reactor at the Chernobyl nuclear plant in the former Soviet Union exploded, causing the worst nuclear accident in history. Further explosions and the resulting fire released more than eight tons of highly radioactive fallout into the atmosphere. Nearly thirty to forty times more fallout was released than had been by the atomic bombings of Hiroshima and Nagasaki.
52409. Урок-змагання з теми “Черви” 89.5 KB
  Пояснення до уроку: Урок змагання передбачає роботу в групах, тому на попередньому уроці слід поділити клас на 4 рівноцінні групи-команди.Кожна команда вибирає собі капітана, назву команди та готує відповідні емблеми.
52410. Чесність та правдивість 41.5 KB
  Під час роздумів аналізу підвести дітей до висновків: будь-який обман із часом викривають і тому він не є виходом із критичної ситуації; неправда обман викликають негативні почуття та асоціації і тому компрометують того хто говорить неправду в очах інших; людина яка себе поважає не стане нікого обманювати. Проаналізувати типові ситуації коли учні говорять неправду знайти інший спосіб поведінки.Брехня або неправда підступна особа яка здатна замаскуватися під правду переконати людину що в даний момент саме вона брехня є...
52411. Честь, совість, гідність людини. Інтелігентність і порядність. Правда, хиба, істи 132.5 KB
  Честь совість гідність людини. Основою відношення людини до світу є визнана суспільством значущість ряду предметів та подій що служать певними суспільними взірцями мірами вимогами ідеалами. Істотна особливість таких уявлень полягає в тому що вони впливають на самопочування людини у світі людей зворушують почуття.
52412. The Chimes of Christmas Bells Once More... 63 KB
  Compere; December comes so white and cold With snow it stops the rain It comes to greet all young and old On every window pane. Compere Arid Christmas is here with us today, Let happy be the birth of Christ, For all the people all around He brought peace on the earth.
52414. Натуральные числа и действия с ними 90.5 KB
  Ход урока: Учитель поёт: И вот прозвенел как обычно звонок На наш не совсем уж обычный урок И всё на мгновение замерло – мы начинаем. Учитель: Добрый день рад видеть вас Посетивших пятый класс. Волшебство нам ни к чему Учитель: Объясните почему Головня: Потому что можем сами Учитель: То есть сами вы с усами Головня: Можем трактовать и так: Математика – пустяк Учитель: Значит я умою руки И сейчас усну со скуки Хараберюш: Не придётся Вам уснуть Отправляемся мы в путь По тропинкам повторенья Повторенье –...