三维画图函数

plot3函数

plot3是画三维图形的最基本函数,调用格式

plot3(X1,Y1,Z1,...)
plot3(X1,Y1,Z1,LineSpec,...)
plot3(...,'PropertyName',PropertyValue,...)

X1,Y1,Z1为向量或者矩阵,LineSpec定义曲线线型、颜色和数据点,PropertyName线对象的属性,PropertyValue属性的值

t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t);

三维网格线绘制

所用的函数为mesh,调用格式

mesh(X,Y,Z)
mesh(Z)
mesh(...,C)
mesh(...,'PropertyName',PropertyValue,...)
mesh(axes_handles,...)
h = mesh(...)

C是用于控制颜色,如果没有定义C,mesh绘制图的颜色随着Z值成比例变化;X和Y都是向量,长度分别为m和n,Z即为m×nm×nm \times n矩阵,网格点坐标(X(i),Y(j),Z(i,j))(X(i),Y(j),Z(i,j))(X(i),Y(j),Z(i,j));参数没有X,Y时,,网格点坐标(i,j,Z(i,j))(i,j,Z(i,j))(i,j,Z(i,j))

网格透明控制

hidden on
hidden off
[X,Y,Z] = sphere(12);
subplot(1,2,1);
mesh(X,Y,Z);
hidden on
axis square off
subplot(1,2,2);
mesh(X,Y,Z);
hidden off
axis square off

axis square 将当前坐标系图形设置为方形。横轴及纵轴比例是1:1

axis equal 将横轴纵轴的定标系数设成相同值。

还有两个变种函数
1. meshc 绘制等值线图
2. meshz 包含0平面的网格图

[X,Y,Z] = peaks(30);subplot(1,2,1);
meshc(X,Y,Z);
subplot(1,2,2);
meshz(X,Y,Z);

三维表面图surf

主要用于绘制一个着色的三维表面图,调用格式

surf(Z)
surf(Z,C)
surf(X,Y,Z)
surf(X,Y,Z,C)
surf(...,'PropertyName',PropertyValue)
surf(axes_handles,...)
h = surf(...)

参数和mesh基本相同

