当前位置:文档之家› MATLAB三维图形绘制

MATLAB三维图形绘制


(2) 浓淡处理shading
表 4.9 shading 命令的用法 命令 shading interp shading flat shading faceted 功能 使小片根据四顶点的颜色产生连续的变化,或根据网线的线段两端产生连续 的变化,这种方式着色细腻但最费时。 小片或整段网线的颜色是一种颜色。 在 flat 着色的基础上,同时在小片交接的边勾画黑色,这种方式立体表现力 最强(默认方式)。
3. 三维曲面图
语法: surf (z) %画三维曲面图 surf (x,y, z,c) 说明:参数设置与mesh命令相同,c也可以省略。
4. 其它立体网线图和曲面图
meshc命令为立体网状图加等高线;meshz为立体网 状图加“围裙”。
三、绘制三维旋转体
1、球面图
语法: sphere (n) %产生单位球面,n为旋转圆周上的分 格线条数,默认n=20。 [x,y,z]=sphere (n) %生成三个(n+1)*(n+1 )阶的矩阵 利用surf或mesh命令产生单位球面。
【上例续】使用消息框显示当阻尼系数大于1时的警告 信息,如图所示。
>>msgbox('阻尼系数输入范围出错','警告','warn')
四、离散数据图
MATLAB提供了多个绘制离散数据的命令,有stem、 stem3、stairs和scatter等。 【例】使用几种绘制离散数据的命令来显示 y e 2 x sin( x) 的离散数据。
五、等高线图
语法: contour3(Z,n) %绘制Z矩阵的三维等高线 contour(x,y,z,n) %绘制以x和y指定x、y坐标的二维等高线 说明:n为等高线的条数,省略时为自动条数。
%画三维条形图
【例】用条形图表示某年一月份中3日~6日连续四天的温 度数据,y矩阵的各列分别表示平均温度、最高温度和最低 温度,用条形图和三维条形图分别表示。
>>x=3:6; >>y=[5.3000 13.0000 0.4000 5.1000 11.8000 -1.7000 3.7000 8.1000 0.6000 1.5000 7.7000 -4.5000] >>bar(x,y) %画条形图 >>bar3(x,y) %画三维条形图
2. 三维网格图
三维网格图是由一些四边形相互连接在一起所构成的 一种曲面。
语法:
mesh(z) %画三维网线图 mesh(x,y,z,c) 说明:当只有参数z时,以z矩阵的行下标作为x坐标轴,把z 的列下标当作y坐标轴;x、y分别为x、y坐标轴的自变量; 当有x、y、z参数时,c是指定各点的用色矩阵,当c省略时 默认用色矩阵是z的数据。如果x、y、z、c四个参数都有, 则应该都是维数相同的矩阵。
1. 对数坐标图形
语法: semilogx(x,y,‘参数’) semilogy(x,y,‘参数’) loglog(x,y,‘参数’)
%绘制x为对数坐标的曲线 %绘制y为对数坐标的曲线 %绘制x、y都为对数坐标的
2. 极坐标图
语法: polar(theta,radius,‘参数’) %绘制极坐标图 说明:theta为相角,radius为离原点的距离。
• colormap( [R,G,B])—— 色图设定函数 • colormap 色图函数—— 色图设定函数 • colormap 色图函数(m)——产生m×3的色图矩阵 缺省64×3。
颜色 Black(黑) White(白) Red(红) Green(绿) Blue(蓝) Yellow(黄) M agenta(品红) Cyan(青) Gray(灰) Dark red(暗红) Copper(铜色) Aquamarine(碧绿)
说明:answer 返回用户的输入,为元胞数组;prompt为提示信息字符 串,用引号括起来,为元胞数组;title为标题字符串,用引号括起来, 可以省略;lineno用于指定输入值的行数,可以省略;defans为输入项 的默认值,用引号括起来,是元胞数组可以省略;addopts指定对话框 是否可以改变大小,取on或off,省略时为off表示不能改变大小 。
4.2 MATLAB的 三维图形绘制
一、绘制三维线图命令plot3
plot3是用来绘制三维曲线的,它的使用格式与二维 绘图的plot命令很相似。 语法: plot3(x,y,z, 's') %绘制三维曲线 plot3(x1,y1,z1, 's1',x2,y2,z2, 's2',…) %绘制多条三维曲线 说明:当x、y、z是同维向量时,则绘制以x、y、z元素为 坐标的三维曲线;当x、y、z是同维矩阵时,则绘制三维 曲线的条数等于矩阵的列数。s是指定线型、色彩、数据 点形的字符串。
二、绘制三维网格图和曲面图
1. meshgrid命令
为了绘制三维立体图形,MATLAB的方法是将x方向 划分为m份,将y方向划分为n份,meshgrid命令是以x、y 向量为基准,产生在x-y平面的各栅格点坐标值的矩阵。 语法: [X,Y]=meshgrid(x,y) 说明:X、Y是栅格点的坐标,为矩阵;x、y为向量。 例如,将x(1×m)向量和y(1×n)向量转换为(n×m)的矩阵:
表 4.7 常用颜色的 RGB 成分 RGB 成分 Red(红色) Green(绿色) 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 1 0.5 0.5 0.5 0 1 0.62 0.49 1
Blue(蓝色) 0 1 0 0 1 0 1 1 0.5 0 0.4 0.83
表 4.8 预定义色图的函数表 命令 hsv hot cool summer gray copper autumn winter spring bone pink flag jet prim 说明 HSV 的颜色对照表(默认值),以红色开始和结束 代表暖色对照表,黑、红、黄、白浓淡色 代表冷色对照表,青、品红浓淡色 代表夏天色对照表,绿、黄浓淡色 代表灰色对照表,灰色线性浓淡色 代表铜色对照表,铜色线性浓淡色 代表秋天颜色对照表,红、黄浓淡色 代表冬天色对照表,蓝、绿浓淡色 代表春天色对照表,青、黄浓淡色 代表“X 光片”的颜色对照表 代表粉红色对照表,粉红色线性浓淡色 代表“旗帜”的颜色对照表,红、白、蓝、黑交错色 HSV 的变形,以蓝色开始和结束 代表三棱镜对照表,红、橘黄、黄、绿、蓝交错色
2. 输出信息对话框 (1) 消息框
语法: msgbox(message,title,icon,icondata,iconcmap,… CreateMode) %创建消息框
说明:message为显示的信息,可以是字符串或数组;title为标题,是 字符串可省略;icon为显示的图标,可取值为“none”(无图标)、 “error”(出错图标)、“help”(帮助图标)、“warn”(警告图标)或 “custom”(自定义图标),也可省略;当使用“custom”时,用 icondata定义图标的数据,用iconcmap定义图标的颜色映象; CreateMode为对话框的产生模式可省略,取值为“modal”(有模式)、 “replace”(无模式可代替同名的对话框)、“non-modal”(默认为无模 式)。 (有模式对话框是指在对话框关闭之前,用户无法进行其它程序的运行)
2.改变视角
语法: view([az,el]) %通过方位角和俯仰角改变视角
说明:az表示方位角(azimuth),el表示俯仰角(elevation)
默认值:az=-37.5°,el=30°
五、色彩的控制 1.色图(colormap)
(1) RGB三元组
RGB三元数组每行表示一种色彩,数组元素R、G、B在 0~1之间取值,分别表示红、绿、蓝基色的相对亮度,如 下表所示。
说明:x是向量;explode是与x同长度的向量,用来决定是 否从饼图中分离对应的一部分块,非零元素表示该部分需 要分离;’label’是用来标注饼图的字符串数组。
• 【例4.21】绘制四个季度支出额的饼图。
y=[200 100 250 400]; %四个季度支出额 explode=[0 0 1 0]; pie(y,explode,{'第一季度','第二季度','第三季度','第四季度'})
2、柱面图
语法: cylinder (r,n) %以母线向量r生成单位柱面, 默认n=20,r=[1,1]。 [x,y,z]= cylinder (r,n) %生成柱面的x,y,z数据矩阵, 利用surf或mesh命令产生单位高度柱面。
四、立体图形与图轴的控制 1.网格的隐藏
语法: hidden off hidden on %显示被遮盖的网格 %隐藏被遮盖的网格
x=0:0.1:2*pi; y=sin(x).*exp(-2*x); subplot(3,1,1) stem(x,y,'filled') subplot(3,1,2) stairs(x,y) subplot(3,1,3)
六、对数坐标和极坐标图
2.色图的显示和处理
(1) 色图的显示
• rgbplot命令 语法: rgbplot(map) 说明:map是表4.8中的各预定义色图函数,rgbplot命令 可画出以行数为自变量红、绿、蓝相对亮度分量的直线 图,反映R、G、B三色比重的变化。 • colorbar命令 以不同颜色来代表曲面的高度,垂直显示颜色标尺。
【例】使用浓淡处理peaks函数曲面图。
(3) 亮度处理brighten
语法: brighten(a) 说明:当0<=a<=1时,色图加亮,当-1<=a<0时,色图变暗。
4.3 MATLAB的特殊图形绘制
一、条形图
——条形图常用于对统计的数据进行作图,特别适用于 少量且离散的数据。 语法: bar(x,y) %画条形图 bar3(y,z,width,'参数')
相关主题