三维曲线
Plot3函数在用法上与Plot函数非常相似,其调用格式为:
图3(x1,y1,z1,选项1,x2,y2,z2,选项2,...,XN,YN,锌,选项N)
其中每组x,y,z y,z构成一组曲线的坐标参数,选项的定义与绘图函数相同。当x、y、z是同一维度的向量时,x、y、z对应的元素形成三维曲线。当x、y、z为同维矩阵时,用x、y、z对应的列元素绘制三维曲线,曲线的个数等于矩阵的列数。
画一条三维曲线。
程序如下:
t = 0:pi/100:20 * pi;
x = sin(t);
y = cos(t);
z=t.*sin(t)。* cos(t);
plot3(x,y,z);
标题(三维空间中的线条
xlabel(X)Y ylabel(Y zlabel(Z
三维表面
1.生成3D数据
在MATLAB中,利用网格函数生成平面区域的网格坐标矩阵。格式为:
x = a:D1:b;y = c:D2:d;
[X,Y]=meshgrid(x,Y);
语句执行后,矩阵X的每一行都是向量X,行数等于向量Y的元素个数,矩阵Y的每一列都是向量Y,列数等于向量X的元素个数。
2.绘制三维曲面的功能
surf函数和mesh函数的调用格式为:
网格(x,y,z,c):绘制一个网格表面,追踪空之间的数据点,并将它们连接成一个网格。
Surf(x,y,z,c):绘制一个完整的曲面,并绘制由数据点表示的曲面。
一般来说,x,y,z,y,z是相同维数的矩阵。x,y为网格坐标矩阵,z为网格点的高度矩阵,c用于指定不同高度的颜色范围。
绘制三维表面图形的示例z=sin(x+sin(y))-x/10。
程序如下:
[x,y]= mesh grid(0:0.25:4 * pi);%在[0,4pi][0,4pi]区域生成网格坐标。
z = sin(x+sin(y))-x/10;
网格(x,y,z);
轴([0 4 * pi 0 4 * pi-2.5 1]);
此外,还有带轮廓的三维网格曲面函数meshc和带基座的三维网格曲面函数meshz。其用法与mesh类似,只是meshc也在xy平面上绘制Z轴方向的曲面轮廓,meshz也在xy平面上绘制曲面的底面。
例如,在xy平面中选择区域[-8,8][-8,8],并绘制四种三维表面图。
程序如下:
[x,y]= mesh grid(-8:0.5:8);
z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);
子剧情(2,2,1);
网格(x,y,z);
标题(网格(x,y,z))
子剧情(2,2,2);
meshc(x,y,z);
标题(网格(x,y,z))
子剧情(2,2,3);
meshz(x,y,z)
标题(meshz(x,y,z))
子剧情(2,2,4);
surf(x,y,z);
标题(冲浪(x,y,z))
3.标准三维表面
球面函数的调用格式为:(球面、域、半球、圆)
[x,Y,Z]=球面(N):生成三个(N+1)-乘-(N+1)矩阵,这样SURF(X,Y,Z)生成一个单位球面。
柱面函数的调用格式是:(柱面,柱面,柱面)
[x,y,z]=圆柱体(R,n),其中R为圆的半径,n为构成圆的点数。
MATLAB还有一个峰值函数,叫做多峰值函数,常用于演示三维曲面。
绘制标准三维表面图形的示例。
程序如下:
t = 0:pi/20:2 * pi;
[x,y,z]=圆柱体(2+sin(t),30);
子剧情(2,2,1);
surf(x,y,z);
子剧情(2,2,2);
[x,y,z]=球体;
surf(x,y,z);
子剧情(2,1,2);
[x,y,z]=峰值(30);
surf(x,y,z);
其他三维图形
在介绍2D图形时,提到了条形图、条形图、饼图和填充图等特殊图形。它们也可以以3D形式出现。使用的函数分别是bar3、stem3、pie3和fill3。
Bar3功能绘制三维条形图,常用的格式是:
bar3(y)
bar3(x,y)
Stem3函数绘制离散序列数据的三维条形图,常用格式为:
stem3(z)
stem3(x,y,z)
Pie3函数绘制三维饼图。常见的格式是:
pie3(x)
fill3函数相当于三维函数fill,可以三维空绘制填充的多边形。常见的格式是:
填充3(x,y,z,c)
绘制三维图形示例:
(1)绘制魔方阵列的三维条形图。
(2)以三维条形图的形式绘制曲线y=2sin(x)。
(3)给定x=[2347,1827,2043,3025],画一个饼图。
(4)画五个顶点坐标值随机的黄色三角形。
程序如下:
子剧情(2,2,1);
bar3(魔法(4))
子剧情(2,2,2);
y = 2 * sin(0:pi/10:2 * pi);
stem 3(y);
子剧情(2,2,3);
pie3([2347,1827,2043,3025]);
子剧情(2,2,4);
fill3(rand(3,5),rand(3,5),rand(3,5),y)
绘制多模态函数的瀑布图和等高线图。
程序如下:
子剧情(1,2,1);
[X,Y,Z]=峰值(30);
瀑布(X,Y,Z)
X轴,Y轴,Z轴
子剧情(1,2,2);
Contour3(X,Y,Z,12,k%其中12代表高度的级别数。
X轴,Y轴,Z轴
图形装饰处理
处理视点MATLAB提供了设置视点的函数视图,其调用格式为:
视图(az,el)
其中az是方位角,el是仰角,两者都以度为单位。系统的默认视点定义为方位角-37.5°和仰角30°。
示例从不同的角度绘制多模态函数曲面。
程序如下:
子剧情(2,2,1);网格(峰值);
视图(-37.5,30);%指定子图1的视点。
标题(方位角=-37.5,仰角=30)
子剧情(2,2,2);网格(峰值);
视图(0,90);%指定子图2的视点。
标题(方位角=0,仰角=90)
子剧情(2,2,3);网格(峰值);
视图(90,0);%指定子图3的视点。
标题(方位角=90,仰角=0)
子剧情(2,2,4);网格(峰值);
视图(-7,-10);%指定子图4的视点。
标题(方位角=-7,仰角=-10)
彩色处理
1.颜色的矢量表示
除了用字符来表示颜色,MATLAB还可以用包含三个元素的向量来表示颜色。向量取值在[0,1]范围内,三个元素代表红、绿、蓝三色的相对亮度,称为RGB三重。
2.彩色地图
彩色地图是由MATLAB系统引入的概念。在MATLAB中,每个图形窗口只能有一个色图。彩色图是m3的数值矩阵,每一行都是RGB三元组。可以人工生成色图矩阵,也可以调用MATLAB提供的函数定义色图矩阵。
3.三维表面图形的着色
三维表面绘制实际上是给网格图的每个网格块着色。Surf函数通过默认的着色方法对网格片进行着色。此外,着色命令也可用于更改着色模式。
Shadingfaceted命令用其高度对应的颜色给每个网格块着色,但网格线保持不变。“着色平面”命令用相同的颜色给每个网格块着色,网格线也使用相应的颜色,从而使图形表面看起来更平滑。
Shading interp命令在网格切片中使用颜色插值处理,得到的表面图像最平滑。
颜色是黑色的。这是系统默认的着色方法。
三种图形着色方法的效果演示。
程序如下:
[x,y,z]=球体(20);
彩色地图(铜);
子剧情(1,3,1);
surf(x,y,z);
等轴
子剧情(1,3,2);
surf(x,y,z);遮光平;
等轴
支线剧情(1,3,3);
surf(x,y,z);阴影interp
等轴
光照处理
MATLAB提供灯光设置功能,其调用格式为:
灯光(颜色,选项1,样式,选项2,位置,选项3)
照明后的球体。
程序如下:
[x,y,z]=球体(20);
子剧情(1,2,1);
surf(x,y,z);轴相等;
光(Posi,[0,1,1]);
阴影interp
坚持住;
plot3(0,1,1,p’);文本(0,1,1,光
子剧情(1,2,2);
surf(x,y,z);轴相等;
光(Posi,[1,0,1]);
阴影interp
坚持住;
plot3(1,0,1,p文本(1,0,1,光
基于
示例4-22:三维曲面绘制、插值和着色处理,裁剪出X和Y小于0的部分。
程序如下:
[x,y]= mesh grid(-5:0.1:5);
z=cos(x)。*cos(y)。*exp(-sqrt(x.^2+y.^2)/4);
surf(x,y,z);阴影interp
暂停%程序已暂停
i=find(x =0 y
Z1 = z;Z1(I)= NAn;
surf(x,y,Z1);阴影interp
为了显示裁剪效果,绘制后暂停第一个曲面,然后显示裁剪后的曲面。
图像处理和动画
图像处理
1.imread和imwrite函数
读和写功能用于将图像文件读入MATLAB workshop 空并将图像数据和色图数据写入一定格式的图像文件。MATLAB支持多种图像文件格式,如。bmp,。jpg,。jpeg,。tif等。
2.图像和图像功能
这两个功能用于图像显示。为了保证图像的显示效果,还应该使用colormap功能来设置图像的色图。
示例5-23有一个图像文件flower.jpg,显示在图形窗口中。
程序如下:
[x,cmap] = imread (flower.jpg%读取图像的数据数组和颜色数组。
图像(x);彩色地图(cmap);
轴关闭%保持纵横比并取消坐标轴。
动画制作
MATLAB为动画提供getframe、moviein和movie函数。
1.getframe函数
Getframe函数可以截取一个图片信息(动画中称为一帧),形成一个大的列向量。显然,保存n张图纸需要一个大矩阵。
2.移动功能
moviein(n)函数用于构建足够大的n列矩阵。矩阵用于存储n张图片的数据以供播放。提前构建大矩阵的原因是为了提高程序的运行速度。
3.电影功能
电影(m,n)功能将矩阵m定义的图片播放n次,默认播放一次。
示例绘制峰值函数曲面,并围绕z轴旋转它。
程序如下
[X,Y,Z]=峰值(30);
冲浪(X,Y,Z)
轴([-3,3,-3,3,-10,10])
轴关闭;
阴影interp
colormap(热图);
m = movie in(20);%创建一个包含20列的大矩阵。
因为i=1:20
视图(-37.5+24*(i-1),30)%更改视点。
m(:,I)= get frame;%将图形保存到M矩阵
结束
电影(m,2);%播放图片两次。
三维网络图的MATLAB高级处理
4.1.下料处理
例子。比较网络图消隐前后的图形。
z =峰值(50);
子剧情(2,1,1);
网格(z);
标题(消隐前的图形)
隐藏起来
子剧情(2,1,2);
网格(z);
标题(消隐后的图形)
隐藏在
彩色地图([0 0 1])
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 ZLME@xxxxxxxx@hotmail.com 举报,一经查实,立刻删除。