Jump to content

Cálculo de posiciones de planetas (ecuaciones)


astronomia

Publicaciones recomendadas

Publicado

Hola!

Además de la astronomía, hobby en el que recien estoy comenzando, me gusta mucho la matemática y la programación. Viendo algunos applets como este:

http://www.astrored.org/usuarios/xgarciaf/medici3.htm

que permiten calcular la posición de los satélites de Júpiter vistos desde la tierra, incluso graficandolos (como acá: http://www.aavbae.net/efem/Pag_efem_graf_jup.php )

se me ocurrió encarar un programita en POVRay que renderice a Júpiter y sus 4 satélites mayores tal como se los ve desde la tierra en un momento determinado. La idea es usar las texturas de estos cuerpos para generar una imagen muy buena de lo que uno vería con el telescopio en ese momento. El primer applet que mencione permite ver su código fuente, y es muy útil para aprender algunas cosas, pero lamentablemente ataca el problema desde un punto de vista muy diferente al que me interesa, por lo que no puedo llegar a buen puerto desde allí. Hice el programita, pero no logro determinar algunas posiciones del sistema Sol-Tierra-Júpiter, solo coloco correctamente los satélites alrededor de Júpiter, pero la vista no coincide con la que tendríamos desde aquí.

Lo que estoy necesitando es que, si alguien tiene algún link a un sitio en el que estén las fórmulas matemáticas de la posición de cada uno de estos astros en función del tiempo me lo pase, a ver si puedo llegar a buen puerto.

Les paso un par de imágenes de lo que conseguir hacer a partir de ese applet (sin texturas ni nada, solo para probar) y el código que escribi, QUE NO ES CORRECTO, pero puede servir para darse una idea de hacia donde apunto :)

Saludos!

5776b3a2322a4_marteluna3152005.jpg.70c13

jupiter003.png.4424377c9ad43284eacac02e1

Publicado

Interesantísimo el aporte. Nunca usé povray. El enlace sobre las ecuaciones es una delicia. Gracias por compartir. En cuanto tenga un tiempito veo si puedo probar tu código. Abrazo

Publicado

Hola!

Gracias por el comentario. Hoy me puse un rato con el "Objetivo Universo", de Feinstein/Tignanelli, y me saqué algunas dudas. Pero todavía no lo tengo 100% claro.

En cuanto a POVRay, si lo probás no te vas a arrepentir. Yo lo uso hasta para graficar funciones!

Va un ejemplo:

// OJO: Este programa utiliza los ejes de coordenadas
// con el z hacia arriba y el x positivo hacia el observador
// (igual que en analisis matemático)
//
//------------------------------------------------------------------------
// Configuración general
//------------------------------------------------------------------------
#version 3.6;
global_settings{ assumed_gamma 1.0 }

//------------------------------------------------------------------------
// Límites y variables de la gráfica
//------------------------------------------------------------------------
#declare incremento = 0.125;

#declare min_x = -4;
#declare min_y = -4;
#declare min_z = -3;
#declare max_x =  4;
#declare max_y =  4;
#declare max_z =  3;

//------------------------------------------------------------------------
// Archivos include -ojo, el orden importa!
//------------------------------------------------------------------------

#include "colors.inc"
#include "textures.inc"
#include "glass.inc"
#include "metals.inc"
#include "golds.inc"
#include "stones.inc"
#include "woods.inc"
#include "shapes.inc"
#include "shapes2.inc"
#include "functions.inc"
#include "math.inc"          
#include "transforms.inc"
#include "ejes.inc"


//------------------------------------------------------------------------
// Cámara
//------------------------------------------------------------------------

#declare Camera =camera {  //  
 //angle 18
 right -x*image_width/image_height
 sky <0,0,1>// mano derecha!!!
 location <7.0,2.0, 8.0>
 look_at   <2.0 , 0 ,1>
}
camera{Camera }


//------------------------------------------------------------------------
// Luces
//------------------------------------------------------------------------
light_source{<2500,1500,2500> color White}

//------------------------------------------------------------------------
// "cielo"
//------------------------------------------------------------------------
sky_sphere{ pigment{ gradient <0,1,0>
                    color_map{ [0   color rgb<1,1,1>         ]//White
                               [0.4 color rgb<0.24,0.34,0.56>*0.8]//~Navy
                               [0.6 color rgb<0.24,0.34,0.56>*0.8]//~Navy
                               [1.0 color rgb<1,1,1>         ]//White
                             }
                    rotate<50,0,50>
                    scale 2 }
          } 

//--------------------------------------------------------------------------
//---------------------------- Grafica de la funcion ----------------------
//--------------------------------------------------------------------------



// Dibujo ejes de coordenadas y planos que dividen los octantes
object{ AxisXYZ( max_x*1.2, max_y*1.2,max_z*1.2, Texture_A_Dark, Texture_A_Light)} 

#object {plano_xy}
//#object {plano_xz}
//#object {plano_yz}

// Comienzo bucles que "barren" el dominio

//#declare sigma = clock*1.5*pi/180;
#declare sigma = 0;
#declare y0 = min_y;
#while(y0 <= max_y)
   #declare x0 = min_x;
   #while(x0 <= max_x)

       // Calculo valores de los puntos en el dominio
       #declare x1 = x0;
       #declare y1 = y0;
       #declare x2 = x1+incremento;
       #declare y2 = y1+incremento;

       // Calculo valores de los puntos en la imagen
       #declare z1 = sin(4* sqrt(x1*x1 + y1*y1))/2;
       #declare z2 = sin(4* sqrt(x1*x1 + y2*y2))/2;
       #declare z3 = sin(4* sqrt(x2*x2 + y1*y1))/2;
       #declare z4 = sin(4* sqrt(x2*x2 + y2*y2))/2;
       // Dibujo los triangulos solo si estoy dentro de los valores permitidos
       //#if (z1        //    #if (z1>min_z) #if (z2>min_z) #if (z3>min_z) #if (z4>min_z)
               //Triangulos (caras)
               triangle {, ,  pigment{ color Green transmit 0.2 }}
               triangle {, ,  pigment{ color Green transmit 0.2 }}
               //cilindros (bordes)
               cylinder {, , 0.01 pigment{ color Yellow transmit 0.5 }}
               cylinder {, , 0.01 pigment{ color Yellow transmit 0.5 }}
               cylinder {, , 0.01 pigment{ color Yellow transmit 0.5 }}
               cylinder {, , 0.01 pigment{ color Yellow transmit 0.5 }}
       //    #end #end #end #end
      // #end #end #end #end

       #declare x0 = x0 + incremento;
   #end //y1
   #declare y0 = y0 + incremento;
#end //x1



//------------------------------------------------------------------------------------

Publicado

Recuerdo haber jugado con el Povray con una 386 y coprocesador matematico 387... en DOS. Si mal no recuerdo fue el antecesor del 3DStudio...

iOptron CEM70AG
Askar ACL200, Duoptic ED Pro 60, APO 90, Photo 90 5 elementos
QHY600M, QHY294M Pro, QHY268C, QHY183M, QHY5III462C

Garin - Buenos Aires - Argentina

Duoptic - Espacio Profundo
Mi Galeria de Fotos IG: @rfcontrerasb

Publicado

Yo hice las primeras huevadas mas o menos en esa epoca, misma maquina pero sin copro. Renderizar cualquier pavada demandaba media hora. Hoy es una maravilla de rápido.

Saludos!

Crear una cuenta o conéctate para comentar

Tienes que ser miembro para dejar un comentario

Crear una cuenta

Regístrese para obtener una cuenta nueva en nuestra comunidad. ¡Es fácil!

Registrar una nueva cuenta

Conectar

¿Ya tienes una cuenta? Conéctate aquí.

Conectar ahora
×
×
  • Crear nuevo...