next up previous contents
Nächste Seite: M-Files zur linearen Algebra Aufwärts: Zykloiden Vorherige Seite: Normale, gestreckte und verschlungene   Inhalt


Epi- und Hypozykloiden

Eine gleichartige animierte Demo für Epizykloiden ergibt sich beim Abarbeiten des Skripts 'epizyklodemo.m'. Durch Vordefinieren der globalen Variablen ZYKRADFAC kann das Verhältnis zwischen dem äußeren und inneren Kreis bestimmt werden. (Default, ohne Vordefinition = 0.5). Negative Werte mit Betrag kleiner als 1 liefern Hypozykloiden.

%EPIZYKLODEMO  animierte grafische Demo zur Definition von Epizykloiden
% Durch Vordefinieren der globalen Variablen ZYKRADFAC
% (kleiner oder =  1, Radiusverhaeltnis, negativ Hypozykloide)
% kann der Typ der Epizykloiden gew\"ahlt werden (Defaultwert = 1/2). 
%   Copyright 2003 HSZ-T, Zuerich , Dr. Stefan Adam
t = 2*pi*(0:0.01:1.4) ;  w = 2*pi*(0:0.01:1); clf ;  hold on
if  exist('ZYKRADFAC') == 0 ;  ZYKRADFAC = 0.5  ; end 
R=6 ;  Ra=ZYKRADFAC*R;
frc = 1+ R/Ra ; fr = R/Ra;
polx = 0 ; poly = R;
xkri = R*cos(w) ;  ykri = R*sin(w);
plot(xkri,ykri,'k');  axis([-20 20 -20 20]); axis square
Mofram=moviein(length(t));
for k=1:length(t)
  x=(R+Ra)*sin(t(k)) + Ra*cos(w);  y=(R+Ra)*cos(t(k)) + Ra*sin(w);
  lx = 0:0.005*2*pi:t(k);
  bix = (R)*sin(lx);  biy = (R)*cos(lx);
  bx=(R+Ra)*sin(t(k)) - Ra*sin(t(k)+fr*lx);
  by=(R+Ra)*cos(t(k)) - Ra*cos(t(k)+fr*lx);
  vx = [(R+Ra)*sin(t(k)) (R+Ra)*sin(t(k))-Ra*sin(frc*t(k))];
  vy = [(R+Ra)*cos(t(k))  (R+Ra)*cos(t(k))-Ra*cos(frc*t(k))];
  pnewx = (R+Ra)*sin(t(k)) - Ra*sin(frc*t(k));
  pnewy = (R+Ra)*cos(t(k)) - Ra*cos(frc*t(k));
  if k > 1 
    delete(circ); delete(cent);  delete(arc);
    delete(vec);  delete(pt);
  end
  circ = plot(x,y,'k');
  cent = plot( (R+Ra)*sin(t(k)), (R+Ra)*cos(t(k)) ,'k.');
  arc  = plot(bx,by,'g');   vec = plot(vx,vy,'b');
  pt = plot(pnewx,pnewy,'m.');
  plot([polx pnewx],[poly pnewy],'r');
  polx = pnewx;  poly = pnewy;
  plot(bix, biy,'g');
  Mofram(:,k)=getframe;  pause(0.1)
end 
pause(0.8);  movie(Mofram,-3); movie(Mofram,1);



Stefan Adam 2006-03-07