Arbeitsfeld in gleich große Bereiche einteilen

schmatti

Mitglied
Hallöchen liebe Java-Gemeinde.
Im Rahmen meines Studiums muss ich eine Aufgabe mittels Java lösen. Folgend: Eine Drohne soll in einem definierten Arbeitsfeld verschiedene Koordinaten anfliegen und zum Ende soll meine Porgramm die zurückgelegte Strecke, als auch die Anzahl der "Wandüberquerungen" wiedergeben. Den Gesamtbereich und die Koordinaten lese ich aus einer Datei ein.
Und nun zu meinem Problem, die "Wandüberquerungen": Am Anfang des Programmes soll abgefragt werden, wie viele Wände in dem Arbeitsfeld stehen, also in wie viele gleich große Bereiche das Feld aufgeteilt werden soll. Soweit so gut. Aber wie genau lege ich die Wände bzw. die entstandenen Bereiche am logischten fest, sodass ich im nachhinein ganz einfach mit einer Methode die Wandüberquerungen, als auch die zurückgelegte Strecke aufsummieren kann ?
Ich steh schon seid mehreren Tagen auf dem Schlauch und hoffe, dass diese Frage nicht ein zu großes Fass aufmacht.

SO mein Erzeugnis bis hier hin:
Java:
    public static void main(String[] args)
    {
        try {
            FileInput leser = new FileInput ("C:/Users/eclipse-workspace/Koordinaten.txt");
            
            String zeile = leser.leseZeile();
            
            String[] spalte = zeile.split (";");
            
            //Hier wird die erste Zeile jeweils von String in einen Wert umgewandelt
            double xAbsolut = Integer.parseInt (spalte[0]);
            double yAbsolut = Integer.parseInt(spalte[1]);
            
            //Nebenrechnungen um den Arbeitsbereich zu definieren
            double xNegativ = 0. - ( xAbsolut / 2 );
            double yNegativ = 0. - ( yAbsolut / 2 );
            double xPositiv = 0. + ( xAbsolut / 2 );
            double yPositiv = 0. + ( yAbsolut / 2 );
            
            int anzahlMauer = 0;
            
            //Anzahl der Mauern abfragen / Wiederholen bei falscher Eingabe
            while (true)
            {
                //Keine Zeichen / Buchstaben
                try
                {
                    anzahlMauer = IO.readInt("Bitte eine POSITIVE GANZE Zahl als Anzahl der Mauern eingeben: ");
                    //Keine negativen Zahlen
                    if (anzahlMauer > 0)
                    {
                        break;
                    }
                    else
                    {
                        IO.println("Bitte keine negativen Werte");
                    }
                }
                catch (InputMismatchException fehler)
                {
                    IO.println("Fehler! Das war eine fehlerhafte Eingabe! ");
                }
            }
            
            //Hier wird der Arbeitsbereich in die einzelnen Breiche definiert
             //int anzahlBereiche = anzahlMauer + 1;
            
            
             //                            //
             // Hier bitte noch ergänzen//
             //                            //
            
            
            while ((zeile = leser.leseZeile()) != null)
            {
                leser.leseZeile();
            }
            
            leser.schliesseDatei ();
        }
        catch (IOException e)
        {
            IO.println("Fehler beim lesen der Datei! " + e.getLocalizedMessage());
            System.exit(1);
        }
    }

}

Ich danke schonmal für eure Beihilfe.
Gruß schmatti
 

LimDul

Top Contributor
Nun, die Bereiche sollen gleich groß sein. Ergo, wenn du eine Breite von 100 Metern hast und eine Wand, dann steht bei 50 Metern.
Hast du 9 Wände stehen die bei 10,20,30,40,50,60,70,80,90 Metern.

Einfache eine Strecke in AnzahlWände + 1 gleich große Strecken aufteilen,
 

Times

Bekanntes Mitglied
Java:
d
Hi.
Bin mir nicht sicher ob ich die Frage korrekt verstanden habe, aber ich versuche es mal wiederzugeben:
Bitte korrigieren wenn falsch!

Du hast ein großes Feld welches von einer Drohne abgeflogen werden soll. Dieses Feld ist in gleichgroße
Bereiche aufgeteilt werden sodass du anhand des Flugweges der Drohne u.a. die Dauer in einzelnen Bereichen bestimmen kannst als auch die Bereichswechsel dokumentieren kannst.

Was im folgendem noch nicht eingearbeitet / bekannt ist, ist die Umrechnung der reelen Koordinaten in virtuelle Koordinaten die in einfache Bereiche aufgeteilt sind!!

Ich nenne die Gesamt-Fläche mal "Map" und einen einzelnen Bereich "Chunk".
Für die Map würde ich eine Klasse anlegen und für den Chunk auch eine eigene Klasse.
Die Klasse Map hat ein 2-Dimensionales Array mit Chunks.

Nehmen wir an die Map ist 10000m² (100x100) groß und ein Chunk auf 10x10 Meter, also 100m² eingeteilt, dann hast du 100 Chunks in deiner Map.

Chunk[][] chunks = new Chunk[10][10];

