Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Eliminarea fetelor functie de orientare
- Se va afisa fara activarea eliminarii fetelor. Cu orientarea directa
- implicita se vor schimba fetele care se elimina -cele fata sau cele spate-
- cu functia glCullFace.
- Se va activa sau se va dezactiva testul de adancime
- */
- #include "glos.h"
- #include <GL/gl.h>
- #include <GL/glu.h>
- #include <GL/glaux.h>
- #include <math.h>
- void myinit(void);
- void CALLBACK myReshape(GLsizei w, GLsizei h);
- void CALLBACK display(void);
- void CALLBACK IdleFunction(void);
- double x = 1;
- void CALLBACK IdleFunction(void)
- {
- glRotatef(1.1+sin(x), -0.3, 0.9, 0.6);
- display();
- Sleep(40);
- x += 0.2;
- }
- void myinit(void)
- {
- glClearColor(0.0, 0.0, 0.0, 1.0);
- glShadeModel(GL_SMOOTH);
- glEnable(GL_DEPTH_TEST);
- }
- void CALLBACK display(void)
- {
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glColor3f(1.0, 0.0, 0.0);
- //glEnable(GL_CULL_FACE);//activeaza eliminarea fetelor
- //glCullFace(GL_BACK);//sunt eliminate fetele spate
- //inlocuiti cu GL_FRONT pentru fete fata
- //glEnable(GL_DEPTH_TEST);
- glBegin(GL_QUAD_STRIP);
- glColor3f(1.0f, 0.0f, 1.0f);
- glVertex3f(-0.5f, 0.5f, 0.5f);
- glColor3f(1.0f, 0.0f, 0.0f);
- glVertex3f(-0.5f, -0.5f, 0.5f);
- glColor3f(1.0f, 1.0f, 1.0f);
- glVertex3f(0.5f, 0.5f, 0.5f);
- glColor3f(1.0f, 1.0f, 0.0f);
- glVertex3f(0.5f, -0.5f, 0.5f);
- glColor3f(0.0f, 1.0f, 1.0f);
- glVertex3f(0.5f, 0.5f, -0.5f);
- glColor3f(0.0f, 1.0f, 0.0f);
- glVertex3f(0.5f, -0.5f, -0.5f);
- glColor3f(0.0f, 0.0f, 1.0f);
- glVertex3f(-0.5f, 0.5f, -0.5f);
- glColor3f(0.0f, 0.0f, 0.0f);
- glVertex3f(-0.5f, -0.5f, -0.5f);
- glColor3f(1.0f, 0.0f, 1.0f);
- glVertex3f(-0.5f, 0.5f, 0.5f);
- glColor3f(1.0f, 0.0f, 0.0f);
- glVertex3f(-0.5f, -0.5f, 0.5f);
- glEnd();
- glBegin(GL_QUADS);
- glColor3f(1.0f, 0.0f, 1.0f);
- glVertex3f(-0.5f, 0.5f, 0.5f);
- glColor3f(1.0f, 1.0f, 1.0f);
- glVertex3f(0.5f, 0.5f, 0.5f);
- glColor3f(0.0f, 1.0f, 1.0f);
- glVertex3f(0.5f, 0.5f, -0.5f);
- glColor3f(0.0f, 0.0f, 1.0f);
- glVertex3f(-0.5f, 0.5f, -0.5f);
- glEnd();
- glFrontFace(GL_CCW);
- glBegin(GL_QUADS);
- glColor3f(1.0f, 0.0f, 0.0f);
- glVertex3f(-0.5f, -0.5f, 0.5f);
- glColor3f(1.0f, 1.0f, 0.0f);
- glVertex3f(0.5f, -0.5f, 0.5f);
- glColor3f(0.0f, 1.0f, 0.0f);
- glVertex3f(0.5f, -0.5f, -0.5f);
- glColor3f(0.0f, 0.0f, 0.0f);
- glVertex3f(-0.5f, -0.5f, -0.5f);
- glEnd();
- glColor3f(0.2, 0.01, 0.5);
- auxSolidSphere(0.55);
- glFlush();
- }
- void CALLBACK myReshape(GLsizei w, GLsizei h)
- {
- if (!h) return;
- glViewport(0, 0, w, h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluPerspective(45.0, (GLfloat)w / (GLfloat)h, 3.0, 5.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glTranslatef(0.0, 0.0, -4.0); /* aduce obiectele in volumul de vizualizare */
- }
- /* Main Loop
- */
- int main(int argc, char** argv)
- {
- auxInitDisplayMode(AUX_SINGLE | AUX_RGB | AUX_DEPTH);
- auxInitPosition(0, 0, 500, 400);
- auxInitWindow("CUB");
- myinit();
- auxReshapeFunc(myReshape);
- auxIdleFunc(IdleFunction);
- auxMainLoop(display);
- return(0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement