WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Plotqualität - plot3

 

Michael Sams
Forum-Anfänger

Forum-Anfänger



Beiträge: 24
Anmeldedatum: 18.05.08
Wohnort: ---
Version: R2008a
     Beitrag Verfasst am: 28.01.2011, 19:13     Titel: Plotqualität - plot3
  Antworten mit Zitat      
Hallo,

ich habe in Matlab eine Flechtsimulation für eine GFK/CFK-Flechtmaschine programmiert und möchte jetzt eine schöne graphische Ausgabe des Flechtmusters erzeugen!

Die ganze Sache klappt eigentlich ganz gut...das einzige was mich noch stört ist die Qualität meines erzeugten Plots!?

Ich habe die Flechtfäden als Vektoren berechnet und jeweils Punkte im Raum via einer 3D-Linie (plot3) verbunden.

Meine Frage ist, kann ich diese plot3-Linie "SCHÖN" aufdicken...jetzt habe ich nur mit "LineWidth" die Dicke vergrößert...die Darstellung ist aber alles andere als zufriedenstellend! (siehe Bild)
Speziell an den Umlenkungen der Fäden ist die Darstellung via plot3 schlecht...

--> ist es möglich eine Darstellung eines schönen, runden Fadens zu erzeugen...der auch an den Rundungen zumindest annähernd einen runden Querschnitt beibehält??

LG Michael

Flecht.jpg
 Beschreibung:
Flechtmuster

Download
 Dateiname:  Flecht.jpg
 Dateigröße:  216.86 KB
 Heruntergeladen:  627 mal

_________________

-------------------------
Best Regards
Michael Sams
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 28.01.2011, 20:14     Titel: Re: Plotqualität - plot3
  Antworten mit Zitat      
Hallo Michael,

Dein Bild sieht schon mal sehr schick aus. Allerdings ziemlich flach. Von 3D ist nicht viel zu ahnen.
Du könntest auch eine schattierten 3D-Zylinder benutzen, siehe CYLINDER oder:
http://www.mathworks.com/matlabcent.....leexchange/26821-pipeplot
http://www.mathworks.com/matlabcent.....e/21116-plot3-shaded-line
Bitte poste doch mal die Bilder, wenn du damit Erfolg hast.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 28.01.2011, 21:04     Titel:
  Antworten mit Zitat      
Hallo,

Du könntest die unschönen Rundungen wohl loswerden, indem du zusätzliche Datenpunkte interpolierst (siehe interp*) oder noch besser: berechnest. Das genauer zu beschreiben ist ohne Code als Ausgangspunkt zu haben etwas schwierig.
Vielleicht kannst du ja den Code für einen Faden posten, damit man damit etwas herumprobieren kann?

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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Michael Sams
Themenstarter

Forum-Anfänger

Forum-Anfänger



Beiträge: 24
Anmeldedatum: 18.05.08
Wohnort: ---
Version: R2008a
     Beitrag Verfasst am: 30.01.2011, 21:09     Titel:
  Antworten mit Zitat      
Hallo,

erstmal Danke für Eure Tipps!

@Jan: deine zwei Vorschläge haben zwar für mich nicht ganz geklappt – aber ich bin mit etwas ähnlichem zum Ziel gekommen!

@Harald: meine Funktion ist interpoliert, aber ich habe festgestellt, dass zusätzliche Datenpunkte für die Darstellung der Rundungen nichts nützen – ‚LineWidth‘ geht in dem Fall nicht schöner

So, aber jetzt zu meiner Lösung und einem kleinem ausstehenden Problem:

Also grundsätzlich bestehen meine Funktionen nur aus X,Y-Position und einem Z-Wert der entweder 1 (Faden ist oben) oder -1 (Faden ist unten) annimmt. Jetzt habe ich diese Funktionen noch feiner interpoliert, dass ich einen schönen Fadenverlauf bekomme.
Zur Visualisierung habe ich jetzt zwei Pakete verwendet:

http://www.mathworks.com/matlabcent.....e/26588-plot-circle-in-3d

http://www.mathworks.com/matlabcent.....409-draw-a-pipe-in-matlab

An den Startpunkt meiner Funktion habe ich einen Kreis gezeichnet (Querschnitt) und diesen Querschnitt entlang meiner Funktion entlanggezogen…dann noch die Funktionen auf ein Quadrat zusammengeschnitten und fertig ist mein Flechtmuster.
Bitte seht nicht auf meinen Programmierstil…nicht schön aber selten – aber es funktioniert! Wink
Bis auf eine Sache, die mich noch stört:
Code:

if(~isnan(rech_interpol(1,a_pos,i)) && ~isnan(rech_interpol(1,a_pos+1,i)))
 
        v = null(rech_interpol(:,a_pos+1,i)'-rech_interpol(:,a_pos,i)');
        center = rech_interpol(:,a_pos,i)';
        points = repmat(center',1,size(theta,2)) + radius*v(:,1)*cos(theta)+v(:,2)*sin(theta));
 
[pipexdata,pipeydata,pipezdata]=sweep(points',rech_interpol(:,a_pos:size_re_int(2),i)');
        surf(real(pipexdata),real(pipeydata),real(pipezdata),'FaceColor','red','EdgeColor','none');
    end
 


Ich setze auf den Startpunkt meiner Funktion den Mittelpunkt des Kreises und bastle mir aus den ersten zwei Punkten meiner Funktion den Normalvektor für die Lage des Kreises. (diese Codezeilen habe ich aus ‚plotCircle3d‘ übernommen und wenn ich jetzt die SWEEP-Funktion verwende (Paket ‚sweep‘) dann spuckt es mir die Fehlermeldung aus, dass mein Startpunkt nicht in der Kreisebene liegt…obwohl ich in diesen Punkt meinen Mittelpunkt gelegt habe?!
Ich habe mir einfach beholfen, dass ich diese Kontrolle bei SWEEP auskommentiere – und das kann aber nicht die Lösung sein??!? Somit bekomme ich meine Surface-Daten…die aber komplexe Werte enthalten…da behelfe ich mir, dass ich nur die Realteile plotte…auch nicht schön!? Das Ergebnis funktioniert und die Ausgabe sieht echt toll aus…aber meine Lösung kann nicht im Sinne des Erfinders liegen!

Mit freundlichen Gruessen
Michael Sams

Flecht_pipe.jpg
 Beschreibung:
Output

Download
 Dateiname:  Flecht_pipe.jpg
 Dateigröße:  192.68 KB
 Heruntergeladen:  610 mal
vers.m
 Beschreibung:
Flechtprogramm

Download
 Dateiname:  vers.m
 Dateigröße:  24.06 KB
 Heruntergeladen:  430 mal
rotatedata.m
 Beschreibung:
notwendig für sweep

Download
 Dateiname:  rotatedata.m
 Dateigröße:  2.24 KB
 Heruntergeladen:  433 mal
sweep.m
 Beschreibung:
sweep Paket

Download
 Dateiname:  sweep.m
 Dateigröße:  2.07 KB
 Heruntergeladen:  484 mal

_________________

-------------------------
Best Regards
Michael Sams
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 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.