Polygon, geometrischer Algorithmus

  • Hallo liebe Leute,

    ich habe grade ein grosses Problem, ich sitze inner Uni im C-Praktikum und schaffe folgende Aufgabe nicht:
    "Schreiben Sie ein Programm, das eine Menge von Punkten einliest, daraus den einfachen geschlossenen Pfad in Form eines Polygons konstruiert und dessen E
    Eckpunkte in der richtige Reihenfolge wieder ausgibt."

    Das einzige was ich bisher hinbekommen habe, ist die Struktur:

    Als Hilfe haben wir folgende Funktion bekommen:

    Code
    float floattheta(point p1, point p2){
    	int dx, dy, ax, ay;
    	float t;
    	dx = p2.x - p1.x; ax = abs(dx);
    	dy = p2.y - p1.y; ay = abs(dy);
    	t = (ax+ay == 0) ? 0 : (float) dy / (ax+ay);
    	if (dx < 0) t = 2-t; else if (dy < 0) t = 4+t;
    	return t*90.0;
    }


    Allerdings weiss ich nicht, was die Funktion abs() genau machen soll.

    Fuer jegliche Hilfe waere ich dankbar!

  • Hier mal ein Tipp für die Aufgabe:

    • wähle einen Punkt als Ankerpunkt
    • sortiere die Punkte nach der Größe ihres Winkels zum Ankerpunkt
    • zuletzt die Punkte der Reihe nach verbinden