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


 

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

33625. МЕЖСЕТЕВОЙ ЭКРАН 79.5 KB
  Как правило эта граница проводится между локальной сетью предприятия и INTERNET хотя ее можно провести и внутри локальной сети предприятия. Возможности брандмауэра: 1Защита от уязвимых мест в службах Брандмауэр может значительно повысить сетевую безопасность и уменьшить риски для хостов в подсети путем фильтрации небезопасных по своей природе служб. Например брандмауэр может запретить чтобы такие уязвимые службы как NFS не использовались за пределами этой подсети. Это позволяет защититься от использования этих служб атакующими из...
33626. Многоагентные системы защиты 54 KB
  Многоагентные системы защиты Наиболее наглядной и удобно разрабатываемой является модель в основе которой лежит архитектура базовых агентов многоагентной системы защиты ВС. Многоагентная система сложная система в которой функционируют два или более интеллектуальных агентов. Под агентом понимается самостоятельная интеллектуальная аппаратнопрограммная система которая обладает рядом знаний о себе и окружающем мире и поведение которой определяется этими знаниями. Таким образом компоненты системы зищиты агенты защиты представляют собой...
33627. Формирование вариантов модели систем безопасности СОИ АСУП 50.5 KB
  Поскольку защита данных непосредственно связана с программными и аппаратными средствами защиты данных передачи и хранения то с учетом этого предлагается представлять объекты защиты в виде совокупности этих средств. Таким образом обеспечивается возможность детального определения объектов защиты для каждого типа защищаемых данных. Такой подход обеспечивает возможность выполнения анализа требований защиты данных с учетом различных источников и типов угроз. Для оценки величины возможного ущерба и определения степени внимания которое необходимо...
33628. Обобщенная модель системы безопасности сетей передачи данных 46.5 KB
  Обобщенная модель системы безопасности сетей передачи данных Рассматриваемая модель предполагает что функционирование системы безопасности происходит в среде которую можно представить кортежем 1.1 где {Пс} множество неуправляемых параметров внешней среды оказывающих влияние на функционирование сети; {Пу} множество внутренних параметров сети и системы безопасности которыми можно управлять непосредственно в процессе обработки защищаемых данных; {Пв} множество внутренних параметров сети не поддающихся...
33629. Мандатная модель 31 KB
  Модели механизмов обеспечения целостности данных Модель Биба Рассматриваемая модель основана на принципах которые сохраняют целостность данных путем предотвращения поступления данных с низким уровнем целостности к объектам с высоким уровнем целостности. Уровень целостности согласно. субъектам запрещено чтение данных из объекта с более низким уровнем целостности; нет записи наверх т. субъектам запрещено запись данных в объект с более высоким уровнем целостности.
33630. Модель Харрисона-Руззо-Ульмана (матричная модель) 32 KB
  Модель ХаррисонаРуззоУльмана матричная модель Модель матрицы права доступа предполагает что состояние разрешения определено используя матрицу соотносящую субъекты объекты и разрешения принадлежащие каждой теме на каждом объекте. Состояние разрешения описано тройкой Q = S О А где S множество субъектов 0 множество объектов А матрица права доступа. Вход s о содержит режимы доступа для которых субъект S разрешается на объекте о. Множество режимов доступа зависит от типа рассматриваемых объектов и функциональных...
33631. Многоуровневые модели 31.5 KB
  К режимам доступа относятся: чтение запись конкатенирование выполнение.7 где b текущее множество доступа. Это множество составлено из троек формы субъект объект режим доступа. Тройка s о т в b указывает что субъект s имеет текущий доступ к объекту о в режиме т; М матрица прав доступа аналогичная матрице прав доступа в модели ХаррисонаРуззоУльмана; f функция уровня которая связывается с каждым субъектом и объектом в системе как уровень их защиты.
33632. Графические модели 44 KB
  Графические модели сети Петри которые позволяют построить модели дискретных систем. Определение: Сеть Петри это набор N =STFWM0 где S непустое множество элементов сети называемое позициями T непустое множество элементов сети называемое переходами отношение инцидентности а W и M0 две функции называемые соответственно кратностью дуг и начальной разметкой. Если п 1 то в графическом представлении сети число n выписывается рядом с короткой чертой пересекающей дугу. Часто такая дуга будет также заменяться пучком из п...
33633. Построение модели систем защиты на базе Е-сетей на основе выделенного набора правил фильтрации 78 KB
  2 Переходы: d3 = XEâr3 p1 p2 p3 t3 установление соединения проверка пароля и имени пользователя для доступа к внутренней сети подсети; d4 = XEâr4 p2 p4 р5 0 подсчет попыток ввода пароля и имени; d5 = Tp4 p6 0 вывод сообщения о неверном вводе пароля и имени; d6 = Tp1 p6 0 передача пакета для повторной аутентификации и идентификации; d7 = Tp5 p7 t4 создание соответствующей записи в журнале учета и регистрации. 3 Решающие позиции: r3 проверка пароля и имени пользователя; r4 ...