4 Punkte bilden ein Quadrat? (J/N)

Neue Frage »

sunshine270882 Auf diesen Beitrag antworten »
4 Punkte bilden ein Quadrat? (J/N)
Hallo!

ich habe gerade ein Brett vorm Kopf unglücklich

Ich möchte rechnerisch überprüfen, ob 4 gegebene Punkte im 2-dimensionalen Raum ein Quadrat bilden.

http://stud.fh-wedel.de/~mi5718/Quadrate.jpg

Die Quadrate können entweder 'normal' in einem Feld liegen (Quadrat A und B) oder diagonal um 45° gedreht (Quadrat C) oder schräg im beliebigen Winkel gedreht (Quadrat D).
Dafür habe ich die Koordinaten der Beispielquadrate aufgeschrieben und in eine andere Schreibweise gebracht, weil ich das ganze später in einem Delphiprogramm berechnen lassen möchte.
Bsp.: B hat die Koordinaten LO(3,1)= 0301, RO(3,4)=0304, LU(6,1)=0601 und RU(6,4)=0604. (Legende: L = links, R = rechts, O = oben, U = unten)
Ganzzahlige Division (in Delphi):
0301 div 100 = 3 und 0304 div 100 = 3
0601 div 100 = 6 und 0604 div 100 = 6
Damit habe ich überprüft, dass LO und RO eine Gerade parallel zum Spielfeld bilden und LU und RU ebenso.
Dann muss ich noch überprüfen, ob die Geraden durch LO und LU bzw RO und RU ebenfalls parallel zum Spielfeld liegen.
Ganzzahlige Rest-Division (in Delphi):
0301 mod 100 = 1 und 0601 mod 100 = 1
0304 mod 100 = 4 und 0604 mod 100 = 4
=>meine Bedingungen für ein Quadrat sind also alle erfüllt.

Oder habe ich etwas vergessen? Übersehen? Geht das einfacher?

Ich weiß nur gerade überhaupt nicht wie ich das mit den gedrehten Quadraten lösen kann.
Ich habe von einem Studienkollegen Stichwörter gehört wie das Kreuzprodukt (Vektoren). Habe mir dazu die Formel angeschaut, konnte das aber mit meiner Aufgabe in keinen Zusammenhang bekommen unglücklich
Irgendwie muss der 90°-Winkel zwischen den Geraden auf jeden Fall eine Rolle spielen...

Vielleicht hat ja jemand einen Tipp oder Lösungsansatz für mich? Gott
Bitte keine Komplettlösung Augenzwinkern Möchte mich selbst damit noch ein wenig rumschlagen...

Freu mich auf erleuchtende Antworten smile

Liebe Grüße, Sunny
AD Auf diesen Beitrag antworten »

Eigentlich ist alles ganz einfach - schau dir das beiliegende Bild genau an. Augenzwinkern
sunshine270882 Auf diesen Beitrag antworten »
4 Punkte bilden ein Quadrat? (J/N)
So, erst mal vielen Dank für die Zeichnung smile

Das war jetzt eine schwere Geburt... Hammer
Aber ich denke, ich habe es jetzt und brauch den ersten Fall nicht ganz so kompliziert abhandeln, wenn ich das Programm schreibe. (Nur noch Gedanken machen, wie ich das nun Delphi verständlich mache) Augenzwinkern

Ich bilde nun erst mal Vektoren (die Seiten des Quadrates) aus den Punkten und bilde davon die Beträge.
Wenn die Beträge alle gleich sind, dann prüfe ich, ob der Winkel zwischen 2 Vektoren 90° beträgt, in dem ich die 2 Vektoren multipliziere und das Ergebnis gleich 0 ist, weil cos(0) = 90° ergibt.
Abgekürzt von cos alpha = (a*b)/(axb); ich muss ja nur wissen, ob der Zähler 0 ergibt, das Kreuzprodukt im Nenner interessiert nicht.

*freu*

Jetzt kann ich beruhigt schlafen gehen smile
Immer diese nachts arbeitenden Informatiker, die nicht aufhören können, bevor sie entscheidend weitergekommen sind...
(man sollte das nur lassen, wenn man 'nen dicken Kopf hat, erkältet und müde ist)

LG, Sarah
kurellajunior Auf diesen Beitrag antworten »
RE: 4 Punkte bilden ein Quadrat? (J/N)
Hi,

1. Arthurs Ansatz ist noch einfacher als Deiner.
2. Dies ist auch bzw. vor allem eine Frage nach einem Algorithmus... Dafür gibt es seit kurzem das Informatikerboard Da kriegst Du dann auch fachmännische Hilfe beim Umsatz von Arthurs großartig simplen Ansatz!
3. Wenn wir uns da sehen, verrat ich Dir auch eine ganz kurze Umsetzung des Algorithmus ohne Vektoren, Skalarprodukte oder ähnliches Augenzwinkern

Jan Augenzwinkern
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »