Contents

Zusammengesetzter Koerper: Kreiskegel, Kreiszylinder und Halbkugel

clear; clc; clf

Daten

R = 3; H = 5; n = 30;             % Radius, Hoehe des Kegels

Kegel mit Radius R und Hoehe H

t = linspace(0,1,n);              % (parametrisierte) Einteilung der Hoehe
[XK,YK,ZK] = cylinder(R*(1-t),n); % r(h) = 3*(1-h);
ZK = H*ZK;                        % Hoehe korrekt skalieren
surf(XK,YK,ZK)

Zylinder mit Radius R und Hoehe 2H

[XZ,YZ,ZZ] = cylinder(R,n);
ZZ = ZZ*2*H;                      % Hoehe korrekt skalieren
surf(XZ,YZ,ZZ)

untere Halbkugel mit Radius R

[XH,YH,ZH] = sphere(n);

XH = R*XH(1:end/2+1,:);
YH = R*YH(1:end/2+1,:);
ZH = R*ZH(1:end/2+1,:);
surf(XH,YH,ZH)
axis equal
Warning: Integer operands are required for colon operator when used as index 
Warning: Integer operands are required for colon operator when used as index 
Warning: Integer operands are required for colon operator when used as index 

wir kombinieren die 3 Koerper

Verschieben der Halbkugel, sodass deren tiefster Punkt in (0,0,0) ist

ZH = ZH + R;
% Verschieben des Zylinders, sodaß dieser auf der Halbkugel steht
ZZ = ZZ + R;
%
% Verschieben des Kegels, sodass dieser auf dem Zylinder steht
ZK = ZK + R + 2*H;
% Zeichnes des gesamten Koerpers
hh = surf(XH,YH,ZH);
hold on;
hz = surf(XZ,YZ,ZZ);
hk = surf(XK,YK,ZK);
axis equal
box on
grid off
disp(' '); disp('Bitte eine beliebige Taste druecken')
pause()
 
Bitte eine beliebige Taste druecken

Koerper in 10° Schritten um die Achse (0,1,1), ausgehend von (2,1,9) rotieren lassen

zdir = [0 1 1];                % Drehachse
GH2 = (3*H+R)/2;
center = [2, 1,GH2];           % Drehpunkt
axis equal
axis([center(1)-GH2,center(1)+GH2,center(2)-GH2,center(2)+GH2,center(3)-GH2,center(3)+GH2])

nsteps = 36;
stride = 360/nsteps;

for k = 1:nsteps
    rotate(hk,zdir,stride,center)
    rotate(hz,zdir,stride,center)
    rotate(hh,zdir,stride,center)
    F(k) = getframe;
end

Wiederhole die Bildfolge 4 mal

movie(F,2)

Create movie

File anlegen

mov = avifile('try_geom.avi','fps',10);
% Vorwaerts und Rueckwaerts drehen
mov = addframe(mov,F(1:end),F(end:-1:1));
% File schliessen
mov = close(mov);

%movie2avi(F,'try_geom2.avi')