Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Órbita

Iniciado por CoLSoN2, 25 de Diciembre de 2002, 05:04:32 AM

« anterior - próximo »

CoLSoN2

                                Cómo debería construir la matriz de mundo (en d3d) para crear un efecto de "órbita" de un objeto ? Es decir, que gire sobre sí mismo en x Y en z, y sobre el eje y a una distancia(radio) de un punto (centro de la órbita).                                
Manuel F. Lara
Descargar juegos indie  - blog sobre juegos indie y casual
El Desarrollo Personal.com  - blog sobre productividad, motivación y espíritu emprendedor

Mars Attacks

                                Transladas el objeto a la misma distancia del centro de coordenadas que la que tendrá con respecto al objeto, lo rotas en el eje que quieras y lo vuelves a transladar al punto donde estaba el objeto.

Rth=Translate(-x,-y,-z)Rotate(alfa,x',y',z')Translate(x,y,z)

donde x,y,z en positivo es lo que tienes que transladar el objeto para llevarlo al eje de coordenadas más la distancia al objeto con el que quieres girar.

Me estoy explicando con el culo. Voy a recapitular.

Supongamos que quieres que la luna orbite con respecto a la tierra, estando la tierra en la posición (10,10,10) y que la luna esté a 5 unidades de la tierra.

Creas la luna en el eje de coordenadas, (0,0,0).
Mueves la luna al punto (5,0,0)
Rotas la luna un determinado número de grados sobre el eje y (alfa,0,1,0)
Mueves la luna al punto (10,10,10)

Esto para la primera vez, las siguientes veces

Mueves la luna (-10,-10,-10) unidades
Rotas la luna (ya estará a la distancia correcta del eje porque la primera vez lo has movido 10 unidades más en cada eje) el número de grados que sea
Devuelves la luna al punto (10,10,10).

Si además quieres darle a la luna un movimiento de rotación mientras gira alrededor de la tierra:

Creas la luna
la rotas
la mueves al (5,0,0)
la rotas
la mueves al (10,10,10)

y las otras veces

la mueves (-10,-10,-10) unidades
desrotas lo rotado para que la luna esté en el (5,0,0) otra vez
la mueves al (0,0,0)
rotas otro trozo
la devuelves al (5,0,0)
rotas lo rotado anteriormente más la nueva rotación
lo devuelves todo al (10,10,10)

Ays, la resaca... no me hagas mucho caso. Feliz Navidad   :jaja:                                






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.