Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Huellfindungs-Algorithmus (https://www.delphipraxis.net/104199-huellfindungs-algorithmus.html)

LoCrux 29. Nov 2007 00:12


Huellfindungs-Algorithmus
 
Hi,

I need help.... Kennt einer einen effizienten Alogrithmus, der mir aus einer unsortierten Menge N mit n Punkten (der Eigenschaft n(x,y) und x,y Element R), diejnige Menge M echte oder unechte Teilmenge von N (|M|<=|N|) findet, so dass die
Menge M alle Elemente der Menge N umschliesst (grafisch waere das ein Huell-Polygon)?
Mit der Bedingung, dass das Huell-Polygon nicht ueberschneidend ist (konkav oder konvex waere egal).

ThanX 4 Help

Reinhard Kern 29. Nov 2007 00:51

Re: Huellfindungs-Algorithmus
 
Zitat:

Zitat von LoCrux
Hi,

I need help.... Kennt einer einen effizienten Alogrithmus, der mir aus einer unsortierten Menge N mit n Punkten (der Eigenschaft n(x,y) und x,y Element R), diejnige Menge M echte oder unechte Teilmenge von N (|M|<=|N|) findet, so dass die
Menge M alle Elemente der Menge N umschliesst (grafisch waere das ein Huell-Polygon)?
Mit der Bedingung, dass das Huell-Polygon nicht ueberschneidend ist (konkav oder konvex waere egal).

ThanX 4 Help

Hallo,

meinst du die kleinste solche Menge? Oder die mit der kleinsten Fläche? Sonst ist die Aufgabe nicht eindeutig lösbar (einen konkaven Eckpunkt kann man eliminieren, damit stellt sich auch die Frage konvex/konkav nicht mehr).

Gruss Reinhard

LoCrux 29. Nov 2007 01:40

Re: Huellfindungs-Algorithmus
 
Liste der Anhänge anzeigen (Anzahl: 1)
@Reinhard Kern,

hab mal eine Beispielgrafik dazu erstellt.
Es waere die kleinste Menge mit der Maximalen Flaeche.

deep_thought 29. Nov 2007 05:22

Re: Huellfindungs-Algorithmus
 
... also _kennen_ tu ich keinen, aber ich würd's so machen:
du nimmst den tiefsten, höchsten , am weitesten links liegenden und den am weitesten rechts liegenden Punkt und schmeißt sie in M.
Dann betrachtest du für links oben die Gerade zwischen dem linken und dem oberen, transformierst deine Koordinaten aus N so, dass diese Gerade parallel zur x-achse wird und dann nimmste einfach noch den Punkt mit der größten y-Koordinate dazu (sofern vorhanden haste dann 2 neue geraden, mit denen du weiter machst, ansonsten lässt du den punkt weg und brichst diesen Teil des Algörithmus ab [und machst mit anderen Geraden weiter, die noch "offen" sind])
und das machste dann auch noch links unten, rechts unten und rechts oben (halt auch immer in der entsprechenden richtung)
.... das kann man bestimmt gut rekursiv implementieren: du fängst an, die 4 Punkte zu ermitteln und dann rfst du sowas wie "suche äußersten Punkt oberhalb" für links und rechts oben auf und "suche äußersten Punkt unterhalb" für rechts und links unten und da drinnen ruft das dann immerwieder das entsprechende auf (um den am meisten außerhalb gelegenen Punmkt wieder zu finden) ...
ich hoffe, du verstehst, was ich meine ...
mfg deep42thought

marabu 29. Nov 2007 05:54

Re: Huellfindungs-Algorithmus
 
Moin,

hier ist eine schöne Einstiegsseite zum Thema: klick

Grüße vom marabu

LoCrux 30. Nov 2007 08:42

Re: Huellfindungs-Algorithmus
 
@marabu

ThanX.. ziehs mir mal rein!!! :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz