• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Psicopunk

Glut - OpenGL

4 mensagens neste tópico

Boas,ppl,

tenho um pouco de código que usa GLUT e coloca uns pontos numa janela preta. Agora queria adaptar isto para receber as coordenadas do ponto a colocar no ecra, mas nao sei como o fazer.

Alguém já trabalhou com isto? A ideia é usar estes príncipios para criar uma aplicação gráfica que permita reproduzir no ecra o percurso dum robo que estou a programar.

/*		simple.c draws a white rectangle on a black background. */

//#include <GL/glut.h>         /* glut.h includes gl.h and glu.h*/

#include "/usr/include/GL/glut.h"
#include<stdio.h>

void display(void)
{
/* clear window */
glClear(GL_COLOR_BUFFER_BIT);

glBegin(GL_POINTS);
 	glVertex2f(-0.5, -0.5);
 	glVertex2f(-0.7, 0.7);
 	glVertex2f(0.5, 0.5);
 	glVertex2f(0.999, -0.999);
glEnd();	

/* flush GL buffers */
glFlush();
}


void init()
{
/* set clear color to black */
glClearColor (0.0, 0.0, 0.0, 0.0);

/* set fill  color to white */
glColor3f(1.0, 1.0, 1.0);

/* set up standard orthogonal view with clipping */
/* box as cube of side 2 centered at origin */
/* This is default view and these statement could be removed */
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);
}

int main(int argc, char** argv)
{

/* Initialize mode and open a window in upper left corner of screen */
/* Window title is name of program (arg[0]) */

glutInit(&argc,argv);

//You can try the following to set the size and position of the window

glutInitWindowSize(1000,1000);
glutInitWindowPosition(0,0);

glutCreateWindow("simple");

glPointSize(5.0);

glutDisplayFunc(display);
init();
glutMainLoop();

}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não percebi muito bem mas já que estás a fazer isso em 2D, vais ter o eixo dos X e o eixo dos Y para desenhar. esses valores que tens dentro do glVertex2f são as coordenadas de cada um desses pontos.

Também podes usar variáveis dentro do glVertex2f, por exemplo recebes os valores:

float num1 = 4.5;

float num2 = 20.4;

glVertex2f(num1,num2);

Com 3D é igual, apenas acrescentas o eixo dos Z.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No que toca a receber as variaveis dentro do glVertex é fácil.  Mas se colocar os glVertex dentro da funçao display() como é que posso ir actualizando as coordenadas dos pontos?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora