Mein Rechteck hat 4 Seiten, ich soll je nach dem, welche Seite berührt wurde, etwas ausführen, wie prüfe ich das?

berserkerdq2

Bekanntes Mitglied
Mit:
Java:
getrectangle().intersects(circle.getBounds2D())

Kann ich schauen, ob mein Rechteck von meinem Kreis berührt wurde. Das klappt auch.

Nun soll ich jedoch einstellen, dass wenn er die linke oder rechte Seite (egal wo dort) von dem Rechteck berührt, ich ein System.out.println ausgeben muss.

Und wenn er die obere oder untere Seite des Rechtecks (egal wo dort) vom Rechteck berührt, muss ich ein anderes System.out.println ausgeben. Wie mache ich das nun?

ALso wie prüfe ich, welche Seite er getroffen hat?
 

mihe7

Top Contributor
ALso wie prüfe ich, welche Seite er getroffen hat?
Vielleicht erstmal zeichnen?

Kann ich schauen, ob mein Rechteck von meinem Kreis berührt wurde. Das klappt auch.
Das wage ich zu bezweifeln:
1651511521612.png
Wie unschwer zu erkennen ist, könnte man das rote Rechteck (circle.getBounds2D()) so weit nach oben schieben, dass es zwar weiterhin das blaue Rechteck berührt, zwischen dem blauen Rechteck und dem Kreisrand aber kein Berührungspunkt existiert. Umgekehrt könnte man das rote Rechteck nach links schieben. Dann schneiden sich Rechteck und Kreis, berühren sich also nicht nur.

Ebenfalls unschwer zu erkennen ist, dass es einen Berührungspunkt mit den Kanten des blauen Rechteck nur auf einer Linie geben kann, die auf einer roten Kante beginnt, senkrecht auf dieser steht und durch den Mittelpunkt geht. Das sind gerade die cyanfarbenen Linien in der Zeichnung. Jeder andere Punkt auf dem Kreisrand kann nur eine Ecke des Rechtecks berühren, ohne dass sich Rechteck und Kreis schneiden.

Auf den Rest solltest Du nun selbst kommen.
 

KonradN

Super-Moderator
Mitarbeiter
Also ich weiss nicht, ob man bei so Threads noch antworten sollte. Es fehlt ja erneut jeder Ansatz hier selbst eine Lösung zu finden.

Ist es denn so schwer, sich da selbst Gedanken zu machen? Könnte man ein Rechteck nicht als Sammlung von Rechtecken ansehen? Rechtecken, bei denen alle Punkte die gleiche x oder gleiche y Koordinate haben? Also die Breite oder Länge eben 0 ist?

Und nur um den Berührungspunkt zu erkennen: Evtl. einfach einmal überlegen, was für Fälle es gibt. So kann der Kreis so angeordnet sein, wie da in der Zeichnung oder der Kreismittelpunkt kann höher als das Rechteck sein oder tiefer.
Für alle Fälle kann man sich überlegen:
a) Wie erkenne ich den Fall?
b) Wie kann ich ermitteln, ob es Berührungen gibt.

Ansonsten ist das einfachste Geometrie. Evtl. einfach mal einen Schüler befragen ... Mathe 8te Klasse oder so würde ich das einordnen.
 

berserkerdq2

Bekanntes Mitglied
Doch an sich, nur habe ich das nicht kapiert. Bezüglich der Geometrie ist das mir shcon klar, nur wie ich das umsetze.
Also ich weiss nicht, ob man bei so Threads noch antworten sollte. Es fehlt ja erneut jeder Ansatz hier selbst eine Lösung zu finden.

Ist es denn so schwer, sich da selbst Gedanken zu machen? Könnte man ein Rechteck nicht als Sammlung von Rechtecken ansehen? Rechtecken, bei denen alle Punkte die gleiche x oder gleiche y Koordinate haben? Also die Breite oder Länge eben 0 ist?

Und nur um den Berührungspunkt zu erkennen: Evtl. einfach einmal überlegen, was für Fälle es gibt. So kann der Kreis so angeordnet sein, wie da in der Zeichnung oder der Kreismittelpunkt kann höher als das Rechteck sein oder tiefer.
Für alle Fälle kann man sich überlegen:
a) Wie erkenne ich den Fall?
b) Wie kann ich ermitteln, ob es Berührungen gibt.

Ansonsten ist das einfachste Geometrie. Evtl. einfach mal einen Schüler befragen ... Mathe 8te Klasse oder so würde ich das einordnen.
Also ehrlich gesagt, dachte ich, ich habe den ersten Teil schon gelöst.
nun habe ich festgestellt, dass anscheinend die Berührung schon falsch sei. ALso ich dachte zumindest b) hätte ich schon ,aber anscheinend bzw offensichtlich ist getrectangle().intersects(circle.getBounds2D()) falsch, nach den Aussagen des vorherigen Kommentators.

Ich dachte zudem, es gibt irgendwie 1 bis 2 Methoden, die mir direkt einfach dann sagen, ob ich es getroffen habe oder nicht.
 

berserkerdq2

Bekanntes Mitglied
Vielleicht erstmal zeichnen?


Das wage ich zu bezweifeln:
Anhang anzeigen 18133
Wie unschwer zu erkennen ist, könnte man das rote Rechteck (circle.getBounds2D()) so weit nach oben schieben, dass es zwar weiterhin das blaue Rechteck berührt, zwischen dem blauen Rechteck und dem Kreisrand aber kein Berührungspunkt existiert. Umgekehrt könnte man das rote Rechteck nach links schieben. Dann schneiden sich Rechteck und Kreis, berühren sich also nicht nur.

Ebenfalls unschwer zu erkennen ist, dass es einen Berührungspunkt mit den Kanten des blauen Rechteck nur auf einer Linie geben kann, die auf einer roten Kante beginnt, senkrecht auf dieser steht und durch den Mittelpunkt geht. Das sind gerade die cyanfarbenen Linien in der Zeichnung. Jeder andere Punkt auf dem Kreisrand kann nur eine Ecke des Rechtecks berühren, ohne dass sich Rechteck und Kreis schneiden.

Auf den Rest solltest Du nun selbst kommen.
Danke, aber bei unser Aufgabe wurde explizit genannt, dass wir schauen sollen, ob sich die "Bounding Boxen" überschneiden. Deshalb ging ich davon aus, dass das das sei. Also mit getrectangle().intersects(circle.getBounds2D())
 

berserkerdq2

Bekanntes Mitglied
Jetzt wo ich mir relativ sicher bin, dass wir die bounding boxen nur überprüfen müssen, also dass die rote Box die blaue trifft, ist es mathematisch nicht schwierig, ich weiß aber ja nicht wie ich einen Punkt bekomme, um das zu berechnen, wo wir sind, ich weiß nur:

if(getrectangle().intersects(circle.getBounds2D())){
}

so weiß ich, dass die sich getroffen haben. Wir sollen aber ja schauen mit welcher Seite, das heißt ja, ich muss irgendwie auf die x bzw. y-Wert. Beziehungsweise ich benötgie nur einen Punkt, wo die sich berühren, aber wi ebekomme ich den?

(Kann ich da mit intersectsline vorgehen?)
 

KonradN

Super-Moderator
Mitarbeiter
Ein paar Ideen:
a) Schreib doch einfach etwas mehr über so Aufgaben. Es ist einfach Scheiße, wenn man wichtige Dinge nicht zu hören bekommt bzw. diese erst nach und nach kommen nachdem man unnötige Dinge geschrieben hat.
b) wie wäre es, wenn Du einfach einmal Antworten, die Du bekommst, liest und versuchst zu verstehen. So hast Du schon eine klare Möglichkeit genannt bekommen.

