Simulare spostamento in java con le coordinate

Pubblicità

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..
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");
        }
    }
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?
 
Pubblicità
Pubblicità
Indietro
Top