% Zylinder berechnen phi=linspace(0,2*pi,101); x=linspace(-2,2,101); [X,PHI]=meshgrid(x,phi); Y=cos(PHI); Z=sin(PHI); % Zylinder plotten close all; surfl(X,Y,Z); pause %zweiter Zylinder durch Vertauschenvon X und Y hold on; surfl(Y,X,Z); % Plotparameter setzen shading interp colormap(gray) axis equal pause % Schnittkurven % z als Parameter z=linspace(-1,1); % Erste Gleichung liefert x -- Wurzel also plusminus Loesung x=sqrt(1-z.^2); % Zweite Gleichung liefert y -- Wurzel also plusminus Loesung % y=sqrt(1-z.^2); % Unnötig da gleich x plot3( x, x, z,'linewidth',5); plot3(-x, x, z,'linewidth',5); plot3( x,-x, z,'linewidth',5); plot3(-x,-x, z,'linewidth',5); pause % Zweites Bild mit Loechern % Zylinder berechnen wie oben % Werte im Inneren des zweiten Zylinders nicht plotten -> NaN X(X.^2+Z.^2<1)=NaN; % Zylinder plotten figure;hold on; surfl(X,Y,Z); %zweiter Zylinder durch Vertauschenvon X und Y surfl(Y,X,Z); % Plotparameter setzen shading interp;colormap(gray);axis equal % Schnittkurven plot3( x, x, z,'linewidth',5); plot3(-x, x, z,'linewidth',5); plot3( x,-x, z,'linewidth',5); plot3(-x,-x, z,'linewidth',5); pause % Grenzen auf Schnittkurven -> keine Ecken figure;hold on; t=linspace(0,2*pi,101); y=cos(t); z=sin(t); % Untere Kurve konstant -2 xu=-2*ones(size(z)); % obere Kurve: x=y -> davon das Minimum xo=min([y;-y]); % Plot % Da in Achsenrichtung linear genügen zwei Punkte in x surf([xu;xo] , [1;1]*y,[1;1]*z); % Drei weitere Teile: x-Werte anderes Vorzeichen, xu. y vertauscht surf(-[xu;xo], [1;1]*y,[1;1]*z); surf( [1;1]*y, [xu;xo],[1;1]*z); surf( [1;1]*y,-[xu;xo],[1;1]*z); % Kurven als zwei Kurven plot3(cos(t),cos(t),sin(t),'-k','linewidth',2); plot3(cos(t),-cos(t),sin(t),'-k','linewidth',2); % Einstellungen shading interp cm=gray(1000); colormap(cm(200:800,:)) axis equal