Reglamento general de los foros   •   FAQ   •   Buscar en el foro •  Registrarse | Iniciar sesión 



Foros Linux » Desarrollo » Programación


Nuevo tema Responder al tema
 [ 2 mensajes ] 
Patrocinadores

Autor
Buscar:
Mensaje

Desconectado
Forista Nuevo
Forista Nuevo
Avatar de Usuario

Registrado: Dom Feb 19, 2006 12:00 am
Mensajes: 4

Nota Publicado: Dom Feb 19, 2006 10:38 pm 
Arriba  
Hola a todos tengo un gran problema a ver si me lo podeis solucionar. Tengo que hacer un trabajo que simile un sistema solar con el sol, la luna y la tierra. Ademas de hacer que la tierra y la luna efectuen sus movimientos de rotacion y translacion respectivos. Uso windows no linux y el programa Bloodshed Dev-C++. Mi codigo hecho hasta el momento es:
#include <windows.h>
#include <conio.h>
#include <gl\gl.h>
#include <gl\glaux.h>
#include <gl\glu.h>
void myinit(void);
void drawPlane(void);

void CALLBACK dayAdd (void);
void CALLBACK daySubtract (void);
void CALLBACK yearAdd (void);
void CALLBACK yearSubtract (void);
void CALLBACK display(void);
void CALLBACK myReshape(GLsizei w, GLsizei h);
static int day =0, year = 0;

void CALLBACK dayAdd (void)
{
day = (day + 1) % 360;
}
void CALLBACK daySubtract (void)
{
day = (day - 1) % 360;
}

void CALLBACK yearAdd (void)
{
year = (year + 5) % 360;

}
void CALLBACK yearSubtract (void)
{
year = (year - 5) % 360;

}
void CALLBACK display(void)
{
// Borramos la pantalla antes de dibujar
glClear(GL_COLOR_BUFFER_BIT);
//Datos del Sol
glPushMatrix();
glColor3f (1.0, 1.0, 0.0);// ponemos el color del sol
glPushMatrix();
auxSolidSphere (1.0); //dibujamos el Sol
glPopMatrix();
//Datos del planeta
glRotatef ((GLfloat) year, 0.0, 1.0, 0.0);//Translacion del planeta sobre el sol
glTranslatef (0, 0.0, 2.5f); // lo situamos en la pantalla
glRotatef ((GLfloat) day, 1.0, 0.0, 1.0); // rotamos la tierra sobre si misma
glColor3f (0.0, 0.0, 1.0); //le damos el color al planeta
auxWireSphere (0.2); //dibujamos un planeta de mallas
glPopMatrix();
glPushMatrix(); //fijamos la matriz
//Datos de la luna
glRotatef ((GLfloat) year, 0.0, 1.0, 0.0); // translacion sobre el planeta
glTranslatef (0, 0.0, 3.0f);//la situamos en pantalla
glRotatef ((GLfloat) day, 0.0f, 0.5, 3.0f); //rota sobre si misma
glColor3f (1.0, 0.0, 0.0);
auxWireSphere (0.1);
glPopMatrix();
glFlush();
glPushMatrix();

//fIN LUNA
glFlush();
}
void myinit (void) {
glShadeModel (GL_FLAT);
}
void CALLBACK myReshape(GLsizei w, GLsizei h)
{
h = (h == 0) ? 1 : h;
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(90.0, (GLfloat) w/(GLfloat) h, 1.0, 20.0);
glMatrixMode(GL_MODELVIEW);//iniciamos la pila en la que metemos los objetos
glLoadIdentity();
glTranslatef (0.0, 0.0, -5.0);
}
/* Programa principal.
* Abre la ventana con el tamaño inicial, una barra de titulo,
* modo de pantalla RGBA, y maneja los eventos de entrada.
*/
int main(int argc, char** argv)
{
auxInitDisplayMode (AUX_SINGLE | AUX_RGB);
auxInitPosition (0, 0, 500, 500);
auxInitWindow ("Composición de transformaciones de modelado");
myinit ();
auxKeyFunc (AUX_LEFT, yearSubtract);
auxKeyFunc (AUX_RIGHT, yearAdd);
auxKeyFunc (AUX_UP, dayAdd);
auxKeyFunc (AUX_DOWN, daySubtract);
auxReshapeFunc (myReshape);
auxMainLoop(display); //llamada para dibujar
return(0);
}

El codigo dibuja el sol, la luna y la tierra.Y con el teclado (flechas arriba, abajo,dcha,izq) realizo el movimiento de la tierra y la luna de translacion y rotacion al rededor del sol. Pero yo lo que quiero es que la luna gire alrededor de la tierra cuando esta se mueve. Algien me puede decir la solucion o escribir el codigo de como seria para que la luna se moviera alredeodr de la tierra. :?:

 Perfil  

Desconectado
Forista Distinguido
Forista Distinguido
Avatar de Usuario

Registrado: Jue Jun 30, 2005 11:00 pm
Mensajes: 1405
Ubicación: Monterrey, N.L., Mexico

Nota Publicado: Dom Feb 19, 2006 11:07 pm 
Arriba  
windows????

Mejor pregunta en alguna lista de C, como la de c.conclase.net:

http://c.conclase.net/listacorreo.php

ahi hay gente muy conocedora ( me atrevo a llamar a algunos Gurus, como Steven R. Davidson o Salvador Pozo Coranado ) y estoy seguro que te ayudaran.

Saludos.

_________________
a.k.a. ØØz
Slackware
Registered Linux User #393616
http://blog.the00z.org
Proyecto de traducción de documentación:
http://eliduc.berlios.de/index.php/Eliduc
irc.freenode.net #sentx #espaciolinux

 Perfil Email WWW  
Mostrar mensajes previos:  Ordenar por  
 [ 2 mensajes ] 
Nuevo tema Responder al tema

Saltar a:  


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados

No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group :: Style based on FI Subice by phpBBservice.nl :: Todos los horarios son UTC - 6 horas
Traducción al español por Huan Manwë
phpBB SEO