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с.


 

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

67128. Информационное общество и информационная культура 38 KB
  Информационное общество – термин введен американским экономистом Машлуп. Работа вышла в 1962 году – «Производство и распространение знаний в США». Начинает рассматривать информационную концепцию. Он делал акцент на степени развития информационных технологий...
67129. ФОРМЫ ГОСУДАРСТВА 147 KB
  Категория формы государства показывает особенности внутренней организации государства порядок образования и структуру органов государственной власти специфику их территориальной обособленности характер взаимоотношения друг с другом и населением а также те методы которые используются...
67130. ОСТАНОВКА КРОВОТЕЧЕНИЯ. ОСТРАЯ КРОВОПОТЕРЯ 308.5 KB
  Кровотечением называется вытекание крови из кровеносных сосудов при нарушении целостности их стенки в ткани полости организма во внешнюю среду. В силу большого давления крови кровотечение самостоятельно не останавливается.
67131. Розвиток культури у другій половині XVII - ХVІІІ ст. Доба бароко та її особливості в Україні. Козацтво як явище соціально-політичної історії та культури українського народу 281.5 KB
  Барокова архітектура. Таке розуміння філософії акцентуація уваги на проблемі людина і Всесвіт що як уже згадувалося притаманне філософській думці доби Бароко визначає вагоме місце яке посідає в системі поглядів києвомогилянців натурфілософська проблематика.
67132. Товар и товарная политика в маркетинге. Классификация товаров промышленного назначения 74.5 KB
  Концепция жизненного цикла товара Смысл концепции жизненного цикла товара ЖЦТ заключается в том что каждый товар имеет определенный период рыночной устойчивости т. Графически жизненный цикл товара можно описать в виде кривой рис. Кривая жизненного цикла товара Как правило жизненный цикл товара...
67133. Поняття про функції - «друзі» класу 78.5 KB
  Технологія об'єктно-орієнтованого програмування дає змогу організувати доступ до закритих членів класу функціями, які не є його членами. Для цього достатньо оголосити ці функції дружніми до цього класу. Щоб зробити функцію “другом” класу, потрібно помістити її прототип в public-розділ оголошення класу і попередити його ключовим словом friend.
67134. Английская журналистика XIX века 32 KB
  В конце 19 века происходит разделение прессы на элитарную и массовую. В начале 19 века были самые различные налоги поэтому тираж у газет был небольшой и цена таких экземпляров была достаточно большой. К началу 20 века 3367 наименований газет и журналов.
67135. Пьер де Ронсар, Луис де Камоэнс, Уильям Шекспир 42.5 KB
  Первым начали использовать стихию народного языка для обогащения поэтики. Уже в следующем веке слава его начинает меркнуть. Очень нелицеприятного откликались о нем классицисты 19 века, его стихам не хватало стройности и порядочности. Эта эстетика не соответствовала духу его поэзии.
67136. Русская культура на переходе от средневековья к новому времени 32 KB
  Примечательно что в 17 веком появляется обличение лени пассивности уже приветствуется динамизм умение приспособиться к изменениям нового времени. Изменения этого времени было уже нельзя предотвратить. Это переходная эпоха к новому времени.