基本XYZ立体绘图命令

转载 2015年07月10日 13:11:09

http://cs.nju.edu.cn/yangxc/dcc2003.files/matlab1/matlabsimple/index.htm matlab电子教程

在科学目视表示(Scientific visualization)中,三度空间的立体图是一个非常重要的技巧。本章将介绍MATLAB基本XYZ三度空间的各项绘图命令。 

1.mesh plot surf meshz

mesh和plot是三度空间立体绘图的基本命令,mesh可画出立体网状图,plot则可画出立体曲面图,两者产生的图形都会依高度而有不同颜色。下列命令可画出由函数形成的立体网状图: 

>> x=linspace(-2, 2, 25); % 在x轴上取25点


y=linspace(-2, 2, 25); % 在y轴上取25点


[xx,yy]=meshgrid(x, y); % xx和yy都是21x21的矩阵


zz=xx.*exp(-xx.^2-yy.^2); % 计算函数值,zz也是21x21的矩阵


mesh(xx, yy, zz); % 画出立体网状图

plot3(xx, yy, zz); % 画出立体曲线图

surf(xx, yy, zz); % 画出立体曲面图

meshz(xx, yy, zz); % 画出带围裙的立体网状图

四者区别如下:

mesh




plot

surf

meshz



用mesh画三维图,先要meshgrid,就是将xoy平面用你定义的x,y向量网格化,之后对每一个得到的点求其对应的函数值,最后用mesh将函数图像做出来,你如果还有不清楚的地方,可以在command window 下敲“doc mesh”或是“doc meshgrid”
meshz是绘制带有“围裙”的网状图,只是图形的视觉效果与mesh不同



2.waterfall meshc surfc contour3 contour plot3

为了方便测试立体绘图,MATLAB提供了一个peaks函数,可产生一个凹凸有致的曲面,包含了三个局部极大点及三个局部极小点,其方程式为:

要画出此函数的最快方法即是直接键入peaks: 

我们亦可对peaks函数取点,再以各种不同方法进行绘图。meshz可将曲面加上围裙:


>> peaks
 
z =  3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) ... 
   - 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) ... 
   - 1/3*exp(-(x+1).^2 - y.^2) 
 
>> [x,y,z]=peaks

meshz(x,y,z)

axis([-inf inf -inf inf -inf inf])



waterfall可在x方向或y方向产生水流效果: 


waterfall(x,y,z);

axis([-inf inf -inf inf -inf inf]);


下列命令产生在y方向的水流效果: 


waterfall(x',y',z');

axis([-inf inf -inf inf -inf inf]);




meshc同时画出网状图与等高线: 


meshc(x,y,z);

axis([-inf inf -inf inf -inf inf]);



surfc同时画出曲面图与等高线: 


surfc(x,y,z);

axis([-inf inf -inf inf -inf inf]);



contour3画出曲面在三度空间中的等高线: 

>> contour3(peaks,20)
>> axis([-inf inf -inf inf -inf inf])、



contour画出曲面等高线在XY平面的投影: 

>> contour(peaks,20)


plot3可画出三度空间中的曲线: 




亦可同时画出两条三度空间中的曲线:

t=linspace(0, 10*pi, 501);

plot3(t.*sin(t), t.*cos(t), t, t.*sin(t), t.*cos(t), -t);




转载自:http://cs.nju.edu.cn/yangxc/dcc2003.files/matlab1/matlabsimple/index-1.htm

基本XYZ立体绘图命令

基本XYZ立体绘图命令  http://cs.nju.edu.cn/yangxc/dcc2003.files/matlab1/matlabsimple/index-1.htm 在科学目...
  • u013148738
  • u013148738
  • 2014年02月17日 17:06
  • 590

彩色模型,CIE XYZ,CIE RGB

学习DIP第N天 写在前面的废话:     今天学习彩色模型,常用的图像包括彩色图,灰度图,二值图,并且彩色图像->灰度图像->二值图像,为一个退化过程,即图像包含的信息逐步减少,根据冈萨雷斯第三版介...
  • TonyShengTan
  • TonyShengTan
  • 2014年12月20日 14:03
  • 6796

Matlab绘制三维曲线(plot3)和三维图形(mesh & surf)

首先,绘制三维曲线命令plot3,与plot命令类似,用法为 plot3命令只能绘制出三维的曲线,并不能绘制出三维曲面。我们可以用mesh 或者surf 命令来绘制三维曲面。 绘制三维曲面的原理是...
  • leo2351960
  • leo2351960
  • 2014年07月10日 13:43
  • 7276

surf三维画图[matlab]

【如果你画的图是全黑的,也可以看看这篇文章】 如果想看用mesh画三维图,可以看这里 surf 三维阴影曲面画图,常用的函数格式 surf(X,Y,Z) X,Y,Z都是矩阵值,规模相等 sur...
  • a19990412
  • a19990412
  • 2017年10月21日 10:27
  • 150

VC编程实现色彩空间RGB与XYZ相互转换

使 用过PhotoShop软件的朋友对色彩空间应该不会感到陌生,在PhotoShop中经常使用有RGB(红色、绿色、蓝色)、CMYK(青色、洋红、黄 色、黑色)、HSB(色相、饱和度、亮度)和Lab4...
  • tian_110
  • tian_110
  • 2015年05月08日 09:56
  • 1350

VC编程实现色彩空间XYZ与LAB相互转换

文章VC编程实现色彩空间RGB与XYZ相互转换已经介绍了RGB与XYZ色彩空间的转换算法以及实际的VC源代码,在上一篇文章已经提到,在PhotoShop中经常使用有RGB(红色、绿色、蓝色)、CMYK...
  • tian_110
  • tian_110
  • 2015年05月08日 09:55
  • 1121

Matlab--三维图形

对于二维矩阵Z,Z的列下标当作x坐标轴的自变量,行下标当作y坐标轴的自变量,Z作为色值。常用的三维图形 三维曲线图 三维网格图 三维曲面图:三维网格图将格子填充颜色 三维绘图流程 给出绘图的数据 –...
  • a970973835
  • a970973835
  • 2015年08月04日 20:42
  • 332

Matlab绘图-很详细,很全面

Matlab绘图强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。此外,Ma...
  • wangcj625
  • wangcj625
  • 2011年03月30日 09:31
  • 754837

【OpenCV】 RGB和CIEXYZ颜色空间的转换及相关优化。

在颜色感知的研究中,CIE 1931 XYZ 色彩空间(也叫做 CIE 1931 色彩空间)是其中一个最先采用数学方式来定义的色彩空间,它由国际照明委员会(CIE)于1931年创立。CIE XYZ 色...
  • u014395105
  • u014395105
  • 2014年06月05日 09:32
  • 1624

ArcGIS如何加载XYZ文本文件,进而生成Tin

一、XYZ文本文件格式 前三列分别为:经度、纬度、高程。后三个是RGB,可以忽略。 二、导入ArcMap 效果如下: 三、转换为Tin 效果如下:...
  • u013779141
  • u013779141
  • 2016年09月03日 10:51
  • 1977
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:基本XYZ立体绘图命令
举报原因:
原因补充:

(最多只允许输入30个字)