Hello,
in unserem Projekt sollen 3D Objekte (Hochspannungsmaste) konstruiert werden, bei denen ich eine while schleife implementieren wollte, die die Abstände zwischen den eingegebenen Koordinaten prüft und bei Unterschreitung des Mindestabstands von 50 Metern, bzw, Längeneinheiten direkt die erneute Positionseingabe des letzten Objekts auslöst.
Der Abschnitt sieht so aus:
Der kommentierte Abschnitt in der Mitte ist mein work in progress. Ich weiß einfach nicht wie ich das am schlausten lösen kann. Jedes Objekt muss ja immerhin mit jedem anderen schon erfolgreich positionierten Objekt verglichen werden. An sich ist das ja auch lösbar, zumal man insgesamt maximal 10 Objekte konstruieren kann, allerdings wird das mit meiner Methode viel zu viel Code.
Deshalb: hat jemand von euch Ideen und Vorschläge wie ich ohne Redundanz eine Abfrage auf die Beine stelle?
Vielen lieben Dank schon einmal im Voraus!
in unserem Projekt sollen 3D Objekte (Hochspannungsmaste) konstruiert werden, bei denen ich eine while schleife implementieren wollte, die die Abstände zwischen den eingegebenen Koordinaten prüft und bei Unterschreitung des Mindestabstands von 50 Metern, bzw, Längeneinheiten direkt die erneute Positionseingabe des letzten Objekts auslöst.
Der Abschnitt sieht so aus:
Java:
double[] x = new double[n];
double[] z = new double[n];
for (int i1 = 0; i1 < n; i1++) {
x[i1] = Tastatur.liesDouble("x Koordinate für Position von Mastnummer " + (i1 + 1) + " von " + n + ": ");
z[i1] = Tastatur.liesDouble("z Koordinate für Position von Mastnummer " + (i1 + 1) + " von " + n + ": ");
//Korrekter Mindestabstand von 50 Metern
if (i1>0) {
while (Math.sqrt(Math.pow(x[0] - x[i1], 2) + Math.pow(z[0] - z[i1], 2)) < 50) /* &&
Math.sqrt(Math.pow(x[i1-2] - x[i1], 2) + Math.pow(z[i1-2] - z[i1], 2)) < 50 &&
Math.sqrt(Math.pow(x[i1-3] - x[i1], 2) + Math.pow(z[i1-3] - z[i1], 2)) < 50)
*/
{
System.out.println();
System.out.println("Whoops... Bitte beachten Sie den nötigen Abstand von 50 Metern zwischen den Masten. ");
x[i1] = Tastatur.liesDouble("x Koordinate für Position von Mastnummer " + (i1 + 1) + " von " + n + ": ");
z[i1] = Tastatur.liesDouble("z Koordinate für Position von Mastnummer " + (i1 + 1) + " von " + n + ": ");
}
}
Der kommentierte Abschnitt in der Mitte ist mein work in progress. Ich weiß einfach nicht wie ich das am schlausten lösen kann. Jedes Objekt muss ja immerhin mit jedem anderen schon erfolgreich positionierten Objekt verglichen werden. An sich ist das ja auch lösbar, zumal man insgesamt maximal 10 Objekte konstruieren kann, allerdings wird das mit meiner Methode viel zu viel Code.
Deshalb: hat jemand von euch Ideen und Vorschläge wie ich ohne Redundanz eine Abfrage auf die Beine stelle?
Vielen lieben Dank schon einmal im Voraus!