• Remix
  • Share
  • New Entry

on 23 Nov 2023
  • 15
  • 38
  • 0
  • 1
  • 635
drawframe(1);
Write your drawframe function below
function drawframe(f)
persistent water ball bz xy w
t=(f-1)*0.1;
h=5-t^2;
if(f==1)
camlight('headlight','infinite');
lighting gouraud;
R=0.99;
[x,y]=meshgrid(linspace(-1,1,101));
xy=hypot(x,y);
w=1+0*x;
w(xy>R)=nan;
water=mesh(x,y,w,FaceColor='none',EdgeColor='w',EdgeAlpha=0.1);
hold on;
h=5-t^2;
[bx,by,bz]=sphere(20);
bx=0.2*bx;
by=0.2*by;
bz=0.2*bz;
ball=surf(bx,by,bz+h,FaceColor='b',EdgeAlpha=0);
[cx,cy,~]=cylinder([0,0.9,1.02],50);
cz=0.5+[0;0;0.6]*ones(1,51);
surf(cx,cy,cz,FaceColor='r',EdgeAlpha=0)
%plot3(cx(1,:),cy(1,:),cz(1,:),'k')
hold off;
daspect([1,1,1])
axis([-1.2,1.2,-1.2,1.2,0,5.5])
axis off
set(gcf,'Color','k')
else
if(f>=20)
dt=t-2;
water.ZData=exp(-t-2*xy).*sin(6*pi*xy-4*dt)+w;
h=water.ZData(xy==0);
end
ball.ZData=bz+h;
end
end
Animation
Remix Tree