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


 

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

30917. Гомеостатические функции почек 26.5 KB
  поддержание осмотического давления крови за счет уровня глюкозы аминокислот липидов гормонов в ней 4. поддержание ионного состава крови 5.регуляция кислотнощелочного баланса рН мочи от 45 до 84 тогда как рН крови постоянная 6. удаление из крови чужеродных соединений и нейтрализация токсических веществ 9.
30918. Выделительная функция почек. Механизмы образования первичной мочи 25 KB
  Ряд веществ находящихся в плазме крови в норме отсутствуют во вторичной моче. Другие вещества находятся во вторичной моче в концентрациях значительно превышающие таковые в плазме крови. Некоторые соли выводятся в концентрациях близких или равных таковым в крови. Клубочковая фильтрация процесс фильтрации из плазмы крови протекающей через капилляры клубочка в полость капсулы почечного клубочка воды и растворенных в плазме веществ за исключением крупномолекулярных соединений.
30919. Выделительная функция почек. Образование конечной (вторичной) мочи 44.5 KB
  Канальцевая реабсорбция. Канальцевая реабсорбция процесс обратного всасывания воды и ряда растворенных в ней веществ. Реабсорбция подразделяется на облигатную обязательную и факультативную не обязательную зависящую от функционального состояния проницаемости стенки канальцев скорости движения жидкости по канальцам величине осмотического градиента. Канальцевая реабсорбция обеспечивается: 1.
30920. Регуляция функции почек 25.5 KB
  Нервная же система может вызвать болевую анурию при болевых раздражениях выброс АДГ усиливается. В нормальных условиях на клубочковую фильтрацию не влияет но усиливает обратное всасывание воды тем самым уменьшает диурез. Альдостерон гормон коркового вещества надпочечников N сберегающий гормон усиливает реабсорцию натрия в проксимальных канальцах усиливает секрецию К в дистальных канальцах. Паратгормон влияет на проксимальные и дистальные канальцы усиливает реабсорбцию Са2 снижает канальцевую реабсорбцию...
30921. Водный баланс 33.5 KB
  Водный баланс односолевой баланс обеспечивается совокупностью процессов поступления воды и электролитов в организм распределения их во внутренней среде и выделения из организма. Водный баланс равенство объемов выделяющейся из организма и поступающей за сутки воды. Общее количество воды в организме 4470 массы тела примерно 3842 литра. Уменьшение воды: а с возрастом б у женщин в при ожирении Н2О в организме образует водные пространства: 1.
30922. Особенности организации и функционирования спинного мозга 37 KB
  Особенности организации и функционирования спинного мозга Спинной мозг Самое древнее образование ЦНС подчиняется всем вышележащим отделам ЦНС. Центры спинного мозга не обладают автоматией дыхание. Для спинного мозга характерно сегментарное строение. Дорсальные корешки спинного мозга образованы чувствительными отростками афферентных нейронов вентральные корешки образованы двигательными отростками мотонейронов и преганглионарными волокнами вегетативной нервной системы.
30923. Ретикулярная формация 35.5 KB
  Нисходящее тормозящее влияние на спинной мозг 2. Восходящее активирующее влияние на кору больших полушарий. Нисходящее ретикулоспинальное влияние РФ: Слабое одностороннее раздражение торможение на той же стороне. Восходящее ретикулокортикальное влияние РФ: Особенности восходящего влияния РФ: 1.
30924. Кора больших полушарий 41.5 KB
  Нейроны коры не имеют непосредственной связи с внешней или внутренней средой т. Методы изучения функций коры больших полушарий: 1. Человек аненцефал врожденное отсутствие коры БП. Отсутствие коры больших полушарий у человека несовместимо с жизнью.
30925. Межполушарные взаимоотношения 27.5 KB
  Абстрактное мышление и сознание связаны с левым полушарием а конкретно чувственное мышление с правым полушарием. А Правое полушарие осуществляет обработку всей поступившей информации одновременно синтетически по принципу дедукции при этом лучше воспринимаются пространственные и относительные признаки предмета; Б Левое полушарие проводит обработку поступившей информации последовательно аналитически по принципу индукции лучше воспринимаются абсолютные признаки предмета и временные отношения. А Правое полушарие обуславливает более...