ho la seguente configurazione di elementi nella vita reale:calcolate nuove coordinate da vecchi e coordinate x ed y
Il radar è statico, che significa che ha sempre la stessa posizione. L'A
-item può spostarsi e la sua posizione può essere qualunque. Dal radar posso leggere le coordinate x
e di A
in relazione al radar. Ho scritto le seguenti classi per descrivere la posizione di ciascun elemento:
public class Position {
public enum Direction {
EAST, WEST, NORTH, SOUTH
};
public final Direction latitudeDirection, longitudeDirection;
public final float latitude, longitude, altitude;
public Position(Direction latitudeDirection, Direction longitudeDirection,
float latitude, float longitude, float altitude) {
this.latitudeDirection = latitudeDirection;
this.longitudeDirection = longitudeDirection;
this.latitude = latitude;
this.longitude = longitude;
this.altitude = altitude;
}
public Position(float radarX, float radarY) {
// TODO: Implement the question here
this.altitude = Config.RADAR_POSITION.altitude;
}
}
class Config {
// Position of the radar
public static final Position RADAR_POSITION = new Position(
Position.Direction.NORTH, // Latitude direction
Position.Direction.EAST, // Longitude direction
55.0f, // Latitude
13.0f, // Longitude
60.0f); // Altitude
// Facing direction of the radar in degrees. 0° is north, advancing
// clockwise.
public static final float RADAR_FACING_DIRECTION = 10.0f;
}
Ora date le coordinate geografiche del radar, le x
e y
coordinate di A
rispetto al radar e la direzione rivolta verso il radar rispetto alla il nord, come posso calcolare le coordinate geografiche assolute di A
?
La curvatura della terra non è un problema poiché il valore massimo di x
e/o non può essere superiore a un paio di centinaia di metri.
Il tuo problema equivale a ruotare un'immagine di 10 gradi. Ci sono un sacco di letteratura in materia. Una volta ruotati, aggiungi le coordinate della tua origine (il radar). – SJuan76
Ma sarebbe sbagliato. Le coordinate geografiche sono gradi dal centro della terra. Le mie coordinate in riferimento al radar sono solo metri. Non posso aggiungere quei due insieme. – Dimme
Dato che (x, y) è la coordinata corrente 'A'. E se conosci l'angelo (theta) a cui il radar viene ruotato rispetto alla terra, puoi facilmente trovare i nuovi cordinati (xnew, ynew) come: 'xnew = x * cos (theta) - y * sin (theta); ynew = x * sin (theta) + y * cos (theta); ' –