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

Zylindermantel

 

betmax
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 23.07.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.04.2015, 12:48     Titel: Zylindermantel
  Antworten mit Zitat      
Hallo zusammen,

ich programmiere gerade einen Measurment-Explorer. Hier habe ich ein 3D-Datenfeld, in dem
sich die Messdaten befinden.Es soll möglich sein mit der Funktion Slice Zylinder und Kugeln einzubringen. Soweit kein Problem... Allerdings soll es auch möglich sein, den Zylindermantel,
der durch die Funktion Slice mit den Daten entsteht in einer anderen Achse anzusehen.

Hat jemand eine Idee, wie ich den Zylinder Mantel mit den verschiedenen Einfärbungen "abrollen" kann?

VG
Max
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: 25.04.2015, 17:15     Titel: Re: Zylindermantel
  Antworten mit Zitat      
Hallo betmax,

Ich verstehe die Frage nicht. Ich weiß nicht was ein "Measurement-Explorer" ist. Wie genau ist Dein "3D-Datenfeld" aufgebaut? Was bedeutet "einbringen von Zylindern und Kugeln" und was ist die "Slice-Funktion"? Wodurch "entsteht ein Zylinder-Mantel"? Was bedeutet "in einer anderen Achse ansehen"? Was hat das Ganze dann mit "Einfärbungen" zu tun und was ist "abrollen"?

Du siehst, ich habe von Deiner Frage keinen einzigen Satz verstanden. Denke daran, dass die Leser nicht die geringste Ahnung von dem haben, was Du machst. Für eine sinnvolle Unterstützung muss das Problem also so klar und knapp wie möglich beschrieben werden, um auch von einem Nicht-Eingeweihten nachvollzogen werden zu können.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
betmax
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 23.07.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.04.2015, 18:13     Titel:
  Antworten mit Zitat      
Hi Jan,

das ist nichts anderes als eine GUI zur Auswertung von Messdaten.

Zur Slicefunktion:

http://de.mathworks.com/help/matlab/ref/slice.html

Mithilfe dieser Funktion möchte ich Volumenausschnitte auf verschiedene Geometrien mappen.

Funktioniert auch alles. Allerdings möchte ich zusätzlich die Oberfläche der Geometrien in einem zusätzlichen Figure darstellen.

Anbei ein Codebeispiel:

Code:

clear
close all

%Volumen erstellen
[xs,ys,zs] = meshgrid(-2:.2:2,-2:.25:2,-2:.16:2);
v = xs.*exp(-xs.^2-ys.^2-zs.^2);

ez=[0 0 1];
P1=[0 0 0];  % Startpunkt auf der Rotationsachse
P2=[1 1 1];  % Endpunkt der Rotationsachse

r=0.5;

k=norm(P2-P1);
n0=(P2-P1)/k;

%Winkel zwischen ez und n0
 alpha = acos(dot(n0,ez)*(norm(ez')*norm(n0))^(-1));

 sinb=sin(alpha);
cosb=cos(alpha);
verb=1-cosb;

 x1=n0(2);
 y1=n0(1);
 z1=n0(3);


%Rotationsmatrix
 rot = [cosb+x1^2*verb x1*y1*verb-z1*sinb x1*z1*verb+y1*sinb; ...
     x1*y1*verb+z1*sinb cosb+y1^2*verb y1*z1*verb-x1*sinb; ...
     x1*z1*verb-y1*sinb y1*z1*verb+x1*sinb cosb+z1^2*verb]';
 
 % Punkte auf Zylindermantel berechnen
 z=linspace(0,k,100);
 theta=linspace(0,2*pi,100);
 
 [z,theta]=meshgrid(z,theta);
 
 
 x=r*cos(theta);
 y=r*sin(theta);
 
 
 [m,n]=size(x);
 %Rotation durchführen
 newxyz1=[x(:),y(:),z(:)];


newxyz1=newxyz1*rot;


newx1 = P1(1) + reshape(newxyz1(:,1),m,n);
newy1 = P1(2) + reshape(newxyz1(:,2),m,n);
newz1 = P1(3) + reshape(newxyz1(:,3),m,n);


h=surf(newx1,newy1,newz1);

xd=get(h,'xdata');
yd=get(h,'ydata');
zd=get(h,'zdata');
 
delete(h);

%Slice darstellen

hslicer=slice(xs,ys,zs,v,xd,yd,zd);


 shading flat

axis('vis3d')
axis('equal')
grid on




 


Im Codebeispiel ist ein Zylinder gegeben. Mein Ziel ist es jetzt ein zusätzliches Figure zu öffnen, in dem ich die Zylinder Oberfläche in einem x,y Koordinatensystem darstelle.

Ich hoffe es ist jetzt etwas klarer geworden.

VG
Max
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 - 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.