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??
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 ;)
@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:
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!
Bis auf eine Sache, die mich noch stört:
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!
-------------------------
Best Regards
Michael Sams
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.