Разработка программы, реализующей алгоритм, который использует z-буфер
Осуществление работы разрабатываемой программы на основе алгоритма, использующего Z-буфер. Аналитическое описание программной реализации. Алгоритмы основных функций программы. Содержание руководства пользователя. Файлы программы, пункты главного меню.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 15.04.2015 |
Размер файла | 1,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
}
void vvod_A ()
{
clearviewport ();
setbkcolor (0);
ramka ();
vyvod_dannyh ();
setcolor (WHITE);
perenos_kubik (-10,0,0);
if (model==1)
{
draw_kubik ();
setcolor (6);
draw_piramida ();
}
if (model==2)
z_buffer ();
if (model==3)
z_buffer2 ();
osi ();
knopki ();
}
void vvod_W ()
{
clearviewport ();
setbkcolor (0);
ramka ();
vyvod_dannyh ();
setcolor (WHITE);
perenos_kubik (0,10,0);
if (model==1)
{
draw_kubik ();
setcolor (6);
draw_piramida ();
}
if (model==2)
z_buffer ();
if (model==3)
z_buffer2 ();
osi ();
knopki ();
}
void vvod_S ()
{
clearviewport ();
setbkcolor (0);
ramka ();
vyvod_dannyh ();
setcolor (WHITE);
perenos_kubik (0,-10,0);
if (model==1)
{
draw_kubik ();
setcolor (6);
draw_piramida ();
}
if (model==2)
z_buffer ();
if (model==3)
z_buffer2 ();
osi ();
knopki ();
}
void vvod_Q ()
{
clearviewport ();
setbkcolor (0);
ramka ();
vyvod_dannyh ();
setcolor (WHITE);
perenos_kubik (0,0,10);
if (model==1)
{
draw_kubik ();
setcolor (6);
draw_piramida ();
}
if (model==2)
z_buffer ();
if (model==3)
z_buffer2 ();
osi ();
knopki ();
}
void vvod_E ()
{
clearviewport ();
setbkcolor (0);
ramka ();
vyvod_dannyh ();
setcolor (WHITE);
perenos_kubik (0,0,-10);
if (model==1)
{
draw_kubik ();
setcolor (6);
draw_piramida ();
}
if (model==2)
z_buffer ();
if (model==3)
z_buffer2 ();
osi ();
knopki ();
}
void vvod_O ()
{
clearviewport ();
setbkcolor (0);
ramka ();
vyvod_dannyh ();
setcolor (WHITE);
fi=minus (fi);
if (model==1)
{
draw_kubik ();
setcolor (6);
draw_piramida ();
}
if (model==2)
z_buffer ();
if (model==3)
z_buffer2 ();
osi ();
knopki ();
}
void vvod_K ()
{
clearviewport ();
setbkcolor (0);
ramka ();
vyvod_dannyh ();
setcolor (WHITE);
te=minus (te);
if (model==1)
{
draw_kubik ();
setcolor (6);
draw_piramida ();
}
if (model==2)
z_buffer ();
if (model==3)
z_buffer2 ();
osi ();
knopki ();
}
void vvod_N ()
{
clearviewport ();
setbkcolor (0);
ramka ();
vyvod_dannyh ();
setcolor (WHITE);
ro=minus (ro);
if (model==1)
{
draw_kubik ();
setcolor (6);
draw_piramida ();
}
if (model==2)
z_buffer ();
if (model==3)
z_buffer2 ();
osi ();
knopki ();
}
void vvod_P ()
{
clearviewport ();
setbkcolor (0);
ramka ();
vyvod_dannyh ();
setcolor (WHITE);
fi=plus (fi);
if (model==1)
{
draw_kubik ();
setcolor (6);
draw_piramida ();
}
if (model==2)
z_buffer ();
if (model==3)
z_buffer2 ();
osi ();
knopki ();
}
void vvod_L ()
{
clearviewport ();
setbkcolor (0);
ramka ();
vyvod_dannyh ();
setcolor (WHITE);
te=plus (te);
if (model==1)
{
draw_kubik ();
setcolor (6);
draw_piramida ();
}
if (model==2)
z_buffer ();
if (model==3)
z_buffer2 ();
osi ();
knopki ();
}
void vvod_M ()
{
clearviewport ();
setbkcolor (0);
ramka ();
vyvod_dannyh ();
setcolor (WHITE);
ro=plus (ro);
if (model==1)
{
draw_kubik ();
setcolor (6);
draw_piramida ();
}
if (model==2)
z_buffer ();
if (model==3)
z_buffer2 ();
osi ();
knopki ();
}
void vvod_R ()
{
clearviewport ();
setbkcolor (0);
ramka ();
vyvod_dannyh ();
setcolor (WHITE);
rotate_vector_piramida (te);
if (model==1)
{
draw_kubik ();
setcolor (6);
draw_piramida ();
}
if (model==2)
z_buffer ();
if (model==3)
z_buffer2 ();
osi ();
knopki ();
}
void vvod_vector ()
{
clrscr ();
clearviewport ();
setbkcolor (0);
setcolor (5);
settextstyle (5,0,4);
int i = 0;
float x=0;
outtextxy (0,0,"Vvedite koordinaty 1 tochki vectora");
cout<< endl << endl << endl <<"x=";
cin >> x;
xvectw_piramida [i] =x;
cout<< endl <<"y=";
cin >> x;
yvectw_piramida [i] =x;
cout<< endl <<"z=";
cin >> x;
zvectw_piramida [i] =x;
i++;
outtextxy (0,100,"Vvedite koordinaty 2 tochki vectora");
cout<< endl << endl << endl <<"x=";
cin >> x;
xvectw_piramida [i] =x;
cout<< endl <<"y=";
cin >> x;
yvectw_piramida [i] =x;
cout<< endl <<"z=";
cin >> x;
zvectw_piramida [i] =x;
getchar ();
}
// ________________________________________________________
// -----------------------------------Glavnay funkciya-----------------------------
void main ()
{int g=EGA,gmode=EGAHI;
initgraph (&g,&gmode,"C: \\borlandc\\bgi");
fi = ( (atan (1) /45.0) *fi);
te = ( (atan (1) /45.0) *te);
al = ( (atan (1) /45.0) *30);
int pr = 0;
menu ();
m: menu1 ();
switch (getch ())
{
case '1': vvod (); pr=1; goto m;
case '2': pr++; menucamera (); goto m;
case '3': pr++; vvod_vector (); goto m;
case '4': pr++; selectmodel (); goto m;
case '5': if (pr! =4)
{
clearviewport ();
setbkcolor (0);
setcolor (5);
settextstyle (10,0,1);
outtextxy (100,150,"Dlya na4ala sleduet vvesti dannye!");
getch ();
goto m;
}
clearviewport ();
setbkcolor (0);
init_kubik ();
init_piramida ();
setcolor (0);
x1=150; y1=150;
if (model==1)
{
clearviewport ();
setbkcolor (0);
ramka ();
vyvod_dannyh ();
setcolor (WHITE);
draw_kubik ();
setcolor (6);
draw_piramida ();
osi ();
knopki ();
m2: switch (getch ())
{
case 'd': vvod_D (); goto m2;
case 'a': vvod_A (); goto m2;
case 'w': vvod_W (); goto m2;
case 's': vvod_S (); goto m2;
case 'q': vvod_Q (); goto m2;
case 'e': vvod_E (); goto m2;
case 'r': vvod_R (); goto m2;
case 'o': vvod_O (); goto m2;
case 'p': vvod_P (); goto m2;
case 'k': vvod_K (); goto m2;
case 'l': vvod_L (); goto m2;
case 'n': vvod_N (); goto m2;
case 'm': vvod_M (); goto m2;
case 27: goto m;
}
getch ();
}
if (model==2)
{
x1=35; y1=35;
clearviewport ();
setbkcolor (0);
ramka ();
vyvod_dannyh ();
setcolor (5);
osi ();
knopki ();
z_buffer ();
m3: switch (getch ())
{
case 'd': vvod_D (); goto m3;
case 'a': vvod_A (); goto m3;
case 'w': vvod_W (); goto m3;
case 's': vvod_S (); goto m3;
case 'q': vvod_Q (); goto m3;
case 'e': vvod_E (); goto m3;
case 'r': vvod_R (); goto m3;
case 'o': vvod_O (); goto m3;
case 'p': vvod_P (); goto m3;
case 'k': vvod_K (); goto m3;
case 'l': vvod_L (); goto m3;
case 'n': vvod_N (); goto m3;
case 'm': vvod_M (); goto m3;
case 27: goto m;
}
}
if (model==3)
{
x1=35; y1=35;
clearviewport ();
ramka ();
vyvod_dannyh ();
setbkcolor (0);
setcolor (WHITE);
z_buffer2 ();
osi ();
knopki ();
m4: switch (getch ())
{
case 'd': vvod_D (); goto m4;
case 'a': vvod_A (); goto m4;
case 'w': vvod_W (); goto m4;
case 's': vvod_S (); goto m4;
case 'q': vvod_Q (); goto m4;
case 'e': vvod_E (); goto m4;
case 'r': vvod_R (); goto m4;
case 'o': vvod_O (); goto m4;
case 'p': vvod_P (); goto m4;
case 'k': vvod_K (); goto m4;
case 'l': vvod_L (); goto m4;
case 'n': vvod_N (); goto m4;
case 'm': vvod_M (); goto m4;
case 27: goto m;
}
getch ();
}
getch ();
goto m;
case 27: exit (0);
default: goto m;
}
getch ();
}
Приложение 2
Графические результаты работы программы.
Размещено на Allbest.ru
Подобные документы
Определение необходимых модулей программы, структуры файла базы данных. Описание разработки программы, отладка и тестирование. Разработка приложения Organizer.exe, меню и руководство пользователя. Алгоритм обработки событий главного меню (расписания).
курсовая работа [901,8 K], добавлен 11.02.2014Разработка программы на языке Turbo Pascal, обеспечивающей работу пользователя в диалоговом режиме с возможностью выбора функций с помощью одноуровневого меню вертикального типа. Блок-схема и листинг программы, описание руководства пользователя.
курсовая работа [1,5 M], добавлен 17.03.2014Разработка алгоритма решения задачи численного интегрирования методом трапеции. Словесное описание и блок-схема разработанного алгоритма программы. Описание интерфейса, главного окна и основных форм программы. Проверка работоспособности программы.
курсовая работа [1,4 M], добавлен 16.03.2012Определение назначения и описание функций дискового кэша как промежуточного буфера с быстрым доступом к информации. Процесс кэширования внешних накопителей. Построение алгоритма, описание интерфейса и разработка программы для работы с двусвязным списком.
курсовая работа [2,1 M], добавлен 21.01.2014Сущность понятия "код блюда". Алгоритмы обучения и использования программы. Логика работы программы. Общий интерфейс программы. Последовательность обучения программе Lota+. Интерфейс программы в момент выбора параметров и получения общего результата.
курсовая работа [563,6 K], добавлен 01.12.2009Разработка программы проверки знаний для тестирования студентов по программированию с кодом на языке Delphi. Проектирование визуального интерфейса и словесный алгоритм работы программы. Алгоритмы разработанных процедур и функций, инструкция пользователя.
курсовая работа [506,5 K], добавлен 21.02.2011Написание программы, реализующей алгоритм RLE, позволяющий кодировать, декодировать файлы любого формата и размера, предоставлять пользователю информацию о степени их сжатия. Анализ эффективности кода. Экспериментальная оценка алгоритма программы.
контрольная работа [151,7 K], добавлен 29.05.2013Особенность разработки алгоритмов для базы данных "Поэты". Анализ реализации анимации с помощью многофункциональной кроссплатформенной библиотеки SFML. Характеристика схемы алгоритма работы меню. Осуществление запуска программы через VisualStudio.
курсовая работа [4,4 M], добавлен 10.05.2019Создание программы, реализующей игру "Линии". Среда разработки программы, описание ее общего вида. Основные алгоритмы программы. Реализация программы в среде разработки Microsoft Visual Studio 2008 на языке объектно-ориентированного программирования С++.
курсовая работа [639,0 K], добавлен 16.03.2012Преобразование матрицы по заданным правилам. Методика работы с массивами, основанная на классических алгоритмах. Разработка и описание блок-схемы алгоритма. Листинг программы, экраны работы и отладки программы. Инструкция для пользователей программы.
контрольная работа [338,4 K], добавлен 29.01.2013