Aber ich denke, ich bin dann jetzt bei Deinen Threads / Texten dauerhaft raus und wünsche Dir viel Erfolg bei was auch immer du machst. (Ich hoffe nur, dass es kein Studium der Informatik ist ... :) )
 

berserkerdq2

Bekanntes Mitglied
Ein paar Ideen:
a) Schreib doch einfach etwas mehr über so Aufgaben. Es ist einfach Scheiße, wenn man wichtige Dinge nicht zu hören bekommt bzw. diese erst nach und nach kommen nachdem man unnötige Dinge geschrieben hat.
b) wie wäre es, wenn Du einfach einmal Antworten, die Du bekommst, liest und versuchst zu verstehen. So hast Du schon eine klare Möglichkeit genannt bekommen.

Aber ich denke, ich bin dann jetzt bei Deinen Threads / Texten dauerhaft raus und wünsche Dir viel Erfolg bei was auch immer du machst. (Ich hoffe nur, dass es kein Studium der Informatik ist ... :) )
Ich glaube man hat nicht kapiert was ich meine. Das zu berechnen ist ja leicht, aber zuvor benötigt man ja die x und y koordinaten, um überhaupt irgendetwas zu berehcnen, ich weiß ja nicht mal wie man darauf kommt. es gibt ja unzählige x und y- koordinaten.
 

mihe7

Top Contributor
wusste nicht, dass er eine getx methode hat, die aber eigentlich nicht zu ihm gehört und das deshalb nicht bei dem in den Methoden steht...
Die Methoden gehören schon zu Rectangle2D. Die Klasse Rectangle2D ist von Klasse RectangularShape abgeleitet und erbt daher die Methoden dieser Klasse.

