资源描述
实验四 绘图求解
可视化的一般步骤
步 骤
典 型 指 令
1
准备绘图数据
曲线数据准备
¢ 先取一个参变量采样向量
¢ 然后计算各坐标数据向量
t=pi*(0:100)/100;%参变量采样向量
x=f1(t);y=f2(t);z=f3(t);
三维曲面数据
¢ 产生自变量采样向量
¢ 产生自变量“格点”矩阵
¢ 计算自变量“格点”矩阵相应的函数值矩阵
x=x1:dx:x2; %自变量采样向量
y=y1:dy:y2; %自变量采样向量
[X,Y]=meshgrid(x,y); %格点矩阵
Z=f(X,Y); %计算函数矩阵
2
选定图形窗及子图位置:
¢ 缺省时,打开Figure No.01,或当前窗,当前子图
¢ 可用指令指定图形窗号和子图号
figure(1) %指定1号图形窗
subplot(2,2,3) %指定三号子图
3
调用二维、三维曲线绘图指令:
线型、色彩、数据点形
plot(x,y,’r:’) %用红虚点画二维线
plot3(x,y,z,’b-’) %用兰色实线画曲线
调用三维曲面绘图指令
mesh(X,Y,Z)
4
设置轴的范围、坐标分格线
axis([x1,x2,y1,y2]) %平面坐标范围 axis([x1,x2,y1,y2,z1,z2]) %三维
grid on %坐标分格线
5
图形注释:
图名、坐标名、图例、文字说明
tiitle(‘调制波形’) %图名
xlabel(‘t’);ylabel(‘y’) %轴名
legend(‘sin(t)’,’sin(t)sin(9t)’)%图例
text(2,0.5,’y=sin(t)sin(9t)’) %文字说明
6
着色、明暗、灯光、材质处理(仅对三维图形使用)
colomap,shading,light,material
7
视点、三度(横、纵、高)比(仅对三维图形使用)
view,aspect
8
图形的精细操作(图柄操作):
¢ 利用对象属性值设置
¢ 利用图形窗工具条进行
get,set
1 用图形表示连续调制波形y=sin(t)sin(9t) ,过零点及其包络线,如下图所示。
考查知识点——二维曲线的绘制——plot、多次叠绘——hold on
t=(0:pi/100:pi)'; %长度为101的时间采样列向量
y1=sin(t)*[1,-1]; %包络线函数值,是(101x2)的矩阵
y2=sin(t).*sin(9*t); %长度为101的调制波列向量
t3=pi*(0:9)/9; %过零点的横坐标y3=sin(t3).*sin(9*t3);plot(t,y1,'r:',t,y2,'b',t3,y3,'bo')
axis([0,pi,-1,1]) %控制轴的范围
2、画出所表示的三维曲面、网线图。的取值范围是。如下图所示。
考查知识点——三维曲面、网线的绘制,子图的划分
【法一】数据可视化
第一步:准备绘图数据——最终得到x,y,z的坐标矩阵
clear;clf;
x = linspace(-8,8,30);%产生坐标向量
y =x; %产生坐标向量
[X,Y] = meshgrid(x,y); %由坐标向量产生坐标矩阵——meshgrid
Z = sin(sqrt(X.^2+Y.^2)) ./ sqrt(X.^2+Y.^2);
%将X、Y代入函数中计算Y,——数组运算
第二步:指明三维曲面绘图位置
subplot(1,2,1);
第三步:调用三维曲面绘图指令——surf绘图
surf(X,Y,Z)
第二步:指明三维网线绘图位置
subplot(1,2,2);
第三步:调用三维网线绘图指令——mesh绘图
mesh(X,Y,Z)
3、分别绘制上题中三维曲面的镂空图和切面图。镂空图要求将z>0.6部分镂空,而切面图要求将|x|>6或|y|>6部分切平。如下图所示。
考查知识点——三维曲面、网线的绘制,子图的划分、三维曲面的镂空、裁切处理
l 可利用利用“非数”NaN,对图形进行剪切处理
l 如果为了看清图形而需要表现切面,那么应该把被切部分强制为零。
x = linspace(-8,8,30);
y =x;
[X,Y] = meshgrid(x,y);
Z = sin(sqrt(X.^2+Y.^2)) ./ sqrt(X.^2+Y.^2);
subplot(2,1,1);
surf(X,Y,Z); shading interp
Z1 = Z; Z2 =Z;
i1 = find(Z>0.6); i2 = find(abs(X)>6|abs(Y)>6);
Z1(i1) = nan; Z2(i2) = 0;
subplot(2,2,3);
surf(X,Y,Z1); shading interp
subplot(2,2,4);
surf(X,Y,Z2); shading interp
4、绘制环面:
(提示:着色方式选择插值方式,色图选择夏天,取消坐标轴)
u = 0:0.01*pi:2*pi;
v=u;
[U,V] = meshgrid(u,v);
x = (1+cos(U)).*cos(V);
y = (1+cos(U)).*sin(V);
z = sin(U);
surf(x,y,z)
shading interp
colormap(summer)
axis off
5、在同一图像上画一单位球面,和一半径为2的三维网线球,实现单位球面的透视效果。如下图所示。
考查知识点——图形的透视
l hidden off 透视被叠压的图形
l hidden on 消隐被叠压的图形
[X0,Y0,Z0]=sphere(30); %产生单位球面的三维坐标
X=2*X0;Y=2*Y0;Z=2*Z0;%产生半径为2的球面的三维坐标
clf,surf(X0,Y0,Z0); %画单位球面
shading interp %采用插补明暗处理
hold on,mesh(X,Y,Z)
hold off
hidden off %产生透视效果
axis equal,axis off %不显示坐标轴
展开阅读全文