Quadrat in mehreren Punkten erkennen

Eratu

Neues Mitglied
Hallo alle zusammen,

ich bin noch relativ neu auf dem Gebiet programmieren.
Meine Aufgabe ist es aus vielen Punkten ein Quadrat zu erkennen.
Ich speichere die Punkte als Point in einer ArrayList.
Ich hatte bisher folgenden Ansatz:

Mittelpunkt von vier Punkte berechnen und von diesem dann den Abstand zum ersten Punkt berechnen -> das funktioniert leider nicht, da ich keine ungeraden Punkte(z.B. P(2,5/3) haben kann.

Mein nächster Ansatz wäre, dass ich mit Hilfe zwei for-Schleifen jeden Punkt mit jedem vergleiche (also x1-x2 und y1-y2) und das Ergebnis als Point abstand speichere. Anschließend vergleiche ich, ob es mehrere gleiche Abstandspunkte gibt. Leider passt das auch nicht :/

Ich habe leider nichts passendes im Forum oder generell im Internet gefunden. Meistens wird der Mittelpunkt berechnet und das funktioniert bei mir ja nicht.

Danke im Voraus für alle neuen Ideen und Anregungen 🙂
 
Ich würde auch einen anderen Ansatz wählen.

Pseudocode mal so grob hingekritzelt ohne getestet zu haben

Code:
for (Point p : points)
{
    while( xp = nextPointOnXAxis(p) != NULL)
    {
          int width = xp.x - p.x;
          if(isPointAt(p.x, p.y + width) == true && isPoint(xp.x, xp.y + width) == true)
              // quadrat found
    }
}

nextPointOnXAxis holt alle Punkte die auf der gleichen X-Achse leigen wie p und isPointAt() testet ob es einen Punkt an den Koordinaten gibt.

Gruß

Claus
 

Zurück
Oben