Die Lissajous-Figuren, welche sowohl in x- als auch in y-Richtung je einer sinus/cosinus-Funktion folgen, wurden für diese animierte Darstellung sinngemäss zu dreidimensionalen Kurven ergänzt.
function voidbk = liss3dfilm(varargin)
%liss3dmn Film einer Lissajous-Figur MLISS:NLISS (def 1:2) in 3D
t = (0:0.004:1)*2*pi; voidbk = 0;
%test
% nur standalone!!
figure(1); clf ; axis([-10 10 -10 10]), axis square; hold on
axis off;
lisscaspaus = 0.15; lissrunpaus = 0.012;
r=7.7; tet = 13*pi/180;
nl = [1 1 2 2]; ml = [1 2 1 3];
for irep =2:3
pause(lisscaspaus)
a = nl(irep); b = ml(irep);
x = r*cos(a*t) ; y = r*sin(a*t) ; z = r*cos(b*t);
zc1 =r* ones(1,length(t)) ; zc2 = -r*ones(1,length(t));
xl = [r r] ; yl = [0 0] ; zl = [-r r];
%
hdkr1 = plot3ers(x,y,zc1, 0,tet,0,0,'g',2) ;
hdkr2 = plot3ers(x,y,zc2, 0,tet,0,0,'g',2) ;
hdlli = plot3ers(xl,yl,zl,pi/2,tet, 0,0,'g',2) ;
hdlre = plot3ers(xl,yl,zl, -pi/2,tet, 0,0,'g',2) ;
%
for k=0:1:360
wink = k*pi/180;
hdlln = plot3ers(x,y,z, -wink,tet, 0,0,'k',2) ;
hdlrn = plot3ers(xl,yl,zl, -wink,tet, 0,0,'r',2) ;
hdlbn = plot3ers(yl,xl,zl, -wink,tet, 0,0,'b',2);
if k>0
delete(hdllo);delete(hdlro);delete(hdlbo);
end
hdllo = hdlln; hdlro = hdlrn ; hdlbo = hdlbn;
pause(lissrunpaus);
end
pause(lisscaspaus)
delete(hdllo);delete(hdlro);delete(hdlbo);
delete(hdkr1); delete(hdkr2);
delete(hdlli); delete(hdlre);
end
function plhdb = plot3ers(x,y,z,w,t,xof,yof,col,thik)
% function plhdb = plot3ers(x,y,z,w,t,xof,yof,col,thik)
% Ersatz fuer plot3
% mit Zusatz-Parametern w , t horizontaler und vertikaler Drehwinkel
% xof, yof x- und y- Offset (Zusatz) nach Projektion in 2D
% col Farbe und thik Liniendicke
% Rueckgabe plhdb plot-handle des 2D plot-Aufrufs
zrm = [cos(w) -sin(w) 0; sin(w) cos(w) 0 ; 0 0 1];
yrm = [ cos(t) 0 -sin(t) ; 0 1 0; sin(t) 0 cos(t) ];
trko = yrm*zrm*[x;y;z];
plhdb = plot(trko(2,:)+xof, trko(3,:)+yof,col,'LineWidth',thik);
end % function plot3ers
end % function liss3dfilm