Wie vergrößere ich ein Rechteck in alle Richtungen um eins und bekomme dessen Rand?

lgplay

Mitglied
Hi,
hoffe, mir kann jemand helfen. Also ich möchte in Minecraft ein Plugin schreiben, bei dem ich einen Bereich vergrößere.
Da ich aber nicht jedes Mal alle Blöcke durchgehen möchte um zu Checken, ob sie da sind. Will ich nur die Ränder des erweiterten Bereich bekommen.
Mein Ansatz war ist gerade das hier. Leider geht beim ersten Mal gar kein Block weg und zwischendurch fehlen auch ein paar

Java:
                Rectangle rec = new Rectangle(x,z,1,1);
                rec.setLocation((int) rec.getX() - 1, (int) rec.getY() - 1);
                rec.setSize((int) rec.getWidth() + 1, (int) rec.getHeight() + 1);

                for (int x1 = (int) rec.getMinX(); x1 <= rec.getMaxX(); x1++) {
                    destroy(new Location(world, x1, y, z + rec.getWidth()));
                }

                for (int z1 = (int) rec.getMinY(); z1 <= rec.getMaxY(); z1++) {
                    destroy(new Location(world, x + rec.getWidth(), y, z1));
                }

                for (int x1 = (int) rec.getMaxX(); x1 >= rec.getMinX(); x1--) {
                    destroy(new Location(world, x1, y, z - rec.getWidth()));
                }

                for (int z1 = (int) rec.getMaxY(); z1 >= rec.getMinY(); z1--) {
                    destroy(new Location(world, x - rec.getWidth(), y, z1));
                }
 

MoxxiManagarm

Top Contributor
Mir erschließt sich das alles noch nicht so richtig (ich habe aber auch null Plan von Minecraft), ein paar Fragen:
1. Zum Verständnis
Code:
Du hast ein Rechteck

·--·
|  |
|  |
·--·

Das erweiterst du um 1 in x und y

·---·
|  ||
|  ||
|--·|
·---·

bzw durch deine Verschiebung

·---·
|·--|
||  |
||  |
·---·

Dann willst du die inneren Elemente (bei mir 5) entfernen

·---·
|   |
|   |
|   |
·---·

und weißt nicht wie du an die rankommst?

2. Was hat z in deinem Beispiel mit y zu tun? Heißt das du hast ein vertikales Rechteck? (Tür/Fenster....)

---

Angenommen 1 ist so korrekt, dann sind die inneren Elemente nach Verschiebung):
Code:
( 1 / [1, width[) + ( 1 / [2, height[)
 
K

kneitzel

Gast
Wenn das Rechteck um eins größer sein soll in alle Richtungen, dann ist die Breite und Höhe natürlich jeweils +2 - denn es ist ja +1 in jede Richtung.

Und Minecraft Addon Entwicklung kennen wir nicht. Kannst Du uns einmal erläutern, was die Methode destroy macht und was die Location wie ist?

Wenn Du mit Location lediglich einen Punkt in der Welt bekommst, wobei der Punkt definiert ist durch die welt, x, y und z und destroy dann das Objekt, so es eines gibt, an der Stelle entfernt:

Was genau willst du dann machen? Wie hängt das zweidimensionale Rechteck mit dem zusammen? Wenn es um eine Projektion geht (Die 3D Welt wird ja auf die 2D Anzeige projeziert, dann brauchst Du eine Umrechnung um dann zu wissen, welche Objekte da betroffen sind.

Und dann ist auch die Frage, wie Du da an alle Objekte heran gehst. Wenn du einfach einen Kubus hast mit einer Größe von dx, dy und dz und du willst alle Punkte prüfen, dann brauchst Du keine drei schleifen hintereinander sondern ineinander:
Schleife über alle x-Koordinaten des Kubus.
-> Schleife über alle y-Koordinaten des Kubus
--> Schleife über alle z-Koordinaten des Kubus
---> mach etwas mit x, y, z

Das ist aber ein Algorithmus, der extrem schlecht skaliert mit der Größe des Kubus....
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Es wird erst gezeichnet, wenn ich das Fenster vergrößere? Java Basics - Anfänger-Themen 20
laxla123 Rechteck programmieren Java Basics - Anfänger-Themen 4
I Viereck / Rechteck Prüfung innerhalb einem bestimmten Bereich Java Basics - Anfänger-Themen 2
M Rechteck wird nicht angezeigt Java Basics - Anfänger-Themen 3
J Kreis soll die gleiche Fläche wie das Rechteck haben wie mache ich das? Java Basics - Anfänger-Themen 3
S Erste Schritte Java - Applet - Rechteck ständig versetzen Java Basics - Anfänger-Themen 14
GRAZZ0R MouseListener - Rechteck Bewegen Java Basics - Anfänger-Themen 1
S Erste Schritte Ein Rechteck aus Sternchen mit Wiederholungsanweisung erstellen Java Basics - Anfänger-Themen 2
J Rechteck zeichnen mit Canvas Java Basics - Anfänger-Themen 7
T Rechteck Programmieren Java Basics - Anfänger-Themen 4
F Klasse Rechteck definieren Java Basics - Anfänger-Themen 21
S Rechteck zeichnen Java Basics - Anfänger-Themen 2
M Erste Schritte Gefülltes Rechteck programmieren Java Basics - Anfänger-Themen 1
T GUI anstatt Bild schwarzes Rechteck gespeichert Java Basics - Anfänger-Themen 0
S Ein Rechteck soll an einer Seite gespiegelt werden. Java Basics - Anfänger-Themen 5
G Methoden Nicht überlappte teile eines Rechteck's Java Basics - Anfänger-Themen 9
T Rechteck Koolision Java Basics - Anfänger-Themen 4
O Rechteck Java Basics - Anfänger-Themen 10
X Rechteck Java Basics - Anfänger-Themen 2
I Rechteck Zeichnen Java Basics - Anfänger-Themen 9
M Farbiges Rechteck zeichnen Java Basics - Anfänger-Themen 2
F Rechteck/Quadrat getroffen? Java Basics - Anfänger-Themen 2
K Rechteck/Quadrat Java Basics - Anfänger-Themen 5
P Rechteck Zufallsverschiebung mit Abprallen Java Basics - Anfänger-Themen 12
M Umfang von Rechteck oder Kreis anhand der Parameter Java Basics - Anfänger-Themen 2
J Rechteck Java Basics - Anfänger-Themen 8
G Rechteck zeichen Java Basics - Anfänger-Themen 4
B Rechteck aus Sternen Zeichnen Java Basics - Anfänger-Themen 8
J itext - Rechteck in PdfCell Java Basics - Anfänger-Themen 2
E klasse für ein Rechteck schreiben Java Basics - Anfänger-Themen 25
K Rechteck mit einem Loch in dem Mitte Java Basics - Anfänger-Themen 11
B Swing Rechteck zeichnen Java Basics - Anfänger-Themen 14
H Rechteck ziehen bei einer Application Java Basics - Anfänger-Themen 2
Dilandau rechteck des applet inhalts als gif-datei speichern? Java Basics - Anfänger-Themen 2
R mit MouseDragged Rechteck verschieben. Java Basics - Anfänger-Themen 2
G Linie innerhalb Rechteck Java Basics - Anfänger-Themen 2
G dicke linie zeichnen bzw schräges rechteck füllen Java Basics - Anfänger-Themen 2
W Problem mit einem Programm Rechteck Fläche, Umfang Java Basics - Anfänger-Themen 6
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
B Alle Strings bis zu einer Maimallänge aufzählen, die Bedingung erfüllen Java Basics - Anfänger-Themen 13
D Apache HTTPClient für alle Fälle Java Basics - Anfänger-Themen 41
missy72 Methoden Alle rekusiven Aufrufe abbrechen Java Basics - Anfänger-Themen 21
S IntelliJ geht alle Klassen durch Java Basics - Anfänger-Themen 9
B Alle Zahlen finden, die 3 bestimmte Ziffern enthalten? Java Basics - Anfänger-Themen 9
K wie kann ich alle Attribute von dem Objekt(pagode) ausgeben lassen ? Java Basics - Anfänger-Themen 3
I Greenscreen, funktioniert nicht zu 100%... nicht alle Pixel werden geändert Java Basics - Anfänger-Themen 1
Butzibu Image Loader lädt nicht alle Bilder: Java Basics - Anfänger-Themen 4
sserio Wieso werden nicht alle Primzahlen bis 1000 in meine Liste gepackt ? Java Basics - Anfänger-Themen 8
E Select nimmt nicht alle Where /AND befehlen an Java Basics - Anfänger-Themen 4
K Erste Schritte Wie schnell ist LinkedHashMap im Vergleich zur ArrayList, wenn alle Entries durchlaufen werden? Java Basics - Anfänger-Themen 47
R Methoden Eclipse schlägt mir nicht alle Möglichkeiten vor Java Basics - Anfänger-Themen 4
melisax Alle Möglichkeiten eines Wortes angeben Java Basics - Anfänger-Themen 3
B Programm, dass alle 3 Tage eine Webseite öffnet? Java Basics - Anfänger-Themen 20
J Alle .java Dateien von einem Verzeichnis in eine Zip speichern Java Basics - Anfänger-Themen 2
J Alle Dateien aus einem Verzeichnis laden Java Basics - Anfänger-Themen 10
Bademeister007 Operatoren Alle Zahlen einer ArrayList die durch 5 teilbar ist Java Basics - Anfänger-Themen 2
E Wie gebe ich alle Daten zwischen zwei Zeitpunkten aus? Java Basics - Anfänger-Themen 2
crrnogorka Letzte Zeile einer Tabelle "überschreibt" alle anderen Zeilen Java Basics - Anfänger-Themen 1
C alle möglichen Kombinationen zweier Ziffern auf drei / vier / und 'n" Stellen Java Basics - Anfänger-Themen 11
H Alle Geraden zahlen bis 10 ausgeben Java Basics - Anfänger-Themen 11
L Alle Ziele in einem Raster abknallen Java Basics - Anfänger-Themen 17
J Alle Werte eines Strings zusammen addieren Java Basics - Anfänger-Themen 15
S Laufzeit Quicksort wenn alle Elemente gleich sind Java Basics - Anfänger-Themen 4
B Alle Links in einem Text suchen und ersetzen mit einem neuen Link Java Basics - Anfänger-Themen 18
K Array alle Werte aufsummieren und ausgeben Java Basics - Anfänger-Themen 6
Dimax Erste Schritte String replace alle Zeichen Java Basics - Anfänger-Themen 10
L Breadth-First Search statt einem Pfad, alle Pfade herausfinden Java Basics - Anfänger-Themen 4
X Erste Schritte String: Alle doppelten Leerzeilen entfernen Java Basics - Anfänger-Themen 21
M Regex-Ausdruck: Alle Zeichen bis auf ein bestimmtes erlauben (p{L}) Java Basics - Anfänger-Themen 5
I Alle Elemente von zwei Listen vergleichen Java Basics - Anfänger-Themen 1
Kirby.exe Alle möglichen Error Möglichkeiten abfangen Java Basics - Anfänger-Themen 33
M Unterklasse soll nicht alle Methoden erben Java Basics - Anfänger-Themen 3
V Erste Schritte for-Schleife; Ausgabe soll alle 5 Sekunden erfolgen. Java Basics - Anfänger-Themen 4
A Alle true Werte eines boolean Arrays herausfiltern Java Basics - Anfänger-Themen 19
D Alle Möglichkeiten, n-Anzahl aus Elementen aus einem Array zu wählen, ausgeben? Java Basics - Anfänger-Themen 23
M prüfen ob alle array werte gleich sind Java Basics - Anfänger-Themen 27
F Alle Zeichenkombinationen eines Strings iterativ herausfinden Java Basics - Anfänger-Themen 26
L Classpath Alle Dateien im Classpath finden Java Basics - Anfänger-Themen 4
G Überprüfen ob alle Ziffern von 1-9 in einem Integer vorhanden sind Java Basics - Anfänger-Themen 6
J Erste Schritte Alle möglichen ausgaben von 5 Zahlen als Vector Java Basics - Anfänger-Themen 7
R Methoden Entferne alle identische Knoten (Typ String) aus verkettete Liste Java Basics - Anfänger-Themen 8
D Methoden Eigene Methode um alle Ausgaben aufzurufen Java Basics - Anfänger-Themen 17
F Ordner auf alle Unterdatein abfragen Java Basics - Anfänger-Themen 3
A In einem String alle Eigennamen zählen Java Basics - Anfänger-Themen 6
B Klassen Alle Unter-Objekte durchlaufen in der Hauptklasse Java Basics - Anfänger-Themen 10
W ArrayList löscht alle Elemente bis auf eines Java Basics - Anfänger-Themen 2
B Webservice -> alle parameter bekommen von form Java Basics - Anfänger-Themen 2
das_leon Alle Zeilen einer CSV-Datei auslesen Java Basics - Anfänger-Themen 1
C HashMap - alle keys haben values der letzten put-Anweisung Java Basics - Anfänger-Themen 3
F Eclipse alle Projekt weg Java Basics - Anfänger-Themen 6
V Alle Komponenten eines JPanels Java Basics - Anfänger-Themen 14
I gemeinsame Config-Datei für alle Windows-User Java Basics - Anfänger-Themen 5
H JButton - Wechsel der Textfarbe alle 500ms Java Basics - Anfänger-Themen 10
DaCrazyJavaExpert Alle Zahlenkombinationen aus 9 zahlen finden Java Basics - Anfänger-Themen 17
F Alle Objekte einer Klasse nach Eigenschaft durchsuchen Java Basics - Anfänger-Themen 8
M Alle Instanzen einer Klasse ansprechen Java Basics - Anfänger-Themen 4
S Problem: Array alle Einträge gleich Java Basics - Anfänger-Themen 10
Z Enter Taste alle 0,5 Sekunden ausführen Java Basics - Anfänger-Themen 1
U RegEx alle Kommas bei den Zahlen in Punkt umwandeln Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben