function bizcard ( )

%*****************************************************************************80
%
%% bizcard() Future version of The MathWorks business card.
%
%   Click anywhere on the card.
%
%  Licensing:
%
%   Copyright 2014 The MathWorks, Inc.
%
%  Author:
%
%    Cleve Moler
%
%  Reference:
%
%    Cleve Moler,
%    Numerical Computing with MATLAB,
%    SIAM, 2004,
%    ISBN13: 978-0-898716-60-3,
%    LC: QA297.M625,
%    ebook: https://www.mathworks.com/moler/chapters.html
%

clf reset
shg
set(gcf,'name','MathWorks Business Card', ...
   'menu','none','numbertitle','off');
ax = axes('pos',[.125 .25 .75 .5],'xtick',[],'ytick',[],'box','on');
text(.3,.8,'MathWorks','fontsize',24, ...
   'fontname','Times New Roman','fontweight','normal');
text(.5,.6,'CLEVE MOLER','fontsize',12);
text(.5,.5,'Chief Scientist','fontsize',12);
text(.5,.4,'moler@mathworks.com','fontsize',12);
text(.5,.3,'508.647.7000','fontsize',12);
text(.1,.17,'www.mathworks.com','fontsize',10);
text(.1,.1,'MathWorks, Inc. 3 Apple Hill Drive, Natick, MA 01760', ...
   'fontsize',10);
L{1} = 30*membrane(1,25);
L{2} = 2*membrane(2,25);
L{3} = -2*membrane(3,25);
L{4} = 5*membrane(4,25);
L{5} = -3*membrane(5,25);
L{6} = 4*membrane(6,25);
axes('Position',[.15 .55 .2 .2], ...
     'CameraPosition', [-193.4013 -265.1546  220.4819],...
     'CameraTarget',[26 26 10], ...
     'CameraUpVector',[0 0 1], ...
     'CameraViewAngle',9.5, ...
     'DataAspectRatio', [1 1 .9],...
     'Visible','off', ...
     'XLim',[1 51], ...
     'YLim',[1 51], ...
     'ZLim',[-13 40]);
s = surface(L{1}, ...
     'EdgeColor','none', ...
     'FaceColor',[0.9 0.2 0.2], ...
     'FaceLighting','phong', ...
     'AmbientStrength',0.3, ...
     'DiffuseStrength',0.6, ... 
     'Clipping','off',...
     'BackFaceLighting','lit', ...
     'SpecularStrength',1.0, ...
     'SpecularColorReflectance',1, ...
     'SpecularExponent',7);
light('Position',[40 100 20], ...
     'Style','local', ...
     'Color',[0 0.8 0.8]);
light('Position',[.5 -1 .4], ...
     'Color',[0.8 0.8 0]);

mu = sqrt([9.6397238445, 15.19725192, 2*pi^2, ...
           29.5214811, 31.9126360, 41.4745099]);
set(gcf,'userdata',false);
set(ax,'buttondownfcn','set(gcf,''userdata'',~get(gcf,''userdata''))');
stop = uicontrol('style','toggle','string','X','fontweight','bold', ...
   'units','norm','pos',[.95 .95 .05 .05]);

t = 0;
delta = .025;
while ~get(stop,'value')
   Z = cos(mu(1)*t)*L{1} + sin(mu(2)*t)*L{2} + sin(mu(3)*t)*L{3} +  ...
       sin(mu(4)*t)*L{4} + sin(mu(5)*t)*L{5} + sin(mu(6)*t)*L{6};
   set(s,'zdata',Z)
   pause(.01)
   if get(gcf,'userdata')
      t = t + delta;
   end
end
close(gcf)

  return
end

