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


 

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

28532. Выработка имитовставки к массиву данных 15.64 KB
  Ранее мы обсудили влияние искажения шифрованных данных на соответствующие открытые данные. Мы установили что при расшифровании в режиме простой замены соответствующий блок открытых данных оказывается искаженным непредсказуемым образом а при расшифровании блока в режиме гаммирования изменения предсказуемы. Означает ли это что с точки зрения защиты от навязывания ложных данных режим гаммирования является плохим а режимы простой замены и гаммирования с обратной связью хорошими Ни в коем случае.
28533. Криптографические средства 24 KB
  Они имеют своей задачей защиту информации при передаче по линиям связи хранении на магнитных носителях а так же препятствуют вводу ложной информации имитостойкость. Основные задачи криптографии Криптографические методы защиты информации используются как самостоятельно так и в качестве вспомогательного средства для решения задач не имеющих на первый взгляд отношения к криптографии. Интересы криптографии сосредоточены на двух задачах: обеспечение конфиденциальности при хранении и передаче информации когда никто кроме владельца...
28534. Характер криптографической деятельности 68.5 KB
  Вместе с тем большую если не центральную роль в защите информации играет ранее сверх засекреченная область деятельности криптография. Криптография в переводе с греческого означает тайнопись как систему изменения правил написания текстов с целью сделать эти тексты непонятными для непосвященных лиц не путать с тайнописью основанной на сокрытии самого факта написания текста например симпатическими чернилами и т. Шифровались религиозные тексты прорицания жрецов медицинские рецепты использовалась криптография и в государственной сфере....
28535. Защита данных с помощью шифрования 44.5 KB
  Защита данных с помощью шифрования одно из возможных решений проблемы безопасности. Зашифрованные данные становятся доступными только тем кто знает как их расшифровать и поэтому похищение зашифрованных данных абсолютно бессмысленно для несанкционированных пользователей. Основные направления использования криптографических методов передача конфиденциальной информации по каналам связи например электронная почта установление подлинности передаваемых сообщений хранение информации документов баз данных на носителях в...
28536. Требования к криптосистемам 29 KB
  Независимо от способа реализации для современных криптографических систем защиты информации сформулированы следующие общепринятые требования: стойкость шифра противостоять криптоанализу должна быть такой чтобы вскрытие его могло быть осуществлено только решением задачи полного перебора ключей и должно либо выходить за пределы возможностей современных компьютеров с учетом возможности организации сетевых вычислений или требовать создания использования дорогих вычислительных систем; криптостойкость обеспечивается не секретностью...
28537. Имитостойкость и помехоустойчивость шифров 13.41 KB
  Они имеют своей задачей защиту информации при передаче по линиям связи хранении на магнитных носителях а так же препятствуют вводу ложной информации имитостойкость. Различают стойкость ключа сложность раскрытия ключа наилучшим известным алгоритмом стойкость бесключевого чтения имитостойкость сложность навязывания ложной информации наилучшим известным алгоритмом и вероятность навязывания ложной информации. Аналогично можно различать стойкость собственно криптоалгоритма стойкость протокола стойкость алгоритма генерации и...
28538. КРАТКИЕ СВЕДЕНИЯ О КРИПТОАНАЛИЗЕ 39.5 KB
  Нарушителю доступны все зашифрованные тексты. Нарушитель может иметь доступ к некоторым исходным текстам для которых известны соответствующие им зашифрованные тексты. Его применение осложнено тем что в реальных криптосистемах информация перед шифрованием подвергается сжатию превращая исходный текст в случайную последовательность символов или в случае гаммирования используются псевдослучайные последовательности большой длины. Дифференциальный или разностный криптоанализ основан на анализе зависимости изменения шифрованного текста...
28539. Получение случайных чисел 45 KB
  Последовательности случайных чисел найденные алгоритмически на самом деле не являются случайными т. Однако при решении практических задач программно получаемую последовательность часто все же можно рассматривать как случайную при условии что объем выборки случайных чисел не слишком велик. В связи с этим для случайных чисел найденных программным путем часто применяют название псевдослучайные числа.
28540. Теоретико-информационный подход к оценке криптостойкости шифров 50.63 KB
  Начнем с описания модели вскрытия секретного ключа.Из этой модели в частности следует что сегодня надежными могут считаться симметричные алгоритмы с длиной ключа не менее 80 битов. необходимого для взлома симметричного алгоритма с различной длиной ключа. Тот факт что вычислительная мощность которая может быть привлечена к криптографической атаке за 10 лет выросла в 1000 раз означает необходимость увеличения за тот же промежуток времени минимального размера симметричного ключа и асимметричного ключа соответственно примерно на 10 и 20...