Frage

ich brauche einen Algorithmus zu erstellen, in dem ein "Fahrzeug" deckt einen 1262 m x 1262 m Bereich mit 20% Überlappung zwischen jedem " Bein". Die Breite jedes Bein ist 103 m , die durch meine Berechnungen gibt 16 "Beine " erforderlich, diesen Bereich zu decken. Am Ende jedes Beins, hat das Fahrzeug eine 180 Grad wiederum und vervollständigt die nächste Suche Bein. Das Fahrzeug wird mit einer konstanten Geschwindigkeit von 23 Reisen m / s

Nun ist der Grund, warum ich dies auf so bin gefragt sind einige Probleme:

  1. Was ist der beste Weg zu handhaben „Position“ in dem Fahrzeug Bezug auf die Geschwindigkeit? Nehmen 1 zweiter „Schnappschüsse“ und nur die bewegen Fahrzeug 23 Meter? (Dies scheint Art von derb) ..

  2. Wie gehe ich die Windungen bei der Ende jedes Schenkels mit Bezug auf die beschleunigen?

  3. Sollte preallocate ich die Suche Beinparameter (IE finden die Grenzen an jedem Schenkel zur Initialisierungszeit) oder dynamisch berechnet werden diese an das Ende jedes Such Bein?

  4. werde ich schließlich Umsetzung dieses Algorithmus in Java ... Welche Java Funktionen / Bibliotheken werden mir helfen mit dem Timing, Mathematik, etc?

  5. Was muss ich sonst noch beachten?

Bearbeiten

(Beantwortung einer der Antworten)

Im Grunde wird es zufällig über den Suchbereich „Objekte“ platziert wird, dass diese zu finden brauchen ... Ich werde dieses Problem in Angriff zu nehmen, wenn ich das Fahrzeug auf dem richtigen Weg gehen bekam und für das Gebiet. Das Fahrzeug hat Abdeckungsbereich, wenn es dreht .. Der minimale Wenderadius beträgt 12 Meter .. Ich war gerade am Ende jeden Such Bein drehen müssen gehen, und in eine Reihe aufstellen für die nächste Etappe

War es hilfreich?

Lösung

Sie können für Antenne oder Tauchen sucht verlorene Menschen, Flugzeuge, Wracks, etc. suchen Suche algortihms entworfen aussehen in

Eine weitere Idee ist in der Verwendung von „raumfüllenden Kurven“ zu suchen. Einige Bartholdis Arbeit finden Sie hier .

Andere Tipps

Auch wenn ich nicht komplett die Hauptidee hinter beschreiben, ich versuche, einige Antworten zu geben.

  1. Nehmen Sie "Schnappschüsse" so klein wie möglich. Stoppzeit zwischen Berechnungen und dann bewegen Sie Ihr Fahrzeug nach der Zeit. Beispiel-Code unten.

  2. Wieviel Grad hat Ihr Fahrzeug Umdrehung pro Sekunde?

  3. Wenn diese Änderung nicht, würde ich die am Anfang berechnen.

  4. Reine Java SE sollte für Ihre Bedürfnisse ausreichen. Überprüfen Sie die API für java.lang.Math und java.lang.System.


while(true) {
     final long time = System.currentTimeMillis();
     doSomeCalculations();
     doSomethingMore();
     long passedTime = System.currentTimeMillis() - time;
     vehicle.move(26.0 / 1000.0 * passedTime);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top