rendered paste body
#include <math.h>
#include <glut.h>
#include <stdio.h>
float kat = 0;
float kat2 = 0;
void uklad()
{
glBegin (GL_LINES);
glColor3f(0.7, 0.7, 0.7);
glVertex3f (0.0, 0.0, -10.0);
glVertex3f (0.0, 0.0, 10.0);
glColor3f(0.3, 0.3, 0.3);
glVertex3f (-10.0, 0.0, 0.0);
glVertex3f (10.0, 0.0, 0.0);
glVertex3f (0.0, -10.0, 0.0);
glVertex3f (0.0, 10.0, 0.0);
glEnd();
glFlush();
}
void kostka()
{
glColor3f(1.0, 0.0, 0.0);
//glTranslatef(0.0,top,0.0); // przesuniecie
glRotatef(kat,0.0f,1.0f,0.0f); //obrot
glBegin(GL_POLYGON); //sposob laczenia, polygon - po kolei laczy wierzcholki
glColor3f(0.2, 0.2, 0.2); //kolor wierzch. w rgb,
glVertex3f(0.2, 1.0, -0.2); //wierzcholki x y z w (3f - 3 wierzcholki float)
glVertex3f(-0.2, 1.0, -0.2);
glVertex3f(-0.2, 1.0, 0.2);
glVertex3f(0.2, 1.0, 0.2);
glEnd();
glBegin(GL_POLYGON); //sposob laczenia, polygon - po kolei laczy wierzcholki
glColor3f(0.2, 0.2, 0.2); //kolor wierzch. w rgb,
glVertex3f(0.2, 1.0, -0.2); //wierzcholki x y z w (3f - 3 wierzcholki float)
glVertex3f(0.2, 1.0, 0.2);
glVertex3f(0.2, 1.4, 0.2);
glVertex3f(0.2, 1.4, -0.2);
glEnd();
glBegin(GL_POLYGON); //sposob laczenia, polygon - po kolei laczy wierzcholki
glColor3f(0.2, 0.2, 0.2); //kolor wierzch. w rgb,
glVertex3f(0.2, 1.0, 0.2); //wierzcholki x y z w (3f - 3 wierzcholki float)
glVertex3f(-0.2, 1.0, 0.2);
glVertex3f(-0.2, 1.4, 0.2);
glVertex3f(0.2, 1.4, 0.2);
glEnd();
glBegin(GL_POLYGON); //sposob laczenia, polygon - po kolei laczy wierzcholki
glColor3f(0.2, 0.2, 0.2); //kolor wierzch. w rgb,
glVertex3f(-0.2, 1.0, 0.2); //wierzcholki x y z w (3f - 3 wierzcholki float)
glVertex3f(-0.2, 1.0, -0.2);
glVertex3f(-0.2, 1.4, -0.2);
glVertex3f(-0.2, 1.4, 0.2);
glEnd();
glBegin(GL_POLYGON); //sposob laczenia, polygon - po kolei laczy wierzcholki
glColor3f(0.2, 0.2, 0.2); //kolor wierzch. w rgb,
glVertex3f(-0.2, 1.0, -0.2); //wierzcholki x y z w (3f - 3 wierzcholki float)
glVertex3f(0.2, 1.0, -0.2);
glVertex3f(0.2, 1.4, -0.2);
glVertex3f(-0.2, 1.4, -0.2);
glEnd();
glFlush();
glutSwapBuffers();
}
void display()
{
glClearColor(1.0,1.0,1.0,1.0); //kolor tla RGB od 0 do 1
glClear(GL_COLOR_BUFFER_BIT); //wypelnienie bufora koloru wartosciami clearcolor
glMatrixMode (GL_MODELVIEW);
glLoadIdentity ();
gluPerspective(45.0, 1.0, 0.1, 20.0); //geometria widzenia, parametry:
gluLookAt(-2.0, 5.0, -5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
//x,y,z oko:), 3 wspolrzedne oka, dokad patrzy 3 parametry, 3 parametry -pion na kliszy
glBegin(GL_POLYGON); //sposob laczenia, polygon - po kolei laczy wierzcholki
glColor3f(0.9, 0.9, 0.9); //kolor wierzch. w rgb,
glVertex3f(3.0, 0.0, -3.0); //wierzcholki x y z w (3f - 3 wierzcholki float)
glVertex3f(-3.0, 0.0, -3.0);
glVertex3f(-3.0, 0.0, 3.0);
glVertex3f(3.0, 0.0, 3.0);
glEnd();
glFlush();
uklad(); //rysowanie ukladu
glRotatef(kat2,0.0f,1.0f,0.0f); //obrot
glPushMatrix();
glRotatef(18,0.0f,1.0f,0.0f);
glTranslatef(2.0,0.0,0.0); // przesuniecie
kostka();
glPopMatrix();
glPushMatrix();
glRotatef(36,0.0f,1.0f,0.0f);
glTranslatef(2.0,0.0,0.0); // przesuniecie
kostka();
glPopMatrix();
glPushMatrix();
glRotatef(54,0.0f,1.0f,0.0f);
glTranslatef(2.0,0.0,0.0); // przesuniecie
kostka();
glPopMatrix();
glPushMatrix();
glRotatef(72,0.0f,1.0f,0.0f);
glTranslatef(2.0,0.0,0.0); // przesuniecie
kostka();
glPopMatrix();
glPushMatrix();
glRotatef(90,0.0f,1.0f,0.0f);
glTranslatef(2.0,0.0,0.0); // przesuniecie
kostka();
glPopMatrix();
glPushMatrix();
glRotatef(108,0.0f,1.0f,0.0f);
glTranslatef(2.0,0.0,0.0); // przesuniecie
kostka();
glPopMatrix();
glPushMatrix();
glRotatef(126,0.0f,1.0f,0.0f);
glTranslatef(2.0,0.0,0.0); // przesuniecie
kostka();
glPopMatrix();
glPushMatrix();
glRotatef(142,0.0f,1.0f,0.0f);
glTranslatef(2.0,0.0,0.0); // przesuniecie
kostka();
glPopMatrix();
glPushMatrix();
glRotatef(160,0.0f,1.0f,0.0f);
glTranslatef(2.0,0.0,0.0); // przesuniecie
kostka();
glPopMatrix();
glPushMatrix();
glRotatef(188,0.0f,1.0f,0.0f);
glTranslatef(2.0,0.0,0.0); // przesuniecie
kostka();
glPopMatrix();
glPushMatrix();
glRotatef(206,0.0f,1.0f,0.0f);
glTranslatef(2.0,0.0,0.0); // przesuniecie
kostka();
glPopMatrix();
glPushMatrix();
glRotatef(224,0.0f,1.0f,0.0f);
glTranslatef(2.0,0.0,0.0); // przesuniecie
kostka();
glPopMatrix();
glPushMatrix();
glRotatef(242,0.0f,1.0f,0.0f);
glTranslatef(2.0,0.0,0.0); // przesuniecie
kostka();
glPopMatrix();
glPushMatrix();
glRotatef(260,0.0f,1.0f,0.0f);
glTranslatef(2.0,0.0,0.0); // przesuniecie
kostka();
glPopMatrix();
glPushMatrix();
glRotatef(288,0.0f,1.0f,0.0f);
glTranslatef(2.0,0.0,0.0); // przesuniecie
kostka();
glPopMatrix();
glPushMatrix();
glRotatef(306,0.0f,1.0f,0.0f);
glTranslatef(2.0,0.0,0.0); // przesuniecie
kostka();
glPopMatrix();
glPushMatrix();
glRotatef(324,0.0f,1.0f,0.0f);
glTranslatef(2.0,0.0,0.0); // przesuniecie
kostka();
glPopMatrix();
glPushMatrix();
glRotatef(342,0.0f,1.0f,0.0f);
glTranslatef(2.0,0.0,0.0); // przesuniecie
kostka();
glPopMatrix();
glPushMatrix();
glRotatef(360,0.0f,1.0f,0.0f);
glTranslatef(2.0,0.0,0.0); // przesuniecie
kostka();
glPopMatrix();
}
void Reshape (int width, int height)
{
glViewport (0,0,width,height);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
display ();
}
void obroty(void)
{
if (kat==360) kat=0;
kat+=2;
if (kat2==360) kat2=0;
kat2+=1;
glutPostRedisplay();
}
void main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA|GLUT_DOUBLE);
glutInitWindowSize(600,400);
glutInitWindowPosition(100,100);
glutCreateWindow("Animacja");
glutDisplayFunc(display);
glutReshapeFunc (Reshape);
glutIdleFunc(obroty);
glutMainLoop();
}