Verfasst am: 12.02.2011, 12:30
Titel: Problem bei der Ermittlung der konvexen Hülle
Hallo zusammen,
ich versuche die konvexe Hülle von vier 3d-Punkten zu ermitteln. Die konvexe Hülle dieser Punkte ist jedoch zweidimensional.
Anscheinend hat die Routine convhull Probleme, wenn die konvexe Hülle dreimensionaler Punkte nur zweidimensional ist.
Code:
X=[P1,P2,P3,P4];
K = convhulln(X') trisurf(K, X(:,1),X(:,2),X(:,3), 'FaceColor', 'red')
Freitag und Wochenende ist hier eine eher ruhige Zeit. Aber versuch vielleicht auch, dein Problem besser zu beschreiben:
- ein Beispiel von P1 - P4, bei dem Probleme auftreten
- nutzt du nun convhull oder convhulln? Beides wird einmal erwähnt.
- wie äußern sich die Probleme?
Bei vier Punkten stelle ich mir das auch etwas schwierig vor: entweder sie liegen nicht in einer Ebene, dann sind die 4 Punkte zugleich die konvexe Hülle. Oder sie liegen in einer Ebene (oder gar auf einer Geraden), dann kann man 1 bzw. 2 Punkte "weglassen".
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Hallo Harald,
hast recht,ich war viel zu ungeduldig..aber du kennst es bestimmt, wie es einem geht, wenn man stundenlang vor einem Problem steht und nicht voran kommt ))
zu meinem Problem; etwas präziser;
Es handelt sich um eine rechteckige Ebene, die z.B. durch folgende vier Eckpunkte definiert ist;
P1=[104;100;103],
P2=[103;100;103],
P3[103;100;103],
P4=[104;100;102].
Ich muss die konvexe Hülle dieser Punkte finden,um sie korrekt "nummerieren" zu können. Dadurch soll vermieden werden, dass zum eine "eckige 8" entsteht, statt einem Rechteck. Diese Punkte sind komplanar, was womöglich zu Problemen führt..
Ich habe es x-mal sowohl mit
%X=[P1,P2,P3,P4];
%K = convhulln(X') als auch convhull probiert..
Eigentlich möchtest Du vier Punkte in 2D so numerieren, dass die Verbindung nicht überkreuz ist. Das ist zwar eine konvexe Hülle, aber eigentlich geht das auch viel einfacher:
CART2POL kann Dir Polarkorrdinaten ür die Punkte berechnen. Wenn Du sie dann nach dem Winkel sortierst, bekommst Du die Reihenfolge der Punkte ohne Überkreuzung.
Hallo Jan,
vielen Dank für dein Tipp!hört sich sehr elegant an
werds gleich ausprobieren;-)
Lieben Gruß
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
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.