AAaa.. no nie mogę.. :)

07 Nov 2006 | Adam Przymusiała

Skończyłem właśnie dłubać program zadany na ćwiczeniach z OpenGL'a którego zadaniem jest rysowanie określonej wcześniej liczby kwadratów wzdłuż okręgu o danym promieniu (tak by kolor wypełnienia kolejnych zmieniał się od czarnego do białego). Nie było to takie proste zważywszy na fakt konieczności uprzedniego odpalenia tej biblioteki w Devcpp.

Jakież było moje zaskoczenie jak sobie uświadomiłem że te ćwiczenia są dopiero w środę a nie za 8 godzin licząc od teraz :) i w zasadzie mogłem iść spać już 4h temu.. :).

Program

jak by kogoś interesował kod źródłowy:

#define PI 3.14159265f #define GLUT_NO_LIB_PRAGMA #include GL/openglut.h #include conio.h #include gl/gl.h #include math.h

void RenderScene()

{ GLfloat xa, ya, xb, yb, r, a, ile, rozmiar, kolor; r=0.5f; ile=10.0f; rozmiar=0.2f; glClearColor(1.0f, 0.0f, 1.0f, 1.0f); glClear(GL_COLOR_BUFFER_BIT);

for (a=0.0f, kolor=0.0f; a<=(2.0f*PI); 
  a+=((2.0f*PI)/ile), kolor=kolor+(1/ile))
  {
    glColor3f(kolor, kolor, kolor);
    xa= ( r * sin(a) ) -  0.5*rozmiar;
    ya= ( r * cos(a) ) -  0.5*rozmiar;
    xb= xa + rozmiar;
    yb= ya + rozmiar;
    glRectf(xa, ya, xb, yb);
  }

  glutSwapBuffers();
}

int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGBA); glutInitWindowPosition(100, 100); glutInitWindowSize(400, 400); glutCreateWindow(“Kwadraty w kolo”); glOrtho(-1.0, 1.0, -1.0, 1.0, 1.0, -1.0); glutDisplayFunc (RenderScene); glutMainLoop();

return 0;   }

Dodaj komentarz!

Czytaj dalej: