Xeno_01
Nuovo Utente
- Messaggi
- 16
- Reazioni
- 1
- Punteggio
- 23
Ciao a tutti, è da settimane che sto impazzendo per un progetto per un esame.. bene o male ho fatto quasi tutto, mi manca alcune cose in particolare e soprattutto il problema nel titolo..in pratica devo gestire uno sciame di robot all'interno di una superficie piana illimitata, dove all'interno della superficie ci saranno figure come cerchi e rettangoli con delle coordinate ben precise..questi robot si devono muovere attraverso dei comandi che vengono parsati. Ora andiamo piu nella radice del problema..
Come posso fare in modo che lo spostamento del robot venga simulato? Non devo fare nessuna UI ma solo attraverso terminale.
X e Y sono le coordinate, s è la velocità espressa in metri al secondo. Come unità di misura devono essere usati i metri (anche questo come lo posso rappresentare in java?
Java:
public void moveCommand(double[] args) {
if (args.length == 3) {
double x = args[0];
double y = args[1];
double speed = args[2];
double count = 0;
double delta_x = x - robot.getPosition().getX();
double delta_y = y - robot.getPosition().getY();
double theta = Math.atan2(delta_y, delta_x);
double doubleValue = theta * 180 / Math.PI;
int degrees = (int) doubleValue;
robot.setDirection(degrees);
double distance = Math.sqrt(Math.pow(x - robot.getPosition().getX(), 2) + Math.pow(y - robot.getPosition().getY(), 2));
// Calcola il tempo necessario per raggiungere la destinazione
double time = distance / speed;
System.out.println("Il robot si sta spostando..");
// Muovi il robot verso la destinazione
robot.getPosition().setX(x);
robot.getPosition().setY(y);
System.out.println("Il robot è arrivato a (" + robot.getPosition().getX() + ", " + robot.getPosition().getY() + ") in " + time + " secondi con direzione rivolta a " + robot.getDirection() + "°");
} else {
throw new IllegalArgumentException("Il comando MOVE richiede 3 argomenti: x, y, speed");
}
}
X e Y sono le coordinate, s è la velocità espressa in metri al secondo. Come unità di misura devono essere usati i metri (anche questo come lo posso rappresentare in java?