Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- PASTEBIN
- new paste
- trends API tools faq
- Guest User
- -
- Public Pastes
- Untitled3 sec ago
- Untitled3 sec ago
- Untitled4 sec ago
- Untitled9 sec ago
- Untitled9 sec ago
- MHA + Eldorado11 sec ago
- Untitled13 sec ago
- My Private Server?...14 sec ago
- SHARE
- TWEET
- Gk lab3
- a guest Oct 23rd, 2017 0 Never
- NOTE: Your guest paste has been posted. If you sign up for a free account, you can edit and delete your pastes!
- rawdownloadcloneembedreportprint C++ 9.74 KB
- #include <windows.h>
- #include <gl/gl.h>
- #include <gl/glut.h>
- #include <iostream>
- #include <math.h>
- #include <ctime>
- static GLfloat theta[] = { 0.0, 0.0, 0.0 };
- int size =10;
- const double PI = 3.141592653589793238463;
- typedef float point3[3];
- int model = 1;
- float X = 1;
- float distance = X / size;
- float** posX = new float*[size+1];
- float** posY = new float*[size + 1];
- float** posZ = new float*[size + 1];
- int** colorR = new int*[size + 1];
- int** colorG = new int*[size + 1];
- int** colorB = new int*[size + 1];
- /*************************************************************************************/
- // Funkcja rysująca osie układu współrzędnych
- void Axes(void)
- {
- point3 x_min = { -5.0, 0.0, 0.0 };
- point3 x_max = { 5.0, 0.0, 0.0 };
- // początek i koniec obrazu osi x
- point3 y_min = { 0.0, -5.0, 0.0 };
- point3 y_max = { 0.0, 5.0, 0.0 };
- // początek i koniec obrazu osi y
- point3 z_min = { 0.0, 0.0, -5.0 };
- point3 z_max = { 0.0, 0.0, 5.0 };
- // początek i koniec obrazu osi y
- glColor3f(1.0f, 0.0f, 0.0f); // kolor rysowania osi - czerwony
- glBegin(GL_LINES); // rysowanie osi x
- glVertex3fv(x_min);
- glVertex3fv(x_max);
- glEnd();
- glColor3f(0.0f, 1.0f, 0.0f); // kolor rysowania - zielony
- glBegin(GL_LINES); // rysowanie osi y
- glVertex3fv(y_min);
- glVertex3fv(y_max);
- glEnd();
- glColor3f(0.0f, 0.0f, 1.0f); // kolor rysowania - niebieski
- glBegin(GL_LINES); // rysowanie osi z
- glVertex3fv(z_min);
- glVertex3fv(z_max);
- glEnd();
- }
- float x(float u, float v)
- {
- return (-90 * pow(u, 5) + 225 * pow(u, 4) - 270 * pow(u, 3) + 180 * pow(u, 2) - 45 * u)*cos(PI *v);
- }
- float y(float u, float v)
- {
- return 160 * pow(u, 4) - 320 * pow(u, 3) + 160 * pow(u, 2);
- }
- float z(float u, float v)
- {
- return (-90 * pow(u, 5) + 225 * pow(u, 4) - 270 * pow(u, 3) + 180 * pow(u, 2) - 45 * u)*sin(PI *v);
- }
- void Egg()
- {
- switch (model)
- {
- case 1:
- {
- //DRAW POINTS
- glBegin(GL_POINTS);
- for (int i = 0; i<size + 1; i++)
- {
- for (int j = 0; j<size + 1; j++)
- {
- glVertex3f(posX[j][i], posY[j][i] - 4, posZ[j][i]);
- }
- }
- glEnd();
- break;
- }
- case 2:
- {
- //DRAW LINES
- glBegin(GL_LINES);
- for (int i = 0; i<size; i++)
- {
- for (int j = 0; j<size; j++)
- {
- if (j<size - 1)
- {
- glVertex3f(posX[j][i], posY[j][i] - 4, posZ[j][i]);
- glVertex3f(posX[j + 1][i], posY[j + 1][i] - 4, posZ[j + 1][i]);
- }
- if (i<size - 1)
- {
- glVertex3f(posX[j][i], posY[j][i] - 4, posZ[j][i]);
- glVertex3f(posX[j][i + 1], posY[j][i + 1] - 4, posZ[j][i + 1]);
- glVertex3f(-posX[j][i], posY[j][i] - 4, posZ[j][i]);
- glVertex3f(-posX[j][i + 1], posY[j][i + 1] - 4, posZ[j][i + 1]);
- }
- }
- glVertex3f(posX[size - 1][i], posY[size - 1][i] - 4, posZ[size - 1][i]);
- glVertex3f(posX[0][i], posY[0][i] - 4, posZ[0][i]);
- }
- glEnd();
- break;
- }
- case 3:
- {
- glBegin(GL_TRIANGLES);
- for (int i = 0; i<size; i++)
- {
- for (int j = 0; j<size; j++)
- {
- glColor3ub(colorR[j][i], colorB[j][i], colorG[j][i]);
- glVertex3f(posX[j][i], posY[j][i] - 4, posZ[j][i]);
- glColor3ub(colorR[j][i + 1], colorB[j][i + 1], colorG[j][i + 1]);
- glVertex3f(posX[j][i + 1], posY[j][i + 1] - 4, posZ[j][i + 1]);
- glColor3ub(colorR[j + 1][i], colorB[j + 1][i], colorG[j + 1][i]);
- glVertex3f(posX[j + 1][i], posY[j + 1][i] - 4, posZ[j + 1][i]);
- glColor3ub(colorR[j + 1][i], colorB[j + 1][i], colorG[j + 1][i]);
- glVertex3f(posX[j + 1][i], posY[j + 1][i] - 4, posZ[j + 1][i]);
- glColor3ub(colorR[j + 1][i + 1], colorB[j + 1][i + 1], colorG[j + 1][i + 1]);
- glVertex3f(posX[j + 1][i + 1], posY[j + 1][i + 1] - 4, posZ[j + 1][i + 1]);
- glColor3ub(colorR[j][i + 1], colorB[j][i + 1], colorG[j][i + 1]);
- glVertex3f(posX[j][i + 1], posY[j][i + 1] - 4, posZ[j][i + 1]);
- }
- //glColor3ub(colorR[size - 1][i], colorB[size - 1][i], colorG[size - 1][i]);
- //glVertex3f(posX[size - 1][i], posY[size - 1][i] - 4, posZ[size - 1][i]);
- //glColor3ub(colorR[size - 1][i + 1], colorB[size - 1][i+1], colorG[size - 1][i + 1]);
- //glVertex3f(posX[size - 1][i + 1], posY[size - 1][i+1] - 4, posZ[size - 1][i + 1]);
- //glColor3ub(colorR[0][i], colorB[0][i], colorG[0][i]);
- //glVertex3f(posX[0][i], posY[0][i] - 4, posZ[0][i]);
- //
- glColor3ub(colorR[i][size-1 ], colorB[i][size-1], colorG[i][size-1]);
- glVertex3f(posX[i][size - 1], posY[i][size - 1] - 4, posZ[i][size - 1]);
- glColor3ub(colorR[i + 1][size - 1], colorB[i + 1][size - 1], colorG[i + 1][size - 1]);
- glVertex3f(posX[i + 1][size - 1], posY[i + 1][size - 1] - 4, posZ[i + 1][size - 1]);
- glColor3ub(colorR[i+1][0], colorB[i+1][0], colorG[i+1][0]);
- glVertex3f(posX[i+1][0], posY[i+1][0] - 4, posZ[i+1][0]);
- }
- glEnd();
- break;
- }
- }
- }
- void spinEgg()
- {
- theta[0] -= 0.5;
- if (theta[0] > 360.0) theta[0] -= 360.0;
- theta[1] -= 0.5;
- if (theta[1] > 360.0) theta[1] -= 360.0;
- theta[2] -= 0.5;
- if (theta[2] > 360.0) theta[2] -= 360.0;
- glutPostRedisplay(); //odświeżenie zawartości aktualnego okna
- }
- /*************************************************************************************/
- // Funkcja określająca co ma być rysowane (zawsze wywoływana gdy trzeba
- // przerysować scenę)
- void RenderScene(void)
- {
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- // Czyszczenie okna aktualnym kolorem czyszczącym
- glLoadIdentity();
- // Czyszczenie macierzy bieżącej
- Axes();
- // Narysowanie osi przy pomocy funkcji zdefiniowanej wyżej
- glRotatef(theta[0], 1.0, 0.0, 0.0);
- glRotatef(theta[1], 0.0, 1.0, 0.0);
- glRotatef(theta[2], 0.0, 0.0, 1.0);
- glColor3f(1.0f, 1.0f, 1.0f); // Ustawienie koloru rysowania na biały
- Egg();
- glFlush();
- // Przekazanie poleceń rysujących do wykonania
- glutSwapBuffers();
- //
- }
- void keys(unsigned char key, int x, int y)
- {
- if (key == 'p') model = 1;
- if (key == 'w') model = 2;
- if (key == 's') model = 3;
- RenderScene(); // przerysowanie obrazu sceny
- }
- /*************************************************************************************/
- // Funkcja ustalająca stan renderowania
- void MyInit(void)
- {
- glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
- // Kolor czyszcący (wypełnienia okna) ustawiono na czarny
- }
- /*************************************************************************************/
- // Funkcja ma za zadanie utrzymanie stałych proporcji rysowanych
- // w przypadku zmiany rozmiarów okna.
- // Parametry vertical i horizontal (wysokość i szerokość okna) są
- // przekazywane do funkcji za każdym razem gdy zmieni się rozmiar okna.
- void ChangeSize(GLsizei horizontal, GLsizei vertical)
- {
- GLfloat AspectRatio;
- // Deklaracja zmiennej AspectRatio określającej proporcję
- // wymiarów okna
- if (vertical == 0) // Zabezpieczenie przed dzieleniem przez 0
- vertical = 1;
- glViewport(0, 0, horizontal, vertical);
- // Ustawienie wielkościokna okna widoku (viewport)
- // W tym przypadku od (0,0) do (horizontal, vertical)
- glMatrixMode(GL_PROJECTION);
- // Przełączenie macierzy bieżącej na macierz projekcji
- glLoadIdentity();
- // Czyszcznie macierzy bieżącej
- AspectRatio = (GLfloat)horizontal / (GLfloat)vertical;
- // Wyznaczenie współczynnika proporcji okna
- // Gdy okno nie jest kwadratem wymagane jest określenie tak zwanej
- // przestrzeni ograniczającej pozwalającej zachować właściwe
- // proporcje rysowanego obiektu.
- // Do okreslenia przestrzeni ograniczjącej służy funkcja
- // glOrtho(...)
- if (horizontal <= vertical)
- glOrtho(-7.5, 7.5, -7.5 / AspectRatio, 7.5 / AspectRatio, 10.0, -10.0);
- else
- glOrtho(-7.5*AspectRatio, 7.5*AspectRatio, -7.5, 7.5, 10.0, -10.0);
- glMatrixMode(GL_MODELVIEW);
- // Przełączenie macierzy bieżącej na macierz widoku modelu
- glLoadIdentity();
- // Czyszcenie macierzy bieżącej
- }
- /*************************************************************************************/
- // Główny punkt wejścia programu. Program działa w trybie konsoli
- void main(void)
- {
- for (int i = 0; i < size + 1; i++)
- {
- colorR[i] = new int[size + 1];
- colorG[i] = new int[size + 1];
- colorB[i] = new int[size + 1];
- }
- srand(time(NULL));
- for (int i = 0; i< size + 1; i++)
- {
- for (int j = 0; j<size + 1; j++)
- {
- colorR[i][j] = rand() % 256;
- colorG[i][j] = rand() % 256;
- colorB[i][j] = rand() % 256;
- }
- }
- for (int i = 0; i < size + 1; i++)
- {
- posX[i] = new float[size + 1];
- posY[i] = new float[size + 1];
- posZ[i] = new float[size + 1];
- }
- for (int i = 0; i < size + 1; i++)
- {
- for (int j = 0; j < size + 1; j++)
- {
- posX[j][i] = x(j*distance, i*distance);
- posY[j][i] = y(j*distance, i*distance);
- posZ[j][i] = z(j*distance, i*distance);
- }
- }
- glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize(300, 300);
- glutCreateWindow("Układ współrzędnych 3-D");
- glutIdleFunc(spinEgg);
- glutDisplayFunc(RenderScene);
- glutKeyboardFunc(keys);
- // Określenie, że funkcja RenderScene będzie funkcją zwrotną
- // (callback function). Bedzie ona wywoływana za każdym razem
- // gdy zajdzie potrzba przeryswania okna
- glutReshapeFunc(ChangeSize);
- // Dla aktualnego okna ustala funkcję zwrotną odpowiedzialną
- // zazmiany rozmiaru okna
- MyInit();
- // Funkcja MyInit() (zdefiniowana powyżej) wykonuje wszelkie
- // inicjalizacje konieczne przed przystąpieniem do renderowania
- glEnable(GL_DEPTH_TEST);
- // Włączenie mechanizmu usuwania powierzchni niewidocznych
- glutMainLoop();
- // Funkcja uruchamia szkielet biblioteki GLUT
- for (int i = 0; i< size; i++)
- {
- delete[] posX[i];
- delete[] posY[i];
- delete[] posZ[i];
- delete[] colorG[i];
- delete[] colorB[i];
- delete[] colorR[i];
- }
- }
- RAW Paste Data
- #include <windows.h>
- #include <gl/gl.h>
- #include <gl/glut.h>
- #include <iostream>
- #include <math.h>
- #include <ctime>
- static GLfloat theta[] = { 0.0, 0.0, 0.0 };
- int size =10;
- const double PI = 3.141592653589793238463;
- typedef float point3[3];
- int model = 1;
- float X = 1;
- float distance = X / size;
- float** posX = new float*[size+1];
- float** posY = new float*[size + 1];
- float** posZ = new float*[size + 1];
- int** colorR = new int*[size + 1];
- int** colorG = new int*[size + 1];
- int** colorB = new int*[size + 1];
- /*************************************************************************************/
- // Funkcja rysująca osie układu współrzędnych
- void Axes(void)
- {
- point3 x_min = { -5.0, 0.0, 0.0 };
- point3 x_max = { 5.0, 0.0, 0.0 };
- // początek i koniec obrazu osi x
- point3 y_min = { 0.0, -5.0, 0.0 };
- point3 y_max = { 0.0, 5.0, 0.0 };
- // początek i koniec obrazu osi y
- point3 z_min = { 0.0, 0.0, -5.0 };
- point3 z_max = { 0.0, 0.0, 5.0 };
- // początek i koniec obrazu osi y
- glColor3f(1.0f, 0.0f, 0.0f); // kolor rysowania osi - czerwony
- glBegin(GL_LINES); // rysowanie osi x
- glVertex3fv(x_min);
- glVertex3fv(x_max);
- glEnd();
- glColor3f(0.0f, 1.0f, 0.0f); // kolor rysowania - zielony
- glBegin(GL_LINES); // rysowanie osi y
- glVertex3fv(y_min);
- glVertex3fv(y_max);
- glEnd();
- glColor3f(0.0f, 0.0f, 1.0f); // kolor rysowania - niebieski
- glBegin(GL_LINES); // rysowanie osi z
- glVertex3fv(z_min);
- glVertex3fv(z_max);
- glEnd();
- }
- float x(float u, float v)
- {
- return (-90 * pow(u, 5) + 225 * pow(u, 4) - 270 * pow(u, 3) + 180 * pow(u, 2) - 45 * u)*cos(PI *v);
- }
- float y(float u, float v)
- {
- return 160 * pow(u, 4) - 320 * pow(u, 3) + 160 * pow(u, 2);
- }
- float z(float u, float v)
- {
- return (-90 * pow(u, 5) + 225 * pow(u, 4) - 270 * pow(u, 3) + 180 * pow(u, 2) - 45 * u)*sin(PI *v);
- }
- void Egg()
- {
- switch (model)
- {
- case 1:
- {
- //DRAW POINTS
- glBegin(GL_POINTS);
- for (int i = 0; i<size + 1; i++)
- {
- for (int j = 0; j<size + 1; j++)
- {
- glVertex3f(posX[j][i], posY[j][i] - 4, posZ[j][i]);
- }
- }
- glEnd();
- break;
- }
- case 2:
- {
- //DRAW LINES
- glBegin(GL_LINES);
- for (int i = 0; i<size; i++)
- {
- for (int j = 0; j<size; j++)
- {
- if (j<size - 1)
- {
- glVertex3f(posX[j][i], posY[j][i] - 4, posZ[j][i]);
- glVertex3f(posX[j + 1][i], posY[j + 1][i] - 4, posZ[j + 1][i]);
- }
- if (i<size - 1)
- {
- glVertex3f(posX[j][i], posY[j][i] - 4, posZ[j][i]);
- glVertex3f(posX[j][i + 1], posY[j][i + 1] - 4, posZ[j][i + 1]);
- glVertex3f(-posX[j][i], posY[j][i] - 4, posZ[j][i]);
- glVertex3f(-posX[j][i + 1], posY[j][i + 1] - 4, posZ[j][i + 1]);
- }
- }
- glVertex3f(posX[size - 1][i], posY[size - 1][i] - 4, posZ[size - 1][i]);
- glVertex3f(posX[0][i], posY[0][i] - 4, posZ[0][i]);
- }
- glEnd();
- break;
- }
- case 3:
- {
- glBegin(GL_TRIANGLES);
- for (int i = 0; i<size; i++)
- {
- for (int j = 0; j<size; j++)
- {
- glColor3ub(colorR[j][i], colorB[j][i], colorG[j][i]);
- glVertex3f(posX[j][i], posY[j][i] - 4, posZ[j][i]);
- glColor3ub(colorR[j][i + 1], colorB[j][i + 1], colorG[j][i + 1]);
- glVertex3f(posX[j][i + 1], posY[j][i + 1] - 4, posZ[j][i + 1]);
- glColor3ub(colorR[j + 1][i], colorB[j + 1][i], colorG[j + 1][i]);
- glVertex3f(posX[j + 1][i], posY[j + 1][i] - 4, posZ[j + 1][i]);
- glColor3ub(colorR[j + 1][i], colorB[j + 1][i], colorG[j + 1][i]);
- glVertex3f(posX[j + 1][i], posY[j + 1][i] - 4, posZ[j + 1][i]);
- glColor3ub(colorR[j + 1][i + 1], colorB[j + 1][i + 1], colorG[j + 1][i + 1]);
- glVertex3f(posX[j + 1][i + 1], posY[j + 1][i + 1] - 4, posZ[j + 1][i + 1]);
- glColor3ub(colorR[j][i + 1], colorB[j][i + 1], colorG[j][i + 1]);
- glVertex3f(posX[j][i + 1], posY[j][i + 1] - 4, posZ[j][i + 1]);
- }
- //glColor3ub(colorR[size - 1][i], colorB[size - 1][i], colorG[size - 1][i]);
- //glVertex3f(posX[size - 1][i], posY[size - 1][i] - 4, posZ[size - 1][i]);
- //glColor3ub(colorR[size - 1][i + 1], colorB[size - 1][i+1], colorG[size - 1][i + 1]);
- //glVertex3f(posX[size - 1][i + 1], posY[size - 1][i+1] - 4, posZ[size - 1][i + 1]);
- //glColor3ub(colorR[0][i], colorB[0][i], colorG[0][i]);
- //glVertex3f(posX[0][i], posY[0][i] - 4, posZ[0][i]);
- //
- glColor3ub(colorR[i][size-1 ], colorB[i][size-1], colorG[i][size-1]);
- glVertex3f(posX[i][size - 1], posY[i][size - 1] - 4, posZ[i][size - 1]);
- glColor3ub(colorR[i + 1][size - 1], colorB[i + 1][size - 1], colorG[i + 1][size - 1]);
- glVertex3f(posX[i + 1][size - 1], posY[i + 1][size - 1] - 4, posZ[i + 1][size - 1]);
- glColor3ub(colorR[i+1][0], colorB[i+1][0], colorG[i+1][0]);
- glVertex3f(posX[i+1][0], posY[i+1][0] - 4, posZ[i+1][0]);
- }
- glEnd();
- break;
- }
- }
- }
- void spinEgg()
- {
- theta[0] -= 0.5;
- if (theta[0] > 360.0) theta[0] -= 360.0;
- theta[1] -= 0.5;
- if (theta[1] > 360.0) theta[1] -= 360.0;
- theta[2] -= 0.5;
- if (theta[2] > 360.0) theta[2] -= 360.0;
- glutPostRedisplay(); //odświeżenie zawartości aktualnego okna
- }
- /*************************************************************************************/
- // Funkcja określająca co ma być rysowane (zawsze wywoływana gdy trzeba
- // przerysować scenę)
- void RenderScene(void)
- {
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- // Czyszczenie okna aktualnym kolorem czyszczącym
- glLoadIdentity();
- // Czyszczenie macierzy bieżącej
- Axes();
- // Narysowanie osi przy pomocy funkcji zdefiniowanej wyżej
- glRotatef(theta[0], 1.0, 0.0, 0.0);
- glRotatef(theta[1], 0.0, 1.0, 0.0);
- glRotatef(theta[2], 0.0, 0.0, 1.0);
- glColor3f(1.0f, 1.0f, 1.0f); // Ustawienie koloru rysowania na biały
- Egg();
- glFlush();
- // Przekazanie poleceń rysujących do wykonania
- glutSwapBuffers();
- //
- }
- void keys(unsigned char key, int x, int y)
- {
- if (key == 'p') model = 1;
- if (key == 'w') model = 2;
- if (key == 's') model = 3;
- RenderScene(); // przerysowanie obrazu sceny
- }
- /*************************************************************************************/
- // Funkcja ustalająca stan renderowania
- void MyInit(void)
- {
- glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
- // Kolor czyszcący (wypełnienia okna) ustawiono na czarny
- }
- /*************************************************************************************/
- // Funkcja ma za zadanie utrzymanie stałych proporcji rysowanych
- // w przypadku zmiany rozmiarów okna.
- // Parametry vertical i horizontal (wysokość i szerokość okna) są
- // przekazywane do funkcji za każdym razem gdy zmieni się rozmiar okna.
- void ChangeSize(GLsizei horizontal, GLsizei vertical)
- {
- GLfloat AspectRatio;
- // Deklaracja zmiennej AspectRatio określającej proporcję
- // wymiarów okna
- if (vertical == 0) // Zabezpieczenie przed dzieleniem przez 0
- vertical = 1;
- glViewport(0, 0, horizontal, vertical);
- // Ustawienie wielkościokna okna widoku (viewport)
- // W tym przypadku od (0,0) do (horizontal, vertical)
- glMatrixMode(GL_PROJECTION);
- // Przełączenie macierzy bieżącej na macierz projekcji
- glLoadIdentity();
- // Czyszcznie macierzy bieżącej
- AspectRatio = (GLfloat)horizontal / (GLfloat)vertical;
- // Wyznaczenie współczynnika proporcji okna
- // Gdy okno nie jest kwadratem wymagane jest określenie tak zwanej
- // przestrzeni ograniczającej pozwalającej zachować właściwe
- // proporcje rysowanego obiektu.
- // Do okreslenia przestrzeni ograniczjącej służy funkcja
- // glOrtho(...)
- if (horizontal <= vertical)
- glOrtho(-7.5, 7.5, -7.5 / AspectRatio, 7.5 / AspectRatio, 10.0, -10.0);
- else
- glOrtho(-7.5*AspectRatio, 7.5*AspectRatio, -7.5, 7.5, 10.0, -10.0);
- glMatrixMode(GL_MODELVIEW);
- // Przełączenie macierzy bieżącej na macierz widoku modelu
- glLoadIdentity();
- // Czyszcenie macierzy bieżącej
- }
- /*************************************************************************************/
- // Główny punkt wejścia programu. Program działa w trybie konsoli
- void main(void)
- {
- for (int i = 0; i < size + 1; i++)
- {
- colorR[i] = new int[size + 1];
- colorG[i] = new int[size + 1];
- colorB[i] = new int[size + 1];
- }
- srand(time(NULL));
- for (int i = 0; i< size + 1; i++)
- {
- for (int j = 0; j<size + 1; j++)
- {
- colorR[i][j] = rand() % 256;
- colorG[i][j] = rand() % 256;
- colorB[i][j] = rand() % 256;
- }
- }
- for (int i = 0; i < size + 1; i++)
- {
- posX[i] = new float[size + 1];
- posY[i] = new float[size + 1];
- posZ[i] = new float[size + 1];
- }
- for (int i = 0; i < size + 1; i++)
- {
- for (int j = 0; j < size + 1; j++)
- {
- posX[j][i] = x(j*distance, i*distance);
- posY[j][i] = y(j*distance, i*distance);
- posZ[j][i] = z(j*distance, i*distance);
- }
- }
- glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
- glutInitWindowSize(300, 300);
- glutCreateWindow("Układ współrzędnych 3-D");
- glutIdleFunc(spinEgg);
- glutDisplayFunc(RenderScene);
- glutKeyboardFunc(keys);
- // Określenie, że funkcja RenderScene będzie funkcją zwrotną
- // (callback function). Bedzie ona wywoływana za każdym razem
- // gdy zajdzie potrzba przeryswania okna
- glutReshapeFunc(ChangeSize);
- // Dla aktualnego okna ustala funkcję zwrotną odpowiedzialną
- // zazmiany rozmiaru okna
- MyInit();
- // Funkcja MyInit() (zdefiniowana powyżej) wykonuje wszelkie
- // inicjalizacje konieczne przed przystąpieniem do renderowania
- glEnable(GL_DEPTH_TEST);
- // Włączenie mechanizmu usuwania powierzchni niewidocznych
- glutMainLoop();
- // Funkcja uruchamia szkielet biblioteki GLUT
- for (int i = 0; i< size; i++)
- {
- delete[] posX[i];
- delete[] posY[i];
- delete[] posZ[i];
- delete[] colorG[i];
- delete[] colorB[i];
- delete[] colorR[i];
- }
- }
- Pastebin PRO Autumn Special!
- Get 40% OFF on Pastebin PRO accounts!
- create new paste / dealsnew! / api / trends / syntax languages / faq / tools / privacy / cookies / contact / dmca / scraping / go
- Site design & logo © 2017 Pastebin; user contributions (pastes) licensed under cc by-sa 3.0 -- Dedicated Server Hosting by Steadfast
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement