Jump to content

View more

Image of the Day

WIP title screen for #DeathOfAPartisan #screenshotsaturday #gamedev https://t.co/qJNhfZCvd4
IOTD | Top Screenshots

The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.


Sign up now

opengl cube table vertex

4: Adsense

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.


  • You cannot reply to this topic
No replies to this topic

#1 marcin19861112   Members   

101
Like
0Likes
Like

Posted 21 October 2012 - 07:37 AM

hello, I have problem with correct display wall cube. I use table vertex. Please help ;) I'm from Poland
/*
* File:   main.c
* Author: marcin
*
* Created on 13 październik 2012, 16:29
*/

#include <stdio.h>
#include <stdlib.h>
#include <GL/freeglut.h>
#include <math.h>

/*
*
*/
const float delta_alfa = 0.05;
float alfa = 0.0;
float a = 0.725;
int widthWindow = 600;
int heightWindow = 800;
float r = 1.0;
float fovy = 45.0, aspect = 1.0, near_ = 0.1, far_ = 10.0;//parametry dla gluPerspective()

void ukladWspolrzednych(){
    glBegin(GL_LINES);
	  //linia x rozowa
	  glColor3f(1.0, 0.0, 1.0);
	  glVertex3f(5.0, 0.0, 0.0);
	  glVertex3f(-5.0, 0.0, 0.0);
	  //linia y zielona
	  glColor3f(0.0, 1.0, 1.0);
	  glVertex3f(0.0, 5.0, 0.0);
	  glVertex3f(0.0, -5.0, 0.0);
	  //linia z zolta
	  glColor3f(1.0, 1.0, 0.0);
	  glVertex3f(0.0, 0.0, 5.0);
	  glVertex3f(0.0, 0.0, -5.0);
    glEnd();
}

void szescian(){
    static float wierzcholki[] = {
	    0.0,    0.0,    0.0,//0 0 0 0
	   0.75,    0.0,    0.0,//1 a 0 0
	   0.75,    0.0,   0.75,//2 a 0 a
	    0.0,    0.0,   0.75,//3 0 0 a
	    0.0,   0.75,    0.0,//4 0 a 0
	   0.75,   0.75,    0.0,//5 a a 0
	   0.75,   0.75,   0.75,//6 a a a
	    0.0,   0.75,   0.75 //7 0 a a
    };
    float kolory[] = {
	    1.0, 0.0, 0.0,
	    0.0, 1.0, 0.0,
	    0.0, 0.0, 1.0,
	    1.0, 1.0, 0.0,
	    1.0, 0.0, 0.0,
	    0.0, 1.0, 0.0,
	    0.0, 0.0, 1.0,
	    1.0, 1.0, 0.0
    };
    glEnableClientState(GL_VERTEX_ARRAY);
    glEnableClientState(GL_COLOR_ARRAY);
    glVertexPointer(3, GL_FLOAT, 0, wierzcholki);
    glColorPointer(3, GL_FLOAT, 0, kolory);

    static unsigned short dolnaSciana[] = {0, 1, 2, 3};
    static unsigned short gornaSciana[] = {4, 5, 6, 7};
    static unsigned short tylnaSciana[] = {0, 1, 4, 5};
    static unsigned short przodSciana[] = {2, 3, 6, 7};
    static unsigned short  lewaSciana[] = {0, 3, 4, 7};
    static unsigned short prawaSciana[] = {1, 2, 5, 6};

    glDrawElements(GL_QUADS, 4, GL_UNSIGNED_SHORT, dolnaSciana);
    glDrawElements(GL_QUADS, 4, GL_UNSIGNED_SHORT, gornaSciana);
    glDrawElements(GL_QUADS, 4, GL_UNSIGNED_SHORT, tylnaSciana);
    glDrawElements(GL_QUADS, 4, GL_UNSIGNED_SHORT, przodSciana);
    glDrawElements(GL_QUADS, 4, GL_UNSIGNED_SHORT, lewaSciana);
    glDrawElements(GL_QUADS, 4, GL_UNSIGNED_SHORT, prawaSciana);
}

void anim(){
    alfa += delta_alfa;
    glutPostRedisplay();
}

void init(){
    glClearColor(0.0, 0.0, 0.0, 1.0);
    glEnable(GL_DEPTH_TEST);
}

void odrysuj(int szerokosc, int wysokosc){
    float h = wysokosc;
    float w = szerokosc;
    glViewport(0, 0, szerokosc, wysokosc);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(fovy, w/h, near_, far_);
    glMatrixMode(GL_MODELVIEW);
}

void scena(){
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glLoadIdentity();
    gluLookAt(2.0, 2.0, 2.0,  0.0, 0.0, 0.0,  0.0, 0.1, 0.0);
    ukladWspolrzednych();
    glRotatef(alfa, 0.0, 1.0, 0.0);
    //glTranslatef(r, 0.0, 0.0);
    glTranslatef(-a / 2, 0.0, -a / 2);
	  szescian();
    glFlush();
    glutSwapBuffers();
}

int main(int argc, char** argv) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH );
    glutInitWindowSize(heightWindow, widthWindow);
    glutInitWindowPosition(100,100);
    glutCreateWindow("Scena testowa");
    glutDisplayFunc(scena);
    glutReshapeFunc(odrysuj);
    glutIdleFunc(anim);
    init();
    glutMainLoop();
    return (EXIT_SUCCESS);
}





Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.