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


 

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

25399. Рынок труда, занятость и безработица: понятия, виды и основные характеристики 24.08 KB
  В научной литературе сложилось три подхода к определению рынка труда: В узком смысле рынок труда РТ это спрос и предложение рабочей силы которое за счет этих двух составляющих обеспечивает размещение рабочих мест. В рамках этого подхода раскрывается основа механизма рынка труда взаимодействия спроса и предложения. Это определение не учитывает такие аспекты как подготовка кадров мотивация труда и т.
25401. Технологии работы службы занятости 52.5 KB
  Технологии работы службы занятости. регистрация в целях поиска подходящей работы; 3. Кроме того граждане имеют право получить следующую информацию: о состоянии рынка труда; о наличии вакантных мест об оплате и других условиях труда с целью выбора работы; о возможностях профессиональной подготовки переподготовки повышения квалификации; о порядке и условиях регистрации в целях поиска подходящей работы регистрации и перерегистрации в качестве безработных; о правах и ответственности в области занятости населения и защиты от...
25402. Психосоциальная работа и ее роль в системе социальной работы. Основные психосоциальные технологии, используемые в деятельности специалиста по социальной работе 47.5 KB
  Психосоциальная работа и ее роль в системе социальной работы. на стыке социальной работы и практической психологии возникла новая отрасль психосоциальная работа задача которой преодоление социальной дезадаптации человека оздоровление межличностных отношений в профессиональной и семейнобытовой сферах. В центре внимания психосоциальной работы находится психика человека которая обобщенно понимается как система управления индивидуальной жизнью и поведением то есть жизнедеятельностью. Центральный тезис психосоциальной работы здоровая...
25403. Место, роль и виды педагогической деятельности в системе социальной работы 26.5 KB
  Место роль и виды педагогической деятельности в системе социальной работы. Содержание деятельности специалиста по социальной работе охватывает широкий круг вопросов от адресной помощи клиенту в преодолении трудных ситуаций восстановлении и сохранении физических и душевных сил до обучения социальным навыкам формирования умений самостоятельно решать проблемы ставить и достигать цели оказывать поддержку не только взрослым но и детям. Взаимосвязь педагогики и социальной работы поразному трактуется в отечественной и зарубежной литературе....
25404. Медико-социальная работа 44.5 KB
  Медикосоциальная работа принципиально изменяет характер комплексной помощи в сфере охраны здоровья предполагая системные медикосоциальные воздействия на более ранних этапах развития болезни и социальной дезадаптации являющихся потенциальными причинами тяжелых осложнений инвалидности и летального исхода. Цель медикосоциальной работы достижение максимально возможного уровня здоровья функционирования и адаптации лиц с физической и психической патологией а также неблагополучных в социальном плане. Объекты медикосоциальной работы ...
25406. Этнографические аспекты социальной работы 18.08 KB
  Этнографические аспекты социальной работы. В Российской Федерации проживают разные этнические группы отличающиеся не только по внешним признакам но и по многим другим особенностям: конфессиональной принадлежности менталитету языку обычаям традициям а следовательно и профессиональная среда социальной работы полиэтнична что требует от специалиста по социальной работе определенной подготовки а именно этнокультурной компетентности. Кроме того изучением этносов занимается этнология наука изучающая процессы формирования и развития...
25407. Демографические аспекты в социальной работе 66 KB
  Состав населения это распределение людей образующих население по группам в соответствии со значениями того или иного признака и по любому другому признаку по полу возрасту и т. На сегодняшний день численность населения в мире составляет более 6 млрд. причем городского населения 381900чел. Предмет демографии был определен учеными в XX веке 90х годов которым является воспроизводство населения т.