Fundamentos de Programación  >  Clases  >  Ejercicios  >  ejercicio 1  >  faq

Fundamentos de Programación

Ejercicio 1 - FAQ

Preguntas frecuentes de los alumnos.

Última actualización: 18 de octubre de 2010

¿Cómo se entrega el ejercicio?

Por email dirigido a jmanas@dit.upm.es, adjuntando los ficheros .java pedidos.

¿Hay que documentar el código?

Sí, usando javadoc;
si se entrega sin documentar, la nota se dividirá por 2.

¿Cómo se calcula el delta para viajar?

Para viajar de A a B, en general basta calcular
delta = (B.longitud - A.longitud) / PASOS

... pero esa no siempre es la forma ideal de viajar de A a B.

Por ejemplo, para viajar de Santiago de Chile a Auckland en Nueva Zelanda:

Santiago: longitud = 70 45 W = -1.2348
Auckland: longitud = 174 45 E = 3.0499
d1 = 4.2847
que esa no es la mejor forma de hacer el viaje puede verse en el siguiente mapa:
sería más corto el recorrido d2 .
Para calcular d2 basta tomar el punto que tiene longitud negativa y sumarle 2π (es como dar una vuelta a la tierra).
Con este 'truco' podemos calcular
Santiago: longitud + 2π = 5.0483
Auckland: longitud = 3.0499
d2 = -1.9984
El signo negativo nos dice que debemos viajar hacia el oeste, en deltas de valor -1.9984 / PASOS.

Este desplazamiento en 2π lo debemos aplicar al punto que tenga una longitud negativa (al oeste del meridiano cero), siempre que la distancia "normal" d1 sea mayor que π.


¿Qué distancia hay que calcular entre 2 puntos 3D?

La distancia pitegórica en un espacio de 3 dimensiones;
o sea, la raíz cuadrada de la suma de los cuadrados de la diferencia en X, en Y y en Z:
  1. calcula la diferencia en X, en Y y en Z
  2. elévelas al cuadrado
  3. súmelas
  4. devuelva la raíz cuadrada

Datos para probar si construyo bien un Punto3D

Si crea un punto 3D usando las coordenadas de Madrid, "40 26 N 3 42 W" el constructor debe calcular los siguientes valores:

También es buena idea probar con puntos evidentes como


Datos para probar la proyección ortográfica

Usando el mapa
String MAPA = "spain_550.png";
Punto3D PUNTO_0 = new Punto3D("55 0 N 20 0 E");
double RADIO = 550 / 2;
debe obtener los siguientes valores:

Java no encuentra Color.RED

Importe la clase Color:
    import java.awt.Color;

¿Dónde puedo encontrar imágenes ortográficas de la Tierra?

Elija longitud y latitud y colóquese lo bastante lejos:

¿Cómo se calculan las coordenadas x y z?

Usando operaciones trigonométricas

Donde debe expresar longitud y latitud en radianes y usar R = 1.


¿Cómo se calculan longitud y latitud?

Usando operaciones trigonométricas

Donde debe usar R = 1.


¿Cómo se pasa de radianes a grados y minutos?

Tenemos por ejemplo, la longitud de Madrid, "3 42 W":

  1. getLongitud() devuelve radianes: -0.0645771823237902
  2. nos quedamos con el valor absoluto: 0.0645771823237902
  3. pasamos radianes a grados sexagesimales: 3.7000000000000006
  4. extraemos la parte entera: 3
  5. extraemos la parte decimal: 0.7000000000000006
  6. pasamos la fracción a minutos multiplicando por 60: 42.000000000000036
  7. nos quedamos con la parte entera: 42
  8. escribimos grados y minutos: "3 42"
  9. como era una longitud negativa, añadimos oeste: "3 42 W"

Las mismas operaciones se usan para presentar la longitud y la latitud.