www.gusucode.com > 基于matlab月亮绕地球的动画源码程序 > 基于matlab月亮绕地球的动画源码程序/月亮绕地球的动画/nightonearth.m
function nightonearth % NIGHTONEARTH shows rotating earth by night % Requires images 'earth_lights_small.jpg' and % 'moon.jpg' on the path stars=rand(100,2); [x,y,z] = sphere(48); x2=(x*0.2734)+2; y2=y*0.2734; z2=z*0.2734; f=figure('Color','k'); staraxis=axes('units','normalized','position',[0,0,1,1]); scatter(stars(:,1),stars(:,2),'w.'); axis off earthaxis=axes('units','normalized','position',[0,0,1,1]); hold on; s=surf(x,y,z); s2=surf(x2,y2,z2); % [X,Y]=meshgrid(0:2*pi/60:2*pi,(logspace(0,1,20)-1)./10); % [X,Y]=pol2cart(X,Y); % Z=X.^2+Y.^2; % s3=surf(X,Y,Z); shading interp axis([-2.5,2.5,-2.5,2.5,-1.5,1.5]); daspect([1,1,1]) axis off vis3d set(gca,'Position',[0,0,1,1]); topo=imread('earth_lights_small.jpg'); topoud=flipdim(topo,1); set(s,'facecolor','texture'); set(s,'cdata', im2double(topoud)); [topomoon,map]=imread('moon.jpg'); set(s2,'facecolor','texture'); set(s2,'cdata', im2double(topomoon)); camtarget([0,0,0]); campos([25,0,0]); u=uicontrol('style', 'togglebutton', 'value', false, 'string', 'Exit'); while ~get(u, 'value') rotate(s,[0,0,1],1,[0,0,0]); rotate(s2,[0,0,1],0.0357,[0,0,0]); % camorbit(15,0) pause(0.1) end close(f)