Разработка программы создания виртуальной фотогалереи

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

//левая стенаd (19.0, 0.0); glVertex3f (-12, 12.0, 0);d (19.0, 5.0); glVertex3f (-12.0, 12.0, 5);d (0.0, 5.0); glVertex3f (-12.0, -7.0, 5);d (0.0, 0.0); glVertex3f (-12.0, -7.0, 0);;(GL_QUADS);f(1, 0, 1); //левая стенаd (4.0, 0.0); glVertex3f (-12, -7.0, 0);d (4.0, 1.0); glVertex3f (-12.0, -7.0, 1);d (0.0, 1.0); glVertex3f (-12.0, -11.0, 1);d (0.0, 0.0); glVertex3f (-12.0, -11.0, 0);;(GL_QUADS);f(1, 0, 1); //левая стенаd (1.0, 0.0); glVertex3f (-12, -11.0, 0);d (1.0, 5.0); glVertex3f (-12.0, -11.0, 5);d (0.0, 5.0); glVertex3f (-12.0, -12.0, 5);d (0.0, 0.0); glVertex3f (-12.0, -12.0, 0);;begin(GL_QUADS);f(1, 0, 1); //левая стенаd (24.0, 0.0); glVertex3f (-12, 12.0, 0);d (24.0, 5.0); glVertex3f (-12.0, 12.0, 5);d (0.0, 5.0); glVertex3f (-12.0, -12.0, 5);d (0.0, 0.0); glVertex3f (-12.0, -12.0, 0);;;(GL_QUADS);f(0, 1, 1);//дальняяd (3.0, 0.0); glVertex3f (-12, -12.0, 0);d (3.0, 5.0); glVertex3f (-12, -12.0, 5);d (0.0, 5.0); glVertex3f (-9.0, -12.0, 5);d (0.0, 0.0); glVertex3f (-9.0, -12.0, 0);;(GL_QUADS);f(0, 1, 1);d (4.0, 0.0); glVertex3f (-9, -12.0, 0);d (4.0, 1); glVertex3f (-9, -12.0, 1);d (0.0, 1); glVertex3f (-5, -12.0, 1);d (0.0, 0.0); glVertex3f (-5, -12.0, 0);;(GL_QUADS);f(0, 1, 1);//дальняяd (10, 0.0); glVertex3f (-5, -12.0, 0);d (10, 5.0); glVertex3f (-5, -12.0, 5);d (0.0, 5.0); glVertex3f (5.0, -12.0, 5);d (0.0, 0.0); glVertex3f (5.0, -12.0, 0);;

(GL_QUADS);f(0, 1, 1);d (4.0, 0.0); glVertex3f (5, -12.0, 0);d (4.0, 1); glVertex3f (5, -12.0, 1);d (0.0, 1); glVertex3f (9, -12.0, 1);d (0.0, 0.0); glVertex3f (9, -12.0, 0);;(GL_QUADS);f(0, 1, 1);//дальняяd (3.0, 0.0); glVertex3f (9, -12.0, 0);d (3.0, 5.0); glVertex3f (9.0, -12.0, 5);d (0.0, 5.0); glVertex3f (12.0, -12.0, 5);d (0.0, 0.0); glVertex3f (12.0, -12.0, 0);;(GL_QUADS);f(0, -1, 1); //ближняяd (24.0, 0.0); glVertex3f (12, 12.0, 0);d (24.0, 5.0); glVertex3f (12.0, 12.0, 5);d (0.0, 5.0); glVertex3f (-12.0, 12.0, 5);

glTexCoord2d (0.0, 0.0); glVertex3f (-12.0, 12.0, 0);;room>=3 //Прорисовка прохода в третью комнату , если она подключена

then begin(GL_QUADS);f(-1, 0, 1); //правая стенаd (1.0, 0.0); glVertex3f (12, 12.0, 0);d (1.0, 5.0); glVertex3f (12.0, 12.0, 5);d (0.0, 5.0); glVertex3f (12.0, 11.0, 5);d (0.0, 0.0); glVertex3f (12.0, 11.0, 0);;(GL_QUADS);f(-1, 0, 1); //левая стенаd (4.0, 0.0); glVertex3f (12, 11.0, 0);d (4.0, 1.0); glVertex3f (12.0, 11.0, 1);d (0.0, 1.0); glVertex3f (12.0, 7.0, 1);d (0.0, 0.0); glVertex3f (12.0, 7.0, 0);;(GL_QUADS);f(-1, 0, 1); //правая стенаd (19.0, 0.0); glVertex3f (12, 7.0, 0);d (19.0, 5.0); glVertex3f (12.0, 7.0, 5);d (0.0, 5.0); glVertex3f (12.0, -12.0, 5);d (0.0, 0.0); glVertex3f (12.0, -12.0, 0);;begin(GL_QUADS);f(-1, 0, 1); //правая стенаd (24.0, 0.0); glVertex3f (12, 12.0, 0);d (24.0, 5.0); glVertex3f (12.0, 12.0, 5);d (0.0, 5.0); glVertex3f (12.0, -12.0, 5);d (0.0, 0.0); glVertex3f (12.0, -12.0, 0);;;

 

//пол и потолок(0.0, 0.0, 5);(GL_QUADS);(1,0,-1);d (12.0, 0.0); glVertex3f (12, 12.0, 0.0);d (12.0, 12.0); glVertex3f (-12.0, 12.0, 0.0);d (0.0, 12.0); glVertex3f (-12.0, -12.0, 0.0);d (0.0, 0.0); glVertex3f (12.0, -12.0, 0.0);;(GL_TEXTURE_2D);

(0.0, 0.0, -5);(blue.bmp,true);(GL_TEXTURE_2D);(GL_QUADS);f(1,0,1);d (12.0, 0.0); glVertex3f (12, 12.0, 0.0);d (12.0, 12.0); glVertex3f (-12.0, 12.0, 0.0);d (0.0, 12.0); glVertex3f (-12.0, -12.0, 0.0);d (0.0, 0.0); glVertex3f (12.0, -12.0, 0.0);;(GL_TEXTURE_2D);

;;(-1.5,-11.9,0.5);pict=1 then

//рамы для картин;(1.5,1.5,1.5);

p:=9;;;(13.4,4,0.5);(90,0,0,1);:=12;j:=1 to 3 do(p);;(6,0,0);;(1.8,6.9,-0.5);(90,0,0,1);:=18;j:=1 to 2 do;(1.5,1.5,1.5);(p);;;(7,0,0);;(2.7,4.1,0.5);(90,0,0,1);:=13;j:=1 to 3do(p);;(6,0,0);

end;;

//Прорисовка ограничителей к картинам

glPopMatrix;;(-13, -12, 1);j:=1 to 2 dok:=1 to 2 do(4, 0.0, 0.0);f (0.7, 0.7, 0.4);(quadObj, 0.4, 0.4, 4, 20, 1);i:=1 to 10 do;(0.4, 0.0, 0);(quadObj, 0.01, 0.01, 4, 5,1);;(36, 0.0, 0.0, 1.0);;;(quadObj, 0.8, 0.4, 0.4, 4, 1);;;(6, 0, 0);;;

;(11.5, -10.0, 3.5);k:=1 to 2 doj:=1 to 2 dof(0.7,0.3,0.1);i:=1 to 5 do(quadObj, 0.07, 0.07,1.5, 6, 1);

// glTranslatef (0, 0, -1);(quadObj, 0, 0.08, 10, 1);(0,4,0);;f(1,0,0);(GL_QUADS);f(1,1,0);f (0, -4.0, 0.0);f (0, -4.0, 0.2);f (0, -20, 0.2);f (0, -20, 0.0);;(0, -43, 0);;f(-1,1,0);(-23, 50, 0);;;;(-7.5, 11.5, 3.5);k:=1 to 2 dof(0.7,0.3,0.1);i:=1 to 4 do(quadObj, 0.07, 0.07,1.5, 6, 1);(quadObj, 0, 0.08, 10, 1);(5,0,0);;f(1,0,0);(0, 0, 0.1);(GL_QUADS);f(1,1,0);f (-5, 0, 0.0);f (-5.0, 0, 0.2);f (-20.0, 0, 0.2);f (-20.0, 0, 0.0);;(-18, -47, -0.1);;

;;(-4,-11.5,3.5);f(0.7,0.3,0.1);i:=1 to 3 do(quadObj, 0.07, 0.07,1.5, 6, 1);(quadObj, 0, 0.08, 10, 1);(4,0,0);;f(1,0,0);(0, 0, 0.1);(GL_QUADS);f(1,1,0);f (-4, 0, 0.0);f (-4.0, 0, 0.2);f (-12.0, 0, 0.2);f (-12.0, 0, 0.0);

glEnd;;;

 

{=============================================================

Процедура прорисовки первой комнаты}

Procedure zal2;,j:integer;: GLUquadricObj;:= gluNewQuadric;;f(0.9,0.9,0.8);(GL_QUADS);f(1, 0, 1); //левая стенаf (-12, 12.0, 0);f (-12.0, 12.0, 5);f (-12.0, -12.0, 5);f (-12.0, -12.0, 0);;

(GL_QUADS);f(0, 1, 1); //дальняя стенаf (12, -12.0, 0);f (12.0, -12.0, 5);f (-12.0, -12.0, 5);f (-12.0, -12.0, 0);;

(GL_QUADS);f(-1,0 , 1); // правая стенаf (12, 12.0, 0);f (12.0, 12.0, 5);f (12.0, -12.0, 5);f (12.0, -12.0, 0);;

(GL_QUADS);f(0, -1, 1);//ближняяf (-12, 11.8, 0);f (-12, 11.8, 5);f (-9.0, 11.8, 5);f (-9.0, 11.8, 0);;(GL_QUADS);f(0, -1, 1);f (-9, 11.8, 0);f (-9, 11.8, 1);f (-5, 11.8, 1);f (-5, 11.8, 0);;(GL_QUADS);f(1, 0, 1);f (-9, 11.8, 1);f (-9, 12, 1);f (-5, 12, 1);f (-5, 11.8, 1);;(GL_QUADS);f(0, -1, 1);//ближняяf (-5, 11.8, 0);f (-5, 11.8, 5);f (5.0, 11.8, 5);f (5.0, 11.8, 0);;(GL_QUADS);f(0, -1, 1);f (5, 11.8, 0);f (5, 11.8, 1);f (9, 11.8, 1);f (9, 11.8, 0);;(GL_QUADS);f(1, 0, 1);f (5, 11.8, 1);f (5, 12, 1);f (9, 12, 1);f (9, 11.8, 1);;(GL_QUADS);f(0, -1, 1);//ближняяf (9, 11.8, 0);f (9.0, 11.8, 5);f (12.0, 11.8, 5);f (12.0, 11.8, 0);;(GL_QUADS);f(0, -1, 1); // стенаf (-0.25, -4.0, 0);f (-0.25, -4.0, 5);f (0.25, -4.0, 5);f (0.25, -4.0, 0);;

;(-0.75,0,0);f(-1,0 , 1); // перегородка правая стенаi:=1 to 2 do(0.5,0,0);(GL_QUADS);f (0, 12.0, 0);f (0, 12.0, 5);f (0, -4.0, 5);f (0, -4.0, 0);;f(1,0 , 1); // перегородка левая стена;;(Roof.bmp,true);(GL_TEXTURE_2D);

(GL_QUADS); //пол и потолокf(0,0 , 1);d (12.0, 0.0); glVertex3f (12, 12.0, 0.0);d (12.0, 12.0); glVertex3f (-12.0, 12.0, 0.0);d (0.0, 12.0); glVertex3f (-12.0, -12.0, 0.0);d (0.0, 0.0); glVertex3f (12.0, -12.0, 0.0);;(GL_TEXTURE_2D);

(0.0, 0.0, 5);(паркет.bmp,true);f(1,1,1);(GL_TEXTURE_2D);(0,0,1);

glBegin (GL_QUADS); //пол и потолок

glTexCoord2d (12.0, 0.0); glVertex3f (12, 12.0, 0.0);d (12.0, 12.0); glVertex3f (-12.0, 12.0, 0.0);d (0.0, 12.0); glVertex3f (-12.0, -12.0, 0.0);d (0.0, 0.0); glVertex3f (12.0, -12.0, 0.0);;(GL_COLOR_Material);(GL_TEXTURE_2D);(0.0, 0.0, 5);;;pict=2 then(-5,-11.8,0.5);:=0;j:=1 to 2 do //рамы для картин;(1.5,1.5,1.5);(p);;;(7,0,0);;(2.9,4,0.5);(90,0,0,1);:=2;j:=1 to 3 do(p);;(6,0,0);;(1.8,6,0);(90,0,0,1);(17.7,4.1,0);(90,0,0,1);:=9;j:=1 to 3 do(p);;(6,0,0);;

end;

//Прорисовка ограничителей к картинам;

glPushMatrix;(0.8,0,3.5);j:=1 to 2 doi:=1 to 3 dof(0.7,0.3,0.1);(quadObj, 0.07, 0.07,1.5, 6, 1);(quadObj, 0, 0.08, 10, 1);(0,4.5,0);;f(1,0,0);(0, -4.5, 0.1);(GL_QUADS);f (0, 0, 0.0);f (0, 0, 0.2);f (0, -9, 0.2);f (0, -9, 0.0);;(-1.6,-9,-0.1);;;(-7.3, -11.9, 1);;

 

{=======================================================================

Перерисовка окна}TfrmGL.FormPaint(Sender: TObject);

 

[0]:=0; //Установка[1]:=3; //положения[2]:=4; //источников[3]:=12; //света

(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);// очистка буфера цвета(GL_LIGHT0,GL_PosiTion, @position1); //Загрузка источников света(GL_FRONT, GL_SPECULAR, @Position); //установка свойств материалаLock //Проверка блокировки указателяSetCursorPos(wrkX,wrkY);

not modeglPolygonMode(GL_FRONT_AND_BACK,GL_LINE) //Установка стиля рисования линиямиglPolygonMode(GL_FRONT_AND_BACK,GL_FILL); //Установка стиля рисования с заполнением

glPushMatrix; //Сохранение исходного состояния матрицы(f, 0, 0, 1); //поворот "мира" на угол f(tx, ty, tz); //Перемещение по галереи

;; // вызов процедуры рисования первой комнаты;

;(0,-24,0);; //вызов процедуры рисования второй комнаты

glPopMatrix;

room>=3 then(24.2,0,0);

glPushMatrix;; //вызов процедуры рисования третьей комнаты

glPopMatrix;;

room>=4 then(-48.4,0,0);(180,0,0,1);;; //вызов процедуры рисования четвертой комнаты;;;demonstr//Запуск режима демонстрации:= count+1;:=0;:=0;count of

:begin:=0;:=1;;

..61:f:=f+6;

..78:ty:=(count-62)*0.5;

..92:begin:=8;:=tx+(count-78)*0.5;:=f+6;;

..133:begin:=-(count-93)*0.4+8;:=7;;

..150:begin:=-8;:=7;:=f+6;

..177:begin:=-7.5;:=-(count-151)*0.5+7;;

..193:beg