sprawko na grafike

WOJSKOWA AKADEMIA TECHNICZNA

Grafika komputerowa

Sprawozdanie z pracy laboratoryjnej nr 3

Temat: modelowanie brył 3D

Wykonujący ćwiczenie: Barbara Szwal

Prowadzący: dr inż. Marek Salomon

Data wykonania ćwiczenia: 20.12.2012

Grupa szkoleniowa: I1Y5S1

1.Treści zadań:

Wykorzystując wybrane funkcję modelowania geometrycznego biblioteki OpenGL napisać program przedstawiający obraz perspektywiczny bryły o zadanych parametrach:

½ sfery w trybie GL_TRIANGLES o promieniu 3 i środku w punkcie (0, 0, 0)

Dodatkowe polecenia. Użytkownik za pomocą klawiatury powinien mieć możliwość:

- wprowadzania liczby podziałów pionowych i poziomych bryły w zakresie od 4 do 64

- zmiany odległości obserwatora od obiektu

- zmiany orientacji obserwatora(obroty wzglądem osi X, Y, Z.

2. Sposób rozwiązania zadań.

Aby uzyskać taką figurę potrzebne są nam punkty, które będą stanowić ich wierzchołki Najprostszym istniejącym wielokątem jest trójkąt, który, jak wiadomo, posiada trzy kra­wędzie. Do rysowania trójkątów służy prymityw GL_TRJANGLES; trójkąty są two­rzone w oparciu o trzy wierzchołki.

#include <glut.h> // biblioteka potrzebna do korzystania z funkcji OpenGL

#include <math.h> // będziemy wykorzystywać f-cje matematyczne takie jak sin() oraz cos() dzieki którym będę mogła obliczyć współrzędne sfery.

3. Wyniki.

4. Wnioski.

1.Zadanie

Ćwiczenia laboratoryjne rozpoczęłam od zbudowania układu współrzędnych. Oto kod:

// Pocztaek tworzenia ukladu wspolrzednych

glBegin(GL_LINES);

// Os X

glColor3f(1.0, 0.0, 0.0);

glVertex3f(-20.0, 0.0, 0.0);

glVertex3f(20.0, 0.0, 0.0);

// Os Y

glColor3f(0.0,1.0,0.0);

glVertex3f(0.0, -20.0, 0.0);

glVertex3f(0.0, 20.0, 0.0);

// Os Z

glColor3f(0.0,0.0,1.0);

glVertex3f(0.0, 0.0, -20.0);

glVertex3f(0.0, 0.0, 20.0);

// Koniec tworzenia ukladu wspolrzednych

glEnd();

glColor3f(1.0, 1.0, 1.0);

Oznacza to, iż każda współrzędna będzie miała inny kolor:

1. współrzędna X – kolor czerwony

2. współrzędna Y – kolor niebieski

3. współrzędna Z – kolor zielony

Zadbałam również o wygląd obiektów, tzn będą miały kolor biały.

Zadanie rozpoczęłam od stworzenia kopuły sfery. Oto kod programu:

glVertex3f(0.0,0.0,0.0);

glBegin(GL_TRIANGLES);

for(teta = OD; teta < DO; teta += PI/EPS)

{

for(fi = OD1; fi < DO1; fi += PI/EPS2)

{

x = R * sin(teta) * cos(fi);

z = R * sin(teta) * sin(fi);

y = R * cos(teta);

glVertex3f(x, y, z);

x = R * sin(teta) * cos(fi+PI/EPS2);

z = R * sin(teta) * sin(fi+PI/EPS2);

y = R * cos(teta);

glVertex3f(x, y, z);

x = R * sin(teta+PI/EPS) * cos(fi+PI/EPS2);

z = R * sin(teta+PI/EPS) * sin(fi+PI/EPS2);

y = R * cos(teta+PI/EPS);

glVertex3f(x, y, z);

x = R * sin(teta+PI/EPS) * cos(fi+PI/EPS2);

z = R * sin(teta+PI/EPS) * sin(fi+PI/EPS2);

y = R * cos(teta+PI/EPS);

glVertex3f(x, y, z);

x = R * sin(teta) * cos(fi+PI/EPS);

z = R * sin(teta) * sin(fi+PI/EPS);

y = R * cos(teta);

glVertex3f(x, y, z);

x = R * sin(teta+PI/EPS) * cos(fi+2*PI/EPS2);

z = R * sin(teta+PI/EPS) * sin(fi+2*PI/EPS2);

y = R * cos(teta+PI/EPS);

glVertex3f(x, y, z);

}

}

glEnd();

}

Zgodnie z poleceniem prowadzącego pozwoliłam sobie stworzyć domkniecie bryły w trybie GL_TRIANGLE_FAN. Oto fragment kodu odpowiadający za tworzenie domknięcia sfery:

glBegin(GL_TRIANGLE_FAN);

glVertex3f(0.0,0.0,0.0);

for(angle = 0.0f; angle <= (2.0f*PI);angle += (PI/6.0f))

{

x = R*cos(angle);

z = R*sin(angle);

glVertex3f(x, z, 0.0f) ;

Fragment kodu, który realizuje dodatkowe funkcje np. możliwość podziału bryły czy obroty sfery wzdłuż wybranej osi:

// Funkcja obslugi klawiatury

void ObslugaKlawiatury(unsigned char klawisz, int x, int y)

{

if(klawisz == '+')

promien *= 1.01;

else if (klawisz == '-')

promien /= 1.01;

else if(klawisz == 'r')

OBSERWATOR_OBROT_X++;

else if(klawisz == 'e')

OBSERWATOR_OBROT_Y++;

else if (klawisz == 'd')

OBSERWATOR_OBROT_X--;

else if (klawisz =='f')

OBSERWATOR_OBROT_Y--;

else if (klawisz == 'q') {

if (PODZIAL_X>=4) PODZIAL_X--;

}

else if (klawisz == 'w') {

if (PODZIAL_X<=64) PODZIAL_X++;

}

else if (klawisz== 'a'){

if (PODZIAL_Y>=4) PODZIAL_Y--;

}

else if (klawisz == 's'){

if (PODZIAL_Y<=64) PODZIAL_Y ++;

}

else if (klawisz == 27)

exit(0);

}

3.Wyniki działania programu.

Bryła z minimalną liczbą podziałów

Widok bryły z maksymalną liczbą podziałów ½ sfery(kopuły) oraz maksymalną liczbą podziałów podstawy.

Widok bryły z maksymalną liczbą podziałów ½ sfery.

4. Wnioski ogólne.

Dzięki temu ćwiczeniu poznałam podstawowe zasady modelowania obiektów trójwymiarowych, programowania prostych efektów takich jak obroty, zmianę rozmiaru, zmianę ilości podziałów. W zadaniu zostały wykorzystane zagadnienia, które bezpośrednio powiązane są z innymi przedmiotami dydaktycznymi, jak np. analiza matematyczna. Bez ich znajomości wymodelowanie zadanego obiektu byłoby bardzo czasochłonne. Dzięki wykorzystaniu funkcji OpenGL można stworzyć bardzo wiele ciekawych obiektów. Tworzenie tego obrazu zajęło mi ponad 3h zajęć, co dowodzi iż pomimo prostego wyglądu stworzonej wizualizacji sam proces tworzenia obiektów przy użyciu prymitywów graficznych tj GL_TRIANGLES jest bardzo czasochłonny i wymaga dużego skupienia. Nawet najdrobniejszy błąd może sprawić, że obraz będzie wyglądał zupełnie inaczej niż zamierzona figura, albo nie zostanie wyświetlony w ogóle. Ćwiczenie uważam za interesujące oraz pouczające.


Wyszukiwarka

Podobne podstrony:
sprawko na ostatnią grafike
sprawko na dwóje
Politechnika śląska w gliwicach sprawko na dziekana
sprawko na MK
Politechnika śląska w gliwicach sprawko na dziekana (Odzyskany)
sprawko na 3.12, BIOLOGIA UJ, BIOCHEMIA WBBiB
Opracowanie na Grafikę
sprawko na sukces
WSZYSTKO NA GRAFIKE
tabelka na grafike, Geometria wykreślna, Geometria wykreslna - Rzut cechowany, Rzut Monge'a, Aksonom
Sprawko na waloryzacje tabele, TWiO
sprawko na TO, aaa, studia 22.10.2014, całe sttudia, Studia, fiza
W 10 proc gotowe sprawko na bettiego, Automatyka i Robotyka, Semestr 4, Wytrzymałość materiałów, Spr
Halla3, Uczelnia, sem I, fiza, LABORATORIUM, sprawka na laborki
sprawko na anala
Analiza kursu na grafikę
DRGANI02, Uczelnia, sem I, fiza, LABORATORIUM, sprawka na laborki, DRGANIA
sprawko na 17.12, BIOLOGIA UJ, BIOCHEMIA WBBiB
LABOROTORIUM FIZYCZNE SPRAW, Uczelnia, sem I, fiza, LABORATORIUM, sprawka na laborki, NOWE

więcej podobnych podstron