第5章MATLAB绘图3精选.ppt

第5章MATLAB绘图3精选

5.5.3 光照处理 MATLAB提供了灯光设置的函数,其调用格式为: light(Color,选项1,Style,选项2,Position,选项3) 例 光照处理后的球面。 程序如下: [x,y,z]=sphere(20); subplot(1,2,1); surf(x,y,z);axis equal; light(Posi,[0,1,1]); shading interp; hold on; plot3(0,1,1,p);text(0,1,1, light); subplot(1,2,2); surf(x,y,z);axis equal; light(Posi,[1,0,1]); shading interp; hold on; plot3(1,0,1,p);text(1,0,1, light); 5.5.4 图形的裁剪处理 例 绘制三维曲面图,并进行插值着色处理,裁掉图中x和y都小于0部分。 程序如下: [x,y]=meshgrid(-5:0.1:5); z=cos(x).*cos(y).*exp(-sqrt(x.^2+y.^2)/4); surf(x,y,z);shading interp; pause %程序暂停 i=find(x=0y=0); z1=z;z1(i)=NaN; surf(x,y,z1);shading interp; 为了展示裁剪效果,第一个曲面绘制完成后暂停,然后显示裁剪后的曲面。 5.6 图像处理与动画制作 5.6.1 图像处理 1.imread和imwrite函数 imread和imwrite函数分别用于将图像文件读入MATLAB工作空间,以及将图像数据和色图数据一起写入一定格式的图像文件。MATLAB支持多种图像文件格式,如.bmp、.jpg、.jpeg、.tif等。 2.image和imagesc函数 这两个函数用于图像显示。为了保证图像的显示效果,一般还应使用colormap函数设置图像色图。 例5-26 有一图像文件flower.jpg,在图形窗口显示该图像。 程序如下: [x,cmap]=imread(flower.jpg); %读取图像的数据阵和色图阵 image(x);colormap(cmap); axis image off %保持宽高比并取消坐标轴 动画生成的步骤 创建帧矩阵 ————— moviein 对动画中的每一帧生成图形,并把它们放到帧矩阵中 ———— getframe 从帧矩阵中回放动画 5.6.2 动画制作 MATLAB提供getframe、moviein和movie函数进行动画制作。 1.getframe函数 getframe函数可截取一幅画面信息(称为动画中的一帧),一幅画面信息形成一个很大的列向量。显然,保存n幅图面就需一个大矩阵。 2.moviein函数 moviein(n)函数用来建立一个足够大的n列矩阵。该矩阵用来保存n幅画面的数据,以备播放。之所以要事先建立一个大矩阵,是为了提高程序运行速度。 3.movie函数 movie(m,n)函数播放由矩阵m所定义的画面n次,缺省时播放一次。 例 绘制了peaks函数曲面并且将它绕z轴旋转。 程序如下 [X,Y,Z]=peaks(30); surf(X,Y,Z) axis([-3,3,-3,3,-10,10]) axis off; shading interp; colormap(hot); m=moviein(20); %建立一个20列大矩阵 for i=1:20 view(-37.5+24*(i-1),30) %改变视点 m(:,i)=getframe; %将图形保存到m矩阵 end movie(m,2); %播放画面2次 5.4 三维图形 5.4.1 三维曲线 plot3函数与plot函数用法十分相似,其调用格式为: plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n) 其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。当x,y,z是同维向量时,则x,y,z 对应元素构成一条三维曲线。当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵列数。 例5-16 绘制三维曲线。 程序如下: t=0:pi/100:20*pi; x=sin(t); y=cos(t); z=t.*sin(t).*cos(t); plot3(x,y,z); title(Line in 3-D Space); xlabel(X);ylabel(Y);zlabel(Z); gri

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档