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


 

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

23577. История языкознания: Учебное пособие для cтудентов старших курсов и аспирантов 1.4 MB
  Здесь даны очерки посвящённые истории формирования и развития самобытной лингвистической мысли в государствах Востока и в странах Западного мира где лингвистическая традиция сложилась на основе грекоримских идей по философии языка и грамматике. Читатель обратит внимание на то что становление и развитие языкознания в восточных и западных культурных ареалах шло во многом своими путями отражая особенности как своих языков так и своих культур и что лишь в последние одиндва века наблюдается переориентация ряда восточных школ на европейские...
23578. Плезиохронная цифровая иерархия 32.5 KB
  Технологии передачи информационного сигнала развивались параллельно с развитием телефонных сетей. Постоянно растущее число пользователей и рост телефонного трафика привел к появлению систем мультиплексирования сигналов с разделением по частоте
23579. Отсутствующая структура Введение в семиологию 2.96 MB
  Код [2. Коды и лексикоды [2. Коды и их модификации [2. Кодифицируемость уровней [2.
23580. Россия в метафорическом зеркале: когнитивное исследование политической метафоры 1.25 MB
  Чудинов Россия в метафорическом зеркале: когнитивное исследование политической метафоры 1991 2000 УДК 408. Ч84 Россия в метафорическом зеркале: Когнитивное исследование политической метафоры 1991 2000: Монография Урал. ISBN 5718602778 Монография посвящена исследованию закономерностей моделирования образа современной России в зеркале концептуальной метафоры в котором вне зависимости от чьихлибо симпатий и антипатий достаточно объективно фиксируется подлинная картина национального самосознания в котором отражаются как традиционные...
23581. Семиосфера. Культура и взрыв Внутри мыслящих миров 5.53 MB
  ЛОТМАН Семиосфера Культура и взрыв Внутри мыслящих миров Статьи Исследования Заметки СанктПетербург ИскусствоСПБ О метаязыке типологических описаний культуры О семиотическом механизме культуры Миф имя культура Культура как коллективный интеллект и проблемы искусственного разума Феномен культуры Технический прогресс как культурологическая проблема Культура как субъект и самасебе объект О семиотике понятий стыд и страх в механизме культуры Память в культурологическом освещении [1] Содержание [2] Люди и знаки1 [3] Культура и взрыв...
23582. Язык и межкультурная коммуникация 1.96 MB
  Язык культура и культурная антропология 8 3. Межкулътурная коммуникация и изучение иностранных языков 14 5. Роль сопоставления языков и культур для наиболее полного раскрытия их сущности 19 Часть I. Язык как зеркало культуры 21 Глава 1.
23583. ЯЗЫК И БЕССОЗНАТЕЛЬНОЕ 2.05 MB
  Тексты собранные в книге последовательно представляют анализы общей проблематики бессознательного лингвистической структурированности афатических расстройств речи ребенка поэтической речи проблем семиотики структур языка как такового и его наименьшей смысловой единицы фонемы. Хайдеггером и наоборот спор Хайдеггера с семиотическим представлением языка встречи с Жаком Лаканом совершенно поновому осмыслившем 5 наследие Фрейда проштудировавшем и Хайдеггера и Якобсона вес это тот новый круг внутри которого вновь и вновь можно...
23584. ВЕЩЬ И ИМЯ 697.22 KB
  И физическая материя кресла и его отвлеченная идея не суть вещи реального обихода но исключительно предмет мыслительных операций. А вот помоему имя вовсе не есть звук имя вещи есть сила самой вещи. Поэтому я прямо утверждаю что имя неотделимо от вещи что оно есть оформление самой вещи в ее объективном существовании. Получается типичный для всякой абстрактной метафизики дуализм: вещи сами по себе без всякого имени а имена наши субъективные звуки сами по себе.
23585. ВЫСКАЗЫВАНИЯ, ЭКСПЛИЦИРУЮЩИЕ УСТАНОВКУ НА РАЗЛИЧНЫЕ СТОРОНЫ ЛИЧНОСТИ АДРЕСАТА - (лингвистический и философско-антропологический аспекты) 1.74 MB
  Близки к высказываниям подобным примеру 9 Ассертивы оценивающие знания собеседника вообще его эрудицию уровень образования начитанность: You know more than you think.Волошинова посвященные философии языкознания и Теория речи и языка английского исследователя А.Серля для директявов следующие: 1па speaker is not interested говорящий Нб Заинтересован е совершении действия; Benfaavoid Dh benefit for the _ польза слушающего Б ТОМhearer is in avoiding danger чтобы избежать опасности; KsDh speaker'...