All pastes #585716 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-06-23 12:19 UTC
rendered paste body
                                    
#include <math.h> 
#include <glut.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();

}



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
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);

  glMatrixMode (GL_MODELVIEW);
  glLoadIdentity ();


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();

glFlush();
glutSwapBuffers(); // zamiana buforów koloru
}

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 argil, char *argtab[])
{
glutInit(&argil,argtab);
glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );

 glutInitWindowSize(600,400);
 glutInitWindowPosition(100,100);
 glutCreateWindow("Animacja");

 glutDisplayFunc(display);
 glutReshapeFunc (Reshape);

 glutIdleFunc(obroty);
 glutMainLoop();

}