Diese initialisiert du dann einfach entsprechend mit den Karten-Daten. Im Chunk solltest du festhalten:
Chunk-Positionen X,Y (Bezogen auf das Chunk-Array). Hier solltest du so vorgehen, das du später die Grid-Koordinaten anhand der tatsächlichen Koordinate berechnen kannst:

Koordinate: 43.6 ; 72.1
Chunk ermitteln:
int gridX = 43.6 / 10 = 4 (Floor!).
int gridy = 72.1 / 10 = 7 (Floor!).

Chunk c = chunks[gridX][gridy]

Nun musst du deiner Map Klasse noch eine "Processing" Methode hinzufügen um die Flugstrecke einzuarbeiten um dann die Chunkwechsel nach eigenem belieben zu ermitteln.. zb:

Java:
int chunkChanges = 0;
Chunk lastChunk = null;
processFlyingRoute(Point p){
    
    Chunk activeChunk = chunks[p.x / 10][p.y / 10];
    if (activeChunk != null){
        if (lastChunk != null){
            if (activeChunk != lastChunk){
                chunkChanges++;
            }
        }
    }
    lastChunk = activeChunk;

}

Hoffe ich konnte dir damit weiterhelfen!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
U Kann man bei Java gleich mehrere Bedingungen prüfen in der If, aber in einem "Satz"? Java Basics - Anfänger-Themen 1
K Mail senden, nachdem Anwendung beendet wurde (gleich wie) Java Basics - Anfänger-Themen 4
U zwei 2D arrays auf gleich sein überprüfen Java Basics - Anfänger-Themen 14
I Sortiert eine HashMap nicht gleich wie eine ArrayList? Java Basics - Anfänger-Themen 1
S Laufzeit Quicksort wenn alle Elemente gleich sind Java Basics - Anfänger-Themen 4
M prüfen ob alle array werte gleich sind Java Basics - Anfänger-Themen 27
D Funktion zwei Arraylisten zu verleichen ob gleich funktioniert nicht Java Basics - Anfänger-Themen 26
D Zwei Strings sind gleich bei if aber nicht true Java Basics - Anfänger-Themen 2
J Strings sind gleich werden aber ungleich ausgewertet Java Basics - Anfänger-Themen 2
P String größer kleiner gleich vergleichen Java Basics - Anfänger-Themen 6
S Problem: Array alle Einträge gleich Java Basics - Anfänger-Themen 10
R getrennte Objekte aus Klasse erstellen : warum Inhalt dann gleich ? Java Basics - Anfänger-Themen 2
S Groß- und Kleinbuchstaben gleich behandeln Java Basics - Anfänger-Themen 3
F String length nicht gleich der Ausgabe Java Basics - Anfänger-Themen 10
J JTable Wert gleich überschreiben Java Basics - Anfänger-Themen 6
P OOP Testen ob 2 Strings gleich sind Java Basics - Anfänger-Themen 8
F Doppeltes Gleich? Java Basics - Anfänger-Themen 8
GadgetSofa .txt Datei erstellen und gleich wieder Löschen? Java Basics - Anfänger-Themen 12
K Variablen Instanzen gleich aber warum ? Java Basics - Anfänger-Themen 3
J Klassen Warum ist (a.equals(b)) gleich (a==b)? Java Basics - Anfänger-Themen 13
B Threads Geschwindigkeit der Befehle auf verschiedenen PCs gleich machen Java Basics - Anfänger-Themen 3
O Objekte gleich oder verschieden? Java Basics - Anfänger-Themen 14
D Frame schließt gleich alle Frames Java Basics - Anfänger-Themen 5
K Wann genau brauche ich die Anweisung gleich null? Java Basics - Anfänger-Themen 10
turmaline String teilen in gleich große strings Java Basics - Anfänger-Themen 15
D Strings sind ungleich obwohl sie in der Ausgabe gleich sind Java Basics - Anfänger-Themen 10
B Methoden Mein erstes Programm - und gleich Probleme Java Basics - Anfänger-Themen 6
D X Werte in ArrayList von Point Objekte alle gleich ? Java Basics - Anfänger-Themen 11
D Warum ist int a = 3*2+1*3; gleich 9 und nicht gleich 27 Java Basics - Anfänger-Themen 4
F While Schleife ausführen, wenn String gleich ist. Java Basics - Anfänger-Themen 2
M Problem mit größer oder gleich >= Java Basics - Anfänger-Themen 8
lumo warum double nicht gleich double ist??? Java Basics - Anfänger-Themen 5
feuervogel Datentypen Zwei Sets sind gleich, aber dann doch nicht Java Basics - Anfänger-Themen 9
T Border Layout alle mittleren felder gleich groß Java Basics - Anfänger-Themen 3
A [gelöst]Zwei Ausgaben, die eigentlich gleich sein sollten Java Basics - Anfänger-Themen 9
T .split(";") nicht gleich große arrays werden erzeu Java Basics - Anfänger-Themen 2
-horn- Mathe: Variable gleich Infinity, wie mit if rausfiltern? Java Basics - Anfänger-Themen 9
J Java plus exe gleich Java Basics - Anfänger-Themen 6
D Inhalt eines Dialogfeldes wird nicht gleich angezeigt? Java Basics - Anfänger-Themen 6
U "gleich gleich" oder equals Java Basics - Anfänger-Themen 9
M Variablennamen als Parameter gleich Var. als Klassenvariable Java Basics - Anfänger-Themen 2
N long geteilt durch long gleich null ? Java Basics - Anfänger-Themen 8
G testen ob int gleich null Java Basics - Anfänger-Themen 15
G int gleich long ? Java Basics - Anfänger-Themen 2
J JLabel gleich in einer Schriftfarbe anzeigen Java Basics - Anfänger-Themen 4
L Bedingung immer false, auch wenn zwei Strings gleich sind Java Basics - Anfänger-Themen 11
S Bilder gleich am Start zeichnen. Java Basics - Anfänger-Themen 15
R Ist ! gleich false? Java Basics - Anfänger-Themen 3
L int und double auf gleich prüfen? Java Basics - Anfänger-Themen 12
M Imagegroesse angeblich immer gleich 0 Java Basics - Anfänger-Themen 2
X bei ArrayListen in einer ArrayList werden alle gleich befüll Java Basics - Anfänger-Themen 6
V Eingabe gleich als char Java Basics - Anfänger-Themen 3
B Zufallszahlen erzeugen die nicht gleich sind ;/ Java Basics - Anfänger-Themen 10
Silver-Blue Random aus ArrayList immer gleich Java Basics - Anfänger-Themen 9
R in einer TextArea den Cursor gleich anzeigen lassen Java Basics - Anfänger-Themen 3
G Best Practice Wie große "Tabellen" effizient durchsuchen und Daten händeln? Java Basics - Anfänger-Themen 15
C Große Zahlen vergleichen Java Basics - Anfänger-Themen 19
S 4 große Textdateien zu einer Mergen Java Basics - Anfänger-Themen 5
K Große Datenliste Java Basics - Anfänger-Themen 2
E Große Datenmengen effizient in CSV File speichern Java Basics - Anfänger-Themen 4
1 Extrem große Variable Java Basics - Anfänger-Themen 1
S Best Practice MVC und große Datenmengen aus einer mySQL - Datenbank Java Basics - Anfänger-Themen 24
M Mergesort Aufgabe große Probleme Java Basics - Anfänger-Themen 9
P Schneller Quadratzahltest für beliebig große natürliche Zahlen Java Basics - Anfänger-Themen 2
T Scanner für große Textdatei Java Basics - Anfänger-Themen 11
N Input/Output Große Dateien schnell Speichern/auslesen Java Basics - Anfänger-Themen 16
B große jpeg verarbeiten Java Basics - Anfänger-Themen 8
K Große Gleitkommazahlen runden Java Basics - Anfänger-Themen 8
X Compiler-Fehler javac - 08 eine zu große int? Java Basics - Anfänger-Themen 11
F Große Potenzen berechnen Java Basics - Anfänger-Themen 6
J Große .txt einlesen - Idee? Java Basics - Anfänger-Themen 16
E Datentypen Große Zahl erzeugen Java Basics - Anfänger-Themen 5
P Kleines Projekt -> Große Überlegungen Java Basics - Anfänger-Themen 2
F Große Daten und große Array Java Basics - Anfänger-Themen 21
O Performant große Dateien durchsuchen Java Basics - Anfänger-Themen 8
J Große animierte Gif preloaden und solange mit einer nicht animierten ersetzen Java Basics - Anfänger-Themen 5
Povlsen84 Datentypen Große, sortierte, schnelle Datenstruktur Java Basics - Anfänger-Themen 9
H Große Projekte mit Java - Ausführbare Datei Java Basics - Anfänger-Themen 2
K Eclipse EMF und das große HÄ? Java Basics - Anfänger-Themen 5
G String aus Zahlen multiplizieren -> unendlich große ! Java Basics - Anfänger-Themen 13
M Spielt der Debugger bei java eine große Rolle Java Basics - Anfänger-Themen 3
C große Matrizen, Performance, (Pointer?) Java Basics - Anfänger-Themen 6
L JTextArea große setzen Java Basics - Anfänger-Themen 5
S große probleme mit java Java Basics - Anfänger-Themen 6
R große Datenmenge in Datei schreiben Java Basics - Anfänger-Themen 8
M FileOutputStream und zu große Zahlen! Java Basics - Anfänger-Themen 10
J Große *.Text Datei zum verschicken in viele kleine Java Basics - Anfänger-Themen 7
B Probleme große Strings zu schreiben Java Basics - Anfänger-Themen 2
A große errechnete datenmengen sofort in datei schreiben? Java Basics - Anfänger-Themen 6
S Große Text dateien einbinden Java Basics - Anfänger-Themen 3
R große Zahlen Java Basics - Anfänger-Themen 4
R Große Zahlen Java Basics - Anfänger-Themen 3
T Große Zahlen aufgesplittet in verketteter Liste speichern Java Basics - Anfänger-Themen 4
N Große Probleme mit StingBuffer und Array Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben