2009-03-07 14 views
3

Weiß jemand, ob es einen Algorithmus dafür gibt? Ich habe mehrere 2D-Punkte. Ich muss eine Liste von Punkten finden, die, wenn Sie eine Linie von Punkt n zu Punkt n + 1 zeichnen, Sie mit einem Bereich enden, der alle Punkte enthält. Wenn ich ein Bild anhängen könnte, könnte ich mich besser erklären. Danke im Voraus.Bereich, der Punkte enthält?

+0

um ein Bild anzuhängen, es auf Imageshack zu setzen und das img-Tag zu verwenden –

Antwort

7

Was Sie suchen, ist wahrscheinlich die konvexe Hülle. Wikipedia hat eine picture. Es gibt mehrere algorithms, um die konvexe Hülle zu berechnen. Die Graham scan bietet wahrscheinlich die beste Balance zwischen Leistung und einfacher Implementierung.

+0

Der Graham-Scan sieht aus wie das was ich gesucht habe, vielen Dank! : D – Pablote

3

Was Sie fragen, klingt wie die sogenannte konvexe Hülle. Google das für viele Informationen.

Wenn die Punkte nicht Mitglied der Gruppe sein müssen, finden Sie die Begrenzungsbox.

Wenn die Sammlung nicht konvex sein muss, finden Sie einfach den Massenmittelpunkt der Wolke, ordnen Sie die Punkte (etwa im Uhrzeigersinn) um diese herum, und Sie werden einen unregelmäßigen Stern haben.

0

Wenn Sie in C/C++ codieren (oder sie verstehen), ist dies eine ausgezeichnete Quelle für - Quelle und Erklärung.