x = 0:0.2*pi:2*pi;
y = 0:0.2*pi:2*pi;
z = sin(x') * cos(y);
surf(x,y,z);

shading flat
%平面阴影
shading interp
%插值阴影

与mesh不同,surf没有办法进行透明显示,除非删除前面部分

可以把前面部分点的值赋值为NaN,绘图函数会自动的忽略NaN值的点,就会产生漏洞

[X,Y,Z] = peaks(20);x = X(1,:);
%X向量的第一行
y = Y(:,1);
%Y向量的最后一列
i = find(y > .5 & y < 1);
j = find(x > -.4 & x < .8);
%find查找函数,查找符合条件的元素的索引和值
Z(i,j) = nan;
surf(X,Y,Z);

surf的变种函数

surfc %绘制底层等高线
surfl %有光照效果

其他的画图命令

cylinder

用于绘制圆柱图形

[X,Y,Z] = cylinder(r,n)

返回半径为r,高度为1的圆柱体x,y,z的坐标轴,圆柱体的圆周有n个距离相同的点

sphere

用于生成球体(只是返回点的坐标,绘图还需要调用mesh或者surf)

sphere

生成一个单位球,单位球有20×2020×2020 \times 20个面组成

sphere(n)

生成一个单位球,单位球有n×nn×nn \times n个面组成

stem3

用于绘制三维空间的离散数据序列

stem(x,y,z,c,'filled')

c指定线条和标记颜色,filled是否为标记填充颜色;只传递z,z的行和列作为x和y

等高线和带状图

contour(x,y,z,n,v)   %二维等高线
contour3()  %三维等高线
Pcolor()    %带颜色的绘制

n是等高线层数,v是等值线的范围

ribbon(x,Y,width)

绘制Y关于x的带状列图,带宽度为width,默认为0.75

立体可视化

slice函数

正常情况下,计算机只能显示三个空间变量,而slice则通过颜色存储第四维空间变量

slice(V,sx,sy,sz)

函数V=V(X,Y,Z)V=V(X,Y,Z)V = V(X,Y,Z)在x轴,y轴,z轴上的切片图,坐标由sx,sy和sz来进行制定;V为三维向量

slice(X,Y,Z,Y,sx,sy,sz)

例如当X = X_{0}时,V=V(X0,Y,Z)V=V(X0,Y,Z)V = V(X_{0},Y,Z)变成一立体曲面

slice(V,XI,YI,ZI)

由参量矩阵XI,YI,ZI确定的超立体切面图;XI,YI,ZI定义了一个曲面,同时在曲面上的点计算V的值 ;XI,YI,ZI为同型矩阵

slice(...,'method')
参数 方法
linear 三次线性内插值(默认)
cubic 三次立方内插值
nearest 最近内插值

例子
在−2≤x≤2−2≤x≤2-2 \le x \le 2,−2≤y≤2−2≤y≤2-2 \le y \le 2,−2≤z≤2−2≤z≤2-2 \le z \le 2区域绘制可视化函数

[x,y,z] = meshgrid(-2:.1:2,-2:.4:2,-2:.4:2);
v = sqrt(x.^2 + sin(y).^2+z.^2);
xslice = [-1.2,.8,2];
yslice  = 2;
zslice = [-2,0];
slice(x,y,z,v,xslice,yslice,zslice);

控制视角

在有些时候因为我们的某个视角观察图像时不方便,所以可以合理的移动视角

view

view可以指定图形的观察点,用方位角和仰角一起或者空间中的一点确定位置

view([x,y,z])

视角沿着向量[x,y,z]指向原点

view(2)   %默认二维视点,方位角0,仰角90
view(3)   %默认三维视点,方位角-37.5,仰角30
view(az,el)

设置视点的方位角和仰角

viewmtx

用于视点转换矩阵

T = view(az,el)

返回一个与视点方位角za与仰角el对应地正交矩阵,不改变视角

T = view(az,el,phi)

返回一个透视的转换矩阵,透视的角度为phi

phi值 说明
0 正交投影
10 类似远距离投影
25 类似普通投影
60 类似以广角投影
rorate3d

三维视角变换函数

rorate3d on

然后就可以用鼠标左键控制视角变化

[matlab]三维画图相关推荐

  1. MATLAB三维画图函数使用总结

    简介: 接上一篇,本篇主要是三维画图函数使用总结.在某些数据处理场景中,将数据处理成三维图形会使问题变得更加明晰. 三维绘图函数总结: 代码实现: [注]每个绘图函数都至少有一个使用实例.注意使用时将 ...

  2. matlab三维画图总结

    1.MATLAB中,三维曲线的绘制函数是plot3.语法形式如下: plot3(X, Y, Z) plot3(X, Y, Z, S) plot3(X1, Y1, Z1, S, X2, Y2, Z2, ...

  3. MATLAB 三维画图

    clc;clear; close all a=5; b=3; x=1:8:; y=1:5; [xx,yy]=meshgrid(x,y) z=xx.*yy figure surf(xx,yy,z);%彩 ...

  4. matlab 三维画图总结

    1.画函数的三维图,如:Z(X,Y)=2*X.*exp(-X.^2-Y.^2)+1; close all; [X,Y]=meshgrid(-2:0.5:2,-2:0.5:2);%生成坐标轴 Z=2*X ...

  5. matlab 刷新图像,MATLAB三维画图、画线、动态刷新、不同视角、自动保存多张图像...

    作者:金良(golden1314521@gmail.com) csdn博客:http://blog.csdn.net/u012176591 效果图(http://www.tuyitu.com/gif/ ...

  6. matlab 三维 作图 坐标轴_matlab三维画图

    matlab三维画图主要有三个命令:plot3命令.mesh命令和surf命令. plot3plot3是三维画图的基本函数,绘制的是最为主要的3D曲线图,最主要的调用格式是: plot3(X,Y,Z) ...

  7. 两个同时comet matlab,matlab 三维绘制

    1. mesh(Z)语句 mesh(Z)语句可以给出矩阵Z元素的三维消隐图,网络表面由Z坐标点定义,与前面叙述的x-y平面的线格相同,图形由邻近的点连接而成.它可用来显示用其它方式难以输出的包含大量数 ...

  8. matlab 三维核密度图_Matlab精彩画图示例:三维网状图和三维曲面图

    接上篇:Matlab精彩画图示例:绘制图上图 这篇介绍两个绘制三维图的命令: mesh - 绘制三维网状图 surf - 绘制三维曲面图 matlab代码如下: 绘制三维图的matlab代码示例 程序 ...

  9. matlab 三维数组运算,MATLAB二维三维画图仿真数组运算

    MATLAB二维三维画图仿真数组运算 1. 数学 (1) 数组运算: x=[1 2 3 4]; y=[3 4 5 6]; z=x+y %数组x与数组y相加得到数组z z = 4 6 8 10 z=x- ...

最新文章

  1. c#往结构体里面读数据_结构体内存对齐,这回给你彻底搞会!
  2. 微信小程序的setData
  3. Iptables详解+实例
  4. mysql data to long_mysql 当插入中文字段时发生“data too long for column”错误
  5. c语言 乘号 指针 避免,C语言指针篇(一)指针与指针变量
  6. vue 子组件给父组件传值
  7. python识别文字并且提示_python识别图像并提取文字的实现方法
  8. webqq机器人php,一步一步来做WebQQ机器人-(一)(验证码)
  9. 维修 空调 碰上 骗子
  10. 2021年安全生产模拟考试(全国特种作业操作证电工作业-防爆电气模拟考试题库一)安考星
  11. Word控件Spire.Doc 【邮件合并】教程(三):如何创建邮件合并和合并文本值
  12. 研究Google maps及51ditu的图片切割及存储方法(转)
  13. html怎么禁止图片拖动,javascript,html5_div在拖动时出现禁止图标,javascript,html5 - phpStudy...
  14. Redis - Windows下载与安装
  15. 20220630学习打卡
  16. 1445. 苹果和桔子
  17. 使用Java实现Comet风格的Web应用(二)
  18. 计算机学院研究生录取名单,四川大学计算机学院2018年硕士研究生招生拟录取名单及成绩公示...
  19. 希沃集控系统流媒体服务器未开启,智慧校园:希沃集控,掌控信息化管理
  20. GPU 编程 CPU 异同点_GPU(图形处理器) ARCHITECTURE的变迁史

热门文章

  1. 学了很多理论,你为什么还是做不好一名数据分析师?
  2. Vue-第三方库扩展
  3. 百度云不限速-proxyee-down
  4. 20条职业发展建议,送给拒绝原地踏步的你
  5. React中过渡动画的编写方式
  6. 记事本 批量新建文件夹
  7. 鸟哥的linux私房菜-基础学习篇 读书笔记
  8. 爬虫模拟用户增加阅读量
  9. python画图之小坦克
  10. 阿里云道哥:我曾经是饱受网络攻击摧残的创业者,现在我要帮他们顶住