Wie kann ich ein gefülltes Polygon aus ungeordneten Randdaten in MATLAB erstellen?

8

Ich möchte ein Polygon mithilfe von Kantendaten (X-, Y-Koordinaten jedes Punktes der Kante) erstellen, die ungeordnet sind, und ich möchte dieses Polygon mit einer Farbe füllen.

Irgendwelche Vorschläge, wie ich das erreichen kann?

    
MicTech 08.12.2010, 19:01
quelle

2 Antworten

7

Wenn Ihr Polygon konvex ist, können Sie die konvexe Hülle aus den Scheitelpunkten einfach mit der Funktion CONVHULL und zeichnen Sie das Polygon mit der Zeichenfunktion PATCH . Zum Beispiel:

%Vor%

Wenn Ihr Polygon stattdessen konkav ist, wird das schwieriger. Sie müssten die Kantenlinien selbst neu anordnen, indem Sie ihre Endpunkte vergleichen und sie entweder im Uhrzeigersinn oder gegen den Uhrzeigersinn anordnen.

... aber wenn das nach zu viel Arbeit zum Programmieren klingt, können Sie das Problem umgehen, indem Sie ein eingeschränkte Delaunay - Triangulation der Eckpunkte finden die Dreiecke auf der Innenseite der Constrained Edges , und plotten Sie diese einzelnen Dreiecke, die das Polygon bilden, mit PATCH . Zum Beispiel:

%Vor%

Oben wird das Polygon mit Kantenlinien um jedes Unterdreieck angezeigt, das es bildet. Wenn Sie nur eine Kantenlinie um das gesamte Polygon herum sehen möchten, können Sie Folgendes hinzufügen:

%Vor%     
gnovice 08.12.2010, 21:34
quelle
0

Ich glaube, Sie suchen nach der Funktion patch() . Sie können damit 2-D- und 3-D-Polygone erstellen.

    
André Caron 08.12.2010 19:03
quelle

Tags und Links