|
|
Umhuellende (Kontur) von Koordinaten |
|
RoyalFlush |
Forum-Fortgeschrittener
|
|
Beiträge: 82
|
|
|
|
Anmeldedatum: 27.10.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.09.2010, 03:36
Titel: Umhuellende (Kontur) von Koordinaten
|
|
Hallo!
Ich hab mal ein Beispielbild angehaengt. Weiss jemand wie ich am besten die Kontur ueber meine Punkte bekomme? Ich haette gerne ein gefuelltes Polygon, die Punkte sollen dabei die Eckpunkte sein!
Waere fuer jeden Vorschlag dankbar!
Danke!
Beschreibung: |
|
Download |
Dateiname: |
Points.TIF |
Dateigröße: |
60.39 KB |
Heruntergeladen: |
1121 mal |
|
|
|
|
|
eupho |
Forum-Meister
|
|
Beiträge: 777
|
|
|
|
Anmeldedatum: 07.01.09
|
|
|
|
Wohnort: Marburg
|
|
|
|
Version: R2009b
|
|
|
|
|
|
Verfasst am: 14.09.2010, 07:57
Titel:
|
|
Mit einem einfachen "fill" in der Hilfe wäre es getan:
Zitat: |
"Filled 2-D polygons" |
mit
Zitat: |
fill(X,Y,C) creates filled polygons from the data in X and Y with vertex color specified by C. |
gekommen. Wenn ich das richtig verstanden habe, ist das genau das, was du suchst.
Grüße..
|
|
|
RoyalFlush |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 82
|
|
|
|
Anmeldedatum: 27.10.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.09.2010, 08:00
Titel:
|
|
eupho hat Folgendes geschrieben: |
Mit einem einfachen "fill" in der Hilfe wäre es getan:
Zitat: |
"Filled 2-D polygons" |
mit
Zitat: |
fill(X,Y,C) creates filled polygons from the data in X and Y with vertex color specified by C. |
gekommen. Wenn ich das richtig verstanden habe, ist das genau das, was du suchst.
Grüße.. |
Nein, leider eben nicht. Die Hilfe bringt mich hier nicht weiter. Fuer den fill-Befehl wie auch poly2mask muss die Anordnung der Punkte stimmen, sonst ueberschneiden sie sich...
|
|
|
eupho |
Forum-Meister
|
|
Beiträge: 777
|
|
|
|
Anmeldedatum: 07.01.09
|
|
|
|
Wohnort: Marburg
|
|
|
|
Version: R2009b
|
|
|
|
|
|
Verfasst am: 14.09.2010, 08:07
Titel:
|
|
Oh sorry, es ist noch etwas früh
Du brauchst natürlich convexHull, z.B.:
Und dann mit fill o.ä. auffüllen.
Grüße
|
|
|
RoyalFlush |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 82
|
|
|
|
Anmeldedatum: 27.10.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.09.2010, 08:09
Titel:
|
|
eupho hat Folgendes geschrieben: |
Oh sorry, es ist noch etwas früh
Du brauchst natürlich convexHull, z.B.:
Und dann mit fill o.ä. auffüllen.
Grüße |
Danke fuer Deine Hilfe, aber das geht auch so nicht! Eine ConvexHull gibt mir die groesste Umhuellende ueber meinem Objekt aus. Ich brauche aber den genauen Kantenverlauf des Objektes...
|
|
|
bushmills |
Forum-Anfänger
|
|
Beiträge: 14
|
|
|
|
Anmeldedatum: 07.10.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2010a
|
|
|
|
|
|
Verfasst am: 13.10.2010, 09:29
Titel:
|
|
Hi zusammen,
bin gerade auf diesen Thread gestoßen, da ich vor dem selben Problem stehe. Meine Frage wäre daher, ob es dazu bereits eine Lösung gibt....
|
|
|
Hubertus |
Forum-Meister
|
|
Beiträge: 1.034
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.10.2010, 10:09
Titel:
|
|
Moin,
wie wäre es mit "roifill". Da kannst Du die Koordinaten Deiner Punkte genau vorgeben. Irgendwie muß sich die Fläche dann noch farblich vom Bild abheben. Mit "roipoly" kannst Du händisch die Markierungen abnehmen und den Inhalt anzeigen lassem.
Hubertus
|
|
|
bushmills |
Forum-Anfänger
|
|
Beiträge: 14
|
|
|
|
Anmeldedatum: 07.10.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2010a
|
|
|
|
|
|
Verfasst am: 13.10.2010, 10:45
Titel:
|
|
Die Funktion roifill hilft leider in diesem Fall nicht weiter.
Vielmehr ist es mein Ziel, aus den gegebenen, unsortierten Punkten ein Polygon zu formen. Diese Punkte stellen auch zwingend die Kontur des Polygons dar. Es ist also keine Punktewolke, die umrandet werden soll, sondern jeder Punkt liegt auf der Kante des Polygons.
Benutze ich dazu bspw. die patch-Funktion, so werden die Punkte zwingend nach ihrer Reihenfolge im Vektor verbunden und es entstehen die bereits weiter oben beschriebenen "Kreuzungen".
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 13.10.2010, 10:58
Titel:
|
|
Hallo bushmills,
Dein Problem ist gar nicht eindeutig definiert!
Zu einer beliebigen Punkt-Menge gibt es im Allgemeinen mehr als einen möglichen Zug von Kanten. Nimm z.B. vier Punkte auch den Ecken eines Quadrats und den Mittelpunkt dazu. Nun könnte jede Seite einen Knick nach innen zu Mittelpunkt haben.
Deshalb läßt sich Dein Problem auch nicht eindeutig lösen. Kannst Du weitere Zusatzbedingungen stellen, die die Lösung eindeutig machen? Im Endeffekt wirst Du dann aber nicht weit von Travelling-Salesman-Problem entfernt sein. Das bedeutet leider, dass das Ausprobieren aller Möglichkeiten eine praktikabele Lösung wäre...
Gruß, Jan
|
|
|
Atanas |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.10.2013, 18:23
Titel: Selbst gebastelte Lösung
|
|
|
|
|
Hier ist eine Lösung , die mir eingefallen ist:
1. Eine unsortierte Punktenmenge liegt vor als Parameter
2. Man fängt von Element 1 an
3. Diese Element wird von der Matrix entfernt
4. Am nähesten liegenden Punkt aus der Rest Matrix wird gesucht
5. Dieser Punkt wird von der Matrix entfernt
6 . Gehe zu 4 solange Matrix noch nicht leer ist
Der Code wird nicht in allen Fälle funktionieren. Ist meiner Meinung nach eine gute Basis für weitere Gedanken
[
function [ EBENE_NEU ] = Sortieren_Ebenen( EBENE )
%SORTIEREN_EBENEN Summary of this function goes here
% Detailed explanation goes here
X=EBENE(1,1);
Y=EBENE(1,2);
Z=EBENE(1,3);
EBENE(1,=[];
EBENE_NEU=[X Y Z];
n=size(EBENE,1)
while n>0
Anz=size(EBENE,1);
Min=50000000000;
for i=1:Anz
R=sqrt(((EBENE(i,1)-X)*(EBENE(i,1)-X))+(EBENE(i,2)-Y)*(EBENE(i,2)-Y));
if R<Min
Min=R;
j=i;
end
end
X=EBENE(j,1);
Y=EBENE(j,2);
Z=EBENE(j,3);
EBENE(j,=[];
EBENE_NEU=[EBENE_NEU; X Y Z];
n=n-1;
end
end
]
Beschreibung: |
|
Download |
Dateiname: |
Sortieren_Ebenen.m |
Dateigröße: |
754 Bytes |
Heruntergeladen: |
554 mal |
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|