Die JavaDocs sind so aufgebaut, dass die geerbten Methoden im Anschluss an die in einer Klasse definierten bzw. dort überschriebenen Methoden in Kurzform aufgelistet werden (nach dem Abschnitt "Method summary"). Wenn Du in die Doku von Rectangle2D schaust, findest Du dort "Methods inherited from class java.awt.geom.RectangularShape" und danach "Methods inherited from class java.lang.Object".
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E LayoutManager Welcher Layout-Mix löst mein Problem? AWT, Swing, JavaFX & SWT 3
R Swing Hat mein JFrame meinen Component? AWT, Swing, JavaFX & SWT 2
B JavaFX habe mein Problem fett markiert AWT, Swing, JavaFX & SWT 2
G Swing Wenn ich mein JFrame Fenster vergrößere die Inhalte anpassen AWT, Swing, JavaFX & SWT 1
Thallius Warum refrehsed mein JTable nicht? AWT, Swing, JavaFX & SWT 5
B JavaFX Wo liegt mein Gedankenfehler ??? KeyEvent geht nicht ... AWT, Swing, JavaFX & SWT 8
W Swing JScrollPane für mein Fenster AWT, Swing, JavaFX & SWT 4
S Oracle's neue Sicherheitseinstellungen zerstoeren mein Applet. Was tun? AWT, Swing, JavaFX & SWT 3
R JavaFX Mein SceneBuilder Projekt AWT, Swing, JavaFX & SWT 3
N LookAndFeel Wie kann ich mein eigenes LookAndFeel machen? AWT, Swing, JavaFX & SWT 6
J Swing Warum wird mein Jpeg nicht angezeigt? AWT, Swing, JavaFX & SWT 4
T SWT Warum ist mein 1.Tree Node selektiert? AWT, Swing, JavaFX & SWT 11
M Warum funktioniert mein Applet nicht? AWT, Swing, JavaFX & SWT 6
P AWT Wie kann mein listener den Inhalt eines anderen Textfelds ändern? AWT, Swing, JavaFX & SWT 10
C Swing Linux mag mein Swing-repaint() nicht... AWT, Swing, JavaFX & SWT 7
L Mein Kopf dreht sich... Brauche Hilfe beim GUI gestalten AWT, Swing, JavaFX & SWT 10
V Swing Mein swingender Pokertisch macht Probleme AWT, Swing, JavaFX & SWT 10
G LookAndFeel SwingUtilities.updateComponentTreeUI(frame) <- wie heißt mein Frame? AWT, Swing, JavaFX & SWT 5
hdi Swing JTable: Mein CellRenderer ist ein Performance-Killer? AWT, Swing, JavaFX & SWT 7
R Japaner koennen mein Programm nicht nutzen..? AWT, Swing, JavaFX & SWT 11
K Mein Informatikprojekt läuft aus dem Ruder Hilfe. F1 ^^ AWT, Swing, JavaFX & SWT 5
J SwingX-Demo - mein Waterloo AWT, Swing, JavaFX & SWT 9
hdi mein layout verählt sich komisch AWT, Swing, JavaFX & SWT 4
M4nuel Warum überlagert JDesktopPane mein JMenuBar? AWT, Swing, JavaFX & SWT 5
C Komme nicht an mein textfeld AWT, Swing, JavaFX & SWT 3
P JRadioButton in Schleife erstellen > wo liegt mein Fehler AWT, Swing, JavaFX & SWT 2
P Ignoriert mein setSize()? AWT, Swing, JavaFX & SWT 2
R JFilechooser: gewählte Datei in mein FileReader übergeben AWT, Swing, JavaFX & SWT 18
C Mein erstes kleines Swing-Projekt - Probleme AWT, Swing, JavaFX & SWT 8
K JTable - warum funktioniert mein CellRenderer nicht? AWT, Swing, JavaFX & SWT 9
V Verstehe mein Druckproblem nicht AWT, Swing, JavaFX & SWT 2
M Wo bleibt mein ScrollPane? AWT, Swing, JavaFX & SWT 3
G Mein JFrame aktualisiert sich nicht richtig AWT, Swing, JavaFX & SWT 3
P Warum braucht mein kleines Programm 20 MB Speicher? AWT, Swing, JavaFX & SWT 13
Q Mein erstes GUI - Probleme AWT, Swing, JavaFX & SWT 2
K mein keyListener scheint Konflict haben mit mouseListener AWT, Swing, JavaFX & SWT 6
E warum wird mein bild nicht angezeigt? AWT, Swing, JavaFX & SWT 6
Z Look&Feel-Wechsel bringt mein GUI durcheinander AWT, Swing, JavaFX & SWT 5
berserkerdq2 Kann ich ein Rechteck mittig im Fenster halten, egal wie ich die Bildschirmgröße verändere? AWT, Swing, JavaFX & SWT 3
B AWT Rechteck abnehmen lassen AWT, Swing, JavaFX & SWT 9
N Mit KeyListener ein rechteck zeichnen AWT, Swing, JavaFX & SWT 9
E Button verschwindet nachdem ein Rechteck gezeichnet wurde AWT, Swing, JavaFX & SWT 5
T Java Swing - kleines Rechteck unter dem cursor AWT, Swing, JavaFX & SWT 5
S Swing Rechteck über JTable zeichnen (per MouseListener) AWT, Swing, JavaFX & SWT 1
L Swing Ein Rechteck in ein Grid Zeichnen AWT, Swing, JavaFX & SWT 5
D Quadrat, Rechteck zeichnen AWT, Swing, JavaFX & SWT 3
F Java Swing Rechteck in JPanel zeichnen AWT, Swing, JavaFX & SWT 7
F 2D-Grafik Gestricheltes Rechteck AWT, Swing, JavaFX & SWT 1
Z Frame mit Rechteck! AWT, Swing, JavaFX & SWT 16
T Problem beim Zeichnen von Rechteck AWT, Swing, JavaFX & SWT 3
S Warum wird dieses Rechteck nicht korrekt gemalt? AWT, Swing, JavaFX & SWT 7
S "Quadrat oder Rechteck" - Check AWT, Swing, JavaFX & SWT 3
C Rechteck drehen AWT, Swing, JavaFX & SWT 1
D 2D-Grafik Rechteck befindet sich unter dem Rahmen des JFrame. AWT, Swing, JavaFX & SWT 1
M JavaFX Rechteck mit MausListener AWT, Swing, JavaFX & SWT 3
B Rechteck Mit Hilfe Von Timeline, KeyFrames animieren AWT, Swing, JavaFX & SWT 3
I Rechteck eines Graphics eines JPanels in einem anderen JPanel anzeigen AWT, Swing, JavaFX & SWT 7
T transparent geht nicht (btw: rechteck) AWT, Swing, JavaFX & SWT 13
J SWT Rechteck Füllfarbe wird bei Action falsch gefüll AWT, Swing, JavaFX & SWT 2
H Rechteck via Mouse bewegen AWT, Swing, JavaFX & SWT 2
A Rechteck zeichen AWT, Swing, JavaFX & SWT 4
C Auto fahren - Rechteck JFrame AWT, Swing, JavaFX & SWT 6
E Swing Rechteck und Kreise verschieben AWT, Swing, JavaFX & SWT 3
G Swing Rechteck uebermalen AWT, Swing, JavaFX & SWT 10
M Rechteck "umdrehen"/über die Kante drehen AWT, Swing, JavaFX & SWT 4
J 2D-Grafik Rechteck mit dickerem Rand zeichnen AWT, Swing, JavaFX & SWT 8
H Rechteck grafisch ausgeben (2D) AWT, Swing, JavaFX & SWT 3
G Rechteck mit Farbverlauf AWT, Swing, JavaFX & SWT 5
E Rechteck in JPanel Zeichnen AWT, Swing, JavaFX & SWT 6
G Rechteck zeichnen + "special features" :-) AWT, Swing, JavaFX & SWT 16
A Java Button mal nicht nur als rechteck AWT, Swing, JavaFX & SWT 16
B awt rechteck zeichnen AWT, Swing, JavaFX & SWT 3
R Rechteck drehen! AWT, Swing, JavaFX & SWT 4
K Problem mit JLabel, Rechteck, repaint() ;) AWT, Swing, JavaFX & SWT 2
J Auf Button - Druck soll Rechteck Farbe verändern AWT, Swing, JavaFX & SWT 8
M Rechteck zeichnen AWT, Swing, JavaFX & SWT 4
TheJavaKid Kreis, Rechteck, Linie. verschieben AWT, Swing, JavaFX & SWT 5
S Rechteck per Mouse aufziehen AWT, Swing, JavaFX & SWT 7
A Dreidimensionales Rechteck AWT, Swing, JavaFX & SWT 3
C Schräges Rechteck in Swing? AWT, Swing, JavaFX & SWT 7
G Rechteck normalisieren AWT, Swing, JavaFX & SWT 2
P Rechteck "verkehrt" herum zeichnen AWT, Swing, JavaFX & SWT 2
MiMa BorderPane Seiten ein und ausblenden? AWT, Swing, JavaFX & SWT 16
I Scene Builder - mehrere Seiten AWT, Swing, JavaFX & SWT 6
G JavaFX Slider in JavaFX beide Seiten beschriften AWT, Swing, JavaFX & SWT 2
B JavaFX PrinterJob mit mehreren Seiten AWT, Swing, JavaFX & SWT 0
M "(Buch-)Seiten" erstellen AWT, Swing, JavaFX & SWT 2
M Swing JSplitPane beide Seiten fixieren AWT, Swing, JavaFX & SWT 2
T Ein Seiten Resisable AWT, Swing, JavaFX & SWT 5
G Komplexe HTML-Seiten mit Swing Browsen AWT, Swing, JavaFX & SWT 5
A Seiten für freie LookAndFeels AWT, Swing, JavaFX & SWT 3
I JEditorPane vorladen der Seiten unterbinden AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben