Documentación de Celestia

 
  4. CELX SCRIPTS  
  4.11.1. Actividad de navegación sobre el mediterráneo  
 

Las actividades que se describirán para el caso de los scripts CELX tienen la finalidad de mostrar las posibilidades más amplias que ofrecen estos scripts frente a los de tipo CEL. Por ello, en cada actividad, se describirá el programa realizado para CEL y CELX, señalándose las motivaciones para preferir utilizar el segundo lenguaje.

En esta primera actividad se quiere realizar un crucero sobrevolando varias ciudades de los países mediterráneos. Para realizar este viaje en un script CEL se debe utilizar repetidas veces el comando gotolonglat con la longitud y latitud de laciudad deseada como parámetros. Por ejemplo, para situarse sobre la ciudad de Barcelona (Fig. 4.1) se utiliza el siguiente código:

gotolonglat { time 5

distance 1.5

longitude 2.12

latitude 41.23 }

wait { duration 5 }

print { text"Camara situada sobre la ciudad de Barcelona." origin "left" duration 4}

wait{ duration 4}

Figura 4.1

El problema que tiene utilizar este comando es que el movimiento de la cámara que se realiza entre dos ciudades es efectuado de forma automática por Celestia, por lo que el desplazamiento que se consigue no tiene la suavidad ni el recorrido deseados.

Por ello es preferible utilizar CELX para esta actividad, ya que el método goto del objeto observer permite especificar un mayor número de parámetros para obtener el movimiento deseado. Por ejemplo, para realizar un desplazamiento similar al del caso anterior pero a la ciudad de Atenas (Fig. 4.2) se debe indicar, mediante los elementos de una tabla, la posición final, la orientación final y los instantes del desplazamiento en los que se realiza la interpolación de la orientación desde la inicial hasta la final:

pos = celestia:newposition(3258.7445209412,0.00070394545237111,-

15.26153090386)

ori = celestia:newrotation(0.8208629488945,0.48690843582153,-0.29613310098648,-0.037541579455137)

param = {}

param.to = pos

param.finalOrientation = ori

param.startInterpolation = 0

param.endInterpolation = 1

obs:goto(param)

wait(5)

celestia:print ("Camara situada sobre la ciudad de Atenas.", 3, -1, -1, 1, 4)

wait(3.0)

Figura 4.2

Al tener la clave startInterpolation valor 0 y la clave endInterpolation valor 1 se indica que el cambio de orientación se realice progresivamente desde el inicio del movimiento hasta su finalización, consiguiéndose de esta forma un desplazamiento entre ciudades con el recorrido y la suavidad deseados.

Si no sabes cómo hacer el fichero .celx puedes bajárte el fichero celx1.rar pinchando aquí. Arranca Celestia y pulsa en el menu File - Open Script y selecciona el archivo descargado y descomprimido (Celx1.celx).

 
 
Índice general