¡Hola invitado! Registrate gratis para participar en el foro. ¡No te llevará más de 1 minuto! Comenzar registro »    
Foro


Ir a la portada del foro Inicio Conocimiento Informática y Tecnología

Duda OpenGL




Historial
Respuestas: 3
Visitas: 177
Temas Similares
Duda a quien le gusta red dead dememption :cowboy::cowboy: y en el karma soys :diablo: O:D YO SOY :diablo:
Una duda :hola:Esto me pasa cuando bebo , por ejemplo un Sábado que bebo bastante al dia siguiente el Domingo estoy más delgado :S ¿Por qué me pasa eso? ¿No...
¡Ayuda! Problema con OpenGL... Bueno, lo que pasa es que hace poco yo tenía una placa de vídeo Geforce 6200 y podía jugar al Call Of Duty 1 perfectamente sin ningún problema. Hace...




Responder a este tema

Predeterminado Pedro1615 | 27 ene 2012, 11:55 - Duda OpenGL

Hola estoy intentando realizar un programita en opengl: el programa se basa en girar un objeto sobre si mismo o sobre uno de sus vertices. si alguien puede ayudarme por favor, es que soy nuevo en este lenguaje y ando algo perdido aki dejo el codigo:

//Archivos de cabecera
#include "stdafx.h"
#include <gl\glut.h>
#include <gl\gl.h>
#include <gl\glu.h>
#include <math.h>

//Constates y tipos de datos
#define PI 3.1415926535897
#define MAX 60
#define rt 100
#define rx 200
#define ry 200
typedef float tipo_punto[2];
typedef tipo_punto tipo_vector_puntos[MAX];

//Prototipos de funciones
void inicializar();
void representarEscena();
void cambiarTamano(int ancho, int alto);
void funcionDesocupada(void);
void dibujar_circulo_unidad(void);
void dibujar_triangulo_unidad(void);

//Variables externas
GLfloat xmin=-400; // volumen de visualización
GLfloat xmax=400;
GLfloat ymin=-400;
GLfloat ymax=400;
GLfloat dia=0.10;
float inc=0.05;

int main(int argc, char **argv){
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(500,500);
glutCreateWindow("Rotacion de poligonos");
inicializar();
glutDisplayFunc(representarEscena); //Representacion de la escena
glutIdleFunc(funcionDesocupada); //Animacion
glutReshapeFunc(cambiarTamano);
glutMainLoop();
return 0;
}

void inicializar(void){
glClearColor(1.0,1.0,1.0,1.0);
}

void representarEscena(void){
float x,y,d;
float alfa;

glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0,0.0,0.0);
glMatrixMode(GL_MODELVIEW);
//dibujar objeto
glColor3f(0.0,0.0,1.0);
alfa=2*dia*PI/100;
x=cos(alfa);
y=sin(alfa);
glPushMatrix();
glRotatef(alfa,x,y,0);
glTranslatef(x,y,0.0);

glPushMatrix();
glScalef(rt,rt,1);
dibujar_triangulo_unidad();
glPopMatrix();
glPopMatrix();
glutSwapBuffers();

}


void cambiarTamano(int ancho, int alto){
float aspecto1,aspecto2;

if (alto==0)
alto=1;
glViewport(0,0,ancho,alto);
aspecto1=(xmax-xmin)/(ymax-ymin);
aspecto2=(float)ancho/alto;
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if (aspecto2<=aspecto1)
gluOrtho2D(xmin,xmax,ymin*aspecto1/aspecto2,ymax*aspecto1/aspecto2);
else
gluOrtho2D(xmin*aspecto2/aspecto1,xmax*aspecto2/aspecto1,ymin,ymax);
glMatrixMode(GL_MODELVIEW);
}
void funcionDesocupada(void){
dia+=inc;
if (dia>=100)
dia-=100;
representarEscena();
}

void dibujar_triangulo_unidad(void){
tipo_vector_puntos v;
int i;
float angulo;

for (i=0;i<MAX;++i){
angulo=2*PI*i/3;
v[i][0]=cos(angulo);
v[i][1]=sin(angulo);
}
glBegin(GL_POLYGON);
for(i=0;i<MAX;++i){
glVertex2fv(v[i]);
}
glEnd();
}

El fallo esta en que me rota pero me hace una cosa "rara" si alguien me puede ayudar que me responda por favor.
  Responder citando
Avatar de lucas.quasar

Predeterminado lucas.quasar | 27 ene 2012, 12:00 - Respuesta: Duda OpenGL

Opengl usa algo parecido a c++ por lo que veo no? a ver si veo algo.
  Responder citando
Avatar de lucas.quasar

Predeterminado lucas.quasar | 27 ene 2012, 12:13 - Respuesta: Duda OpenGL

ni idea macho no entiendo los códigos de la biblioteca glut.

  Responder citando

Predeterminado Pedro1615 | 27 ene 2012, 17:54 - Respuesta: Duda OpenGL

muchas gracias de todas formas
  Responder citando
Responder a este tema
Herramientas
Desplegado



Foro de Informática y Tecnología Más temas en el foro de Informática y Tecnología

Para hablar sobre computadoras y ordenadores. También de tecnología en general, incluyendo productos de consumo. Entra ahora!



La franja horaria es GMT. Ahora son las 14:56. SEO by vBSEO ©2009, Crawlability, Inc.