三.三维图形的精细处理 一.视点处理 在日常生活中,从不同的角度观察物体,所看到的物体形状是不一样的。同样,从不同视点绘制的三维图形的形状也是不一样的。视点位置可由方位角和仰角表示。 方位角 Matlab提供了设置视点的函数view,其调用格式为: view(az,el) 其中az为方位角,el为仰角,它们均以度为单位。系统默认的视点定义为方位角为-37.5度,仰角30度。 例522 从不同视点绘制多峰函数曲面。
subplot(2,2,1);mesh(peaks); view(-37.5,30); title('1'); subplot(2,2,2);mesh(peaks); view(0,90); title('2'); subplot(2,2,3);mesh(peaks); view(90,0); title('3'); subplot(2,2,4);mesh(peaks); view(-7,-10); title('4'); 二.色彩处理 三.图形的裁剪处理 Matlab定义的NaN常数可以用于表示那些不可使用的数据,利用这些特性,可以将图形中需要裁剪部分对应的函数值设置成NaN,这样在绘制图形时,函数值为NaN的部分将不显示出来,从而达到对图形进行裁剪的目的。例如,要削掉正弦波顶部或底部大于0.5的部分,可使用下面的程序。 x=0:pi/10:4*pi; y=sin(x); i=find(abs(y)>0.5); x(i)=NaN; plot(x,y); 例524 绘制两个球面,其中一个在另一个里面,将外面的球裁掉一部分,以便能看到里面的球。 [x,y,z]=sphere(25); %生成外面的大球 z1=z; z1(:,1:4)=NaN;%将大球裁去一部分 c1=ones(size(z1)); surf(3*x,3*y,3*z1,c1); %生成里面的小球 hold on z2=z; c2=2*ones(size(z2)); c2(:,1:4)=3*ones(size(c2(:,1:4))); surf(1.5*x,1.5*y,1.5*z2,c2); colormap([0 1 0;0.5 0 0;1 0 0]); grid on hold off
色图中使用三种颜色,外面的球是绿色,里面的球采用深浅不同的两种红色。 四.隐函数作图 如果给定了函数的显式表达式,可以先设置自变量向量,然后根据表达式计算函数向量,从而用plot等函数绘制出图形。但是当函数采用隐函数形式时,如: ,则很难利用上述方法绘制图形。Matlab提供了一个ezplot函数绘制隐函数图形。用法如下: ① 对于函数f=f(x),ezplot的调用格式为: ezplot(f),在默认区间(-2pi,2pi)绘制图形。 ezplot(f,[a,b]),在区间(a,b)绘制 ② 对于隐函数f=f(x,y),ezplot的调用格式为; ezplot(f),在默认区间(-2pi,2pi),(-2pi,2pi)绘制f(x,y)=0的图形。 ezplot(f,[xmin,xmax,ymin,ymax]);在区间 绘制图形。 ezplot(f,[a,b]),在区间(a,b),(a,b)绘制 ③ 对于参数方程x=x(t),y=y(t),ezplot函数的调用格式为: ezplot(x,y),在默认区间 绘制x=x(t),y=y(t)图形。 ezplot(x,y,[tmin,tmax]),在区间(tmin,tmax)绘制x=x(t),y=y(t)图形。 例525 隐函数绘图举例。
subplot(2,2,1); ezplot('x^2+y^2-9');axis equal; subplot(2,2,2); ezplot('x^3+y^3-5*x*y+1/5') subplot(2,2,3); ezplot('cos(tan(pi*x))',[0,1]); subplot(2,2,4); ezplot('8*cos(t)','4*sqrt(2)*sin(t)',[0,2*pi]); 其他隐函数绘图还有,ezpolar,ezcontour,ezplot3,ezmesh,ezmeshc,ezsurf,ezsurfc。
|