1.三维图形绘制

mesh画图规定坐标范围_中peaks是三维

(实际运用上节课最后的技巧--多图--figure(N))

mesh画图规定坐标范围_hg_02

mesh画图规定坐标范围_中peaks是三维_03

mashz在刚才的网格上增加了绘制边界面的功能

mesh画图规定坐标范围_mesh画图规定坐标范围_04

想要在mesh的基础上在xy平面绘制出

三维曲线的等高线,用meshc函数

mesh画图规定坐标范围_中peaks是三维_05

在三维网线上

如果对于网线上的颜色单元进行填充

就会形成三维曲面图

三维曲面图的函数是surf函数

mesh画图规定坐标范围_hg_06

如果执行stem3函数

就在原来函数的基础上再绘制三维柱状图

mesh画图规定坐标范围_网线_07

mesh画图规定坐标范围_mesh画图规定坐标范围_08

整体程序:

%绘制三维螺柱线
t=0:pi/10:10*pi;
x=cos(t);y=sin(t);
plot3(x,y,t,'bo-');%bo-规定图中曲线为蓝色、圆圈+直线类型
xlabel('x=cos(t)');
ylabel('y=sin(t)');
zlabel('z');
title('三维螺柱线');
%绘制函数的三维网格线图
x=-2:0.2:2;
y=x;
[x,y]=meshgrid(x,y);
z=x.*exp(-x.^2-y.^2);
mesh(x,y,z);
meshz(x,y,z);
%用表现函数曲面图
x=-5:5;y=x;[x,y]=meshgrid(x,y);
z=x.^2+y.^2;
surf(x,y,z);hold on,colormap(hot);%绘制曲线的颜色 调色板设为hot
stem3(x,y,z,'bo'); %在原图基础上再绘制三维柱状图。

mesh画图规定坐标范围_hg_09


mesh画图规定坐标范围_中peaks是三维_10

2.三维隐函数绘图

mesh画图规定坐标范围_中peaks是三维

程序:

%绘制由隐函数f(x,y,z)=x.^2+y.^2+z.^2-1=0的三维球面
clear;
%绘制球面f(x,y,z)=x.^2+y.^2+z.^2=1;
xlimit=[-2 2]; %x坐标范围
ylimit=[-2 2]; %y坐标范围
zlimit=[-2 2]; %z坐标范围
gd=[30,30,30];%x,y,z坐标轴的格点数,当然越多越精细。
f=@(x,y,z) x.^2+y.^2+z.^2-1;%隐函数f(x,y,z)=0,如果f中不含某个变量一定要
                            %@,在匿名函数中表示函数句柄。
x=linspace(xlimit(1),xlimit(2),gd(1));
y=linspace(ylimit(1),ylimit(2),gd(2));
z=linspace(zlimit(1),zlimit(2),gd(3));
[x,y,z]=meshgrid(x,y,z);   %产生三维的立体栅格点
val=f(x,y,z);
[f,v]=isosurface(x,y,z,val,0);
p=patch('Faces',f,'Vertices',v,'CData',v(:,3),'facecolor','none','Edgecolor','flat');
view(3);grid on;

mesh画图规定坐标范围_hg_12

mesh画图规定坐标范围_柱状图_13


mesh画图规定坐标范围_中peaks是三维_10

3.三维图形的修饰处理

mesh画图规定坐标范围_中peaks是三维

mesh画图规定坐标范围_mesh画图规定坐标范围_16

绘制不同视图的peaks网格线

mesh画图规定坐标范围_柱状图_17

旋转观察多峰曲面函数

让方位角从0°变到360°

mesh画图规定坐标范围_mesh画图规定坐标范围_18

让仰角从0°变到360°

mesh画图规定坐标范围_中peaks是三维_19

程序:

%旋转观察多峰函数曲面
close all;
figure;
mesh(peaks); %在新建图形窗口绘制多峰函数
el=30; %设置仰角为30°
for az=0:1:360 %让方位角从0到360,绕z轴一周
    view(az,el);
    drawnow; %更新图形窗口
end
az=0; %设置方位角为0
for el=0:1:360  %仰角从0变到360
    view(az,el);
    drawnow;
end

球的不同着色

mesh画图规定坐标范围_网线_20

程序:

%色彩处理,不同着色方式的效果展示
[x,y,z]=sphere(20);
colormap(copper);
subplot(1,3,1);surf(x,y,z);axis equal;
subplot(1,3,2);surf(x,y,z);shading flat;axis equal;
subplot(1,3,3);surf(x,y,z);shading interp;axis equal;

光照处理

(设置的光源位置不同,展示的效果不同)

mesh画图规定坐标范围_mesh画图规定坐标范围_21

程序:

%光照处理效果对比
[x,y,z]=sphere(20);
subplot(1,2,1);surf(x,y,z);axis equal;
light('position',[0,1,0]);
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('position',[1,0,1]);
shading interp;hold on;
plot3(1,0,1,'p');text(1,0,1,'light');


mesh画图规定坐标范围_中peaks是三维_10

4.操作小技巧

mesh画图规定坐标范围_中peaks是三维

mesh画图规定坐标范围_柱状图_24

利用它可以对二维和三维的色图的重新设置、润色、加工

mesh画图规定坐标范围_柱状图_25

mesh画图规定坐标范围_网线_26

也可以在图形的编辑这里把它找出来

mesh画图规定坐标范围_中peaks是三维_27


mesh画图规定坐标范围_中peaks是三维_10