All pastes #568600 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-06-15 16:43 UTC
rendered paste body
#include <windows.h> 
										 
#include <GL/glut.h> 

float kat=0;
float kat2=0;
float delta = 1;
float delta2 = 0.1;
float alfa=0.0;


void uklad()
{
  
  glBegin(GL_LINES);
    glColor3f(0.0, 1.0, 0.0); //zielona o&#347; X
    glVertex3f(-5.0, 0.0, 0.0);
    glVertex3f(5.0, 0.0, 0.0); 

    glColor3f(0.0, 0.0, 1.0); // niebieska o&#347; Y
	glVertex3f(0.0, -5.0, 0.0);
	glVertex3f(0.0,  5.0, 0.0);
	
	glColor3f(0.0,  0.0, 0.0); // czarna o&#347; Z
	glVertex3f(0.0, 0.0, -5.0);
	glVertex3f(0.0, 0.0,  5.0);
	  
  glEnd();

}

void kwadrat()
{
  glBegin(GL_TRIANGLES); //sposob laczenia, polygon - po kolei laczy wierzcholki
 glColor3f(0, 1.0, 0.0); //kolor wierzch. w rgb,
 glVertex3f(-0.5, 1.0, -0.5);
 glVertex3f(-0.5, 1.0, 0.5);
 glVertex3f(0.0, 1.0, 0.0);;
glEnd();

  glBegin(GL_TRIANGLES); //sposob laczenia, polygon - po kolei laczy wierzcholki
 glColor3f(0, 0.9, 0.0); //kolor wierzch. w rgb,
 glVertex3f(-0.5, 1.0, -0.5);
 glVertex3f(0.5, 1.0, -0.5);
 glVertex3f(0.0, 1.0, 0.0);;
glEnd();

  glBegin(GL_TRIANGLES); //sposob laczenia, polygon - po kolei laczy wierzcholki
 glColor3f(0, 0.8, 0.0); //kolor wierzch. w rgb,
 glVertex3f(-0.5, 1.0, 0.5);
 glVertex3f(0.5, 1.0, 0.5);
 glVertex3f(0.0, 1.0, 0.0);;
glEnd();

  glBegin(GL_TRIANGLES); //sposob laczenia, polygon - po kolei laczy wierzcholki
 glColor3f(0, 0.7, 0.0); //kolor wierzch. w rgb,
 glVertex3f(0.5, 1.0, -0.5);
 glVertex3f(0.5, 1.0, 0.5);
 glVertex3f(0.0, 1.0, 0.0);;
glEnd();

glFlush();


}

void podloga()
{
glBegin(GL_POLYGON); //sposob laczenia, polygon - po kolei laczy wierzcholki
 glColor3f(0.8, 0.8, 0.8); //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();
}

void kulka()
{  
  glTranslatef(0.0,1.0,0.0);
  glRotatef(45,0.0f,1.0,0.0f);
  glTranslatef(kat2,0.0,0.0);
  glColor3f(0.2, 0.2, 0.2);
  glutSolidSphere(0.1,24,24);

}

void init()
{
  glClearColor(1.0,1.0,1.0,1.0); //kolor t&#322;a okna
  glEnable(GL_DEPTH_TEST); // w&#322;&#261;czenie testu g&#322;&#281;boko&#347;ci
	
  glMatrixMode(GL_PROJECTION);
gluPerspective(45.0, 1.0, 0.1, 20.0); //geometria widzenia, parametry:
//szerokokatnosc w pionie alfa, stosunek poziomu do pionu,
//odkad rzutowac, dokad rzutowac.
gluLookAt(-3.0, 8.0, -8.0,  0.0, 0.0, 0.0,  0.0, 1.0, 0.0);
  glMatrixMode(GL_MODELVIEW); // nic wi&#281;cej na stosie rzutowania
                              // si&#281; nie znajdzie   
}

void scena()
{
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

  glLoadIdentity();// przed kolejn&#261; klatk&#261; animacyjn&#261;
                   // na stosie modelowania nie mog&#261;
                   // znajdowa&#263; si&#281; &#380;adne macierze z                  // poprzedniej klatki animacyjnej

  uklad();
  podloga();
  
  kwadrat();


  kulka();

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

void anim()
{
    if ( kat2 >= 0.7 ) { delta2 = -0.1; }
    if ( kat2 <= -0.7 ) { delta2 = 0.1; }
	kat2+=delta2;
	glutPostRedisplay();
}

void main(int argc, char** argv)
{
  glutInit(&argc, argv);  
  glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
  glutInitWindowSize(800,800);
  glutInitWindowPosition(20,20);
  glutCreateWindow("Scena testowa");
  glutDisplayFunc(scena);
  init();
  glutIdleFunc(anim);

  glutMainLoop();
}