next up previous contents
Nächste Seite: M-Files zu Faltung und Aufwärts: M-Files zur Vektorgeometrie Vorherige Seite: Abbildungen in homogenen Koordinaten   Inhalt

Serienabbildungen der ,,L``-Figur

Eine animierte Darstellung, mit einem Salto Mortale rückwärts des ,,L`` wird durch das M-File 'lsalto.m' produziert.

%lsalto.m : Salto Mortale rueckwarts des "L"
clf;  L = [5 5 6; 2 0 0; 1 1 1];  lhand = plothclin(L);
stdhcaxis;  hold on
B = [ 1 0 -5; 0 1 0 ; 0 0 1]*L;  dw = pi/36;
for k = 1:36
 T = [cos(2*k*dw) -sin(2*k*dw) 5*cos(k*dw); ...
       sin(2*k*dw) cos(2*k*dw) 5*sin(k*dw); 0 0 1];
 Lt = T*B;
% input('WEITER?'); % Einzelschritte mit Prompt
 pause(0.12);   delete(lhand);  lhand = plothclin(Lt);
end
 input('APPLAUS!!');

3D ``L'' dreht sich vor dem Spiegel

Als Hilfsprozedur wird eine 3D Version von plothclin() verwendet, mit dem Namen 'plothcl3.m'

% plothandle = plothcl3(Lmat,colorstring)
% 3D-Plot einer Linie aus einer Matrix von Spaltenvektoren
%   in 3D homogenen Koordinaten
function plothandle = plothcl3(lmat,colorstring)
if exist('colorstring') == 0;  col = 'k'; else 
                   col = colorstring;  end
plothandle = plot3(lmat(1,:),lmat(2,:),lmat(3,:),col);

Damit ist die Bahn frei für die animierte 3D Darstellung, abgelegt im File 'lrotmirr3D.m'

% lrotmirr3D.m - 3D "L" dreht sich vor dem Spiegel
spiegel=[0 4 4 0 0;0 0 0 0 0;0 0 3 3 0;1 1 1 1 1];
% Randpunkte des Spiegels und Spiegelmatrix
spm=[1 0 0 0;0 -1 0 0;0 0 1 0;0 0 0 1];
plothcl3(spiegel,'b') ; hold on
axis ([-6 6,-6 6 0 12])  ; axis square
set(gca,'CameraPosition',[-15 -100 27])
% Drehen des "L" in Schritten von 5 Grad
for lw=0:2:360
  w=lw*pi/180;  kopf= [2 -4 2 1]';
  ecke=[2 -4 0 1]';  zehe=[2+cos(w) -4+sin(w) 0 1]';
% "L" zusammensetzen und spiegeln
  LM=[kopf ecke zehe]; LV=spm*LM;
  hm=plothcl3(LM,'k');  hv=plothcl3(LV,'r');
  pause(0.1)
  if lw < 360
    delete(hv);   delete(hm)
  end
end



Unterabschnitte

Stefan Adam 2006-03-07