画一个可透视的椭球

figure

a = 15;

b = 10;

c = 5;

k = 5;

n = 2^k-1;

theta = pi*(-n:2:n)/n;

phi = (pi/2)*(-n:2:n)'/n;

X = a*cos(phi)*cos(theta);

Y = b*cos(phi)*sin(theta);

Z = c*sin(phi)*ones(size(theta));

surf(X,Y,Z,'FaceColor','interp',...

'EdgeColor','none',...

'FaceLighting','phong')

axis tight

camlight left

alpha(.33) % 产生透视效果

这是在7.1.上画的图:

....................

建立空间等高线[X,Y] = meshgrid([-2:.25:2]);

Z = X.*exp(-X.^2-Y.^2);

contour3(X,Y,Z,30)

h = findobj('Type','patch');

set(h,'LineWidth',2)

title(' 空间等高线 ')

..................

§4.2 三维作图§4.2.1 mesh(Z)语句

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

显示两变量的函数Z=f(x,y),第一步需产生特定的行和列的x-y矩阵.然后计算函数在各网格点上的值.最后用mesh函数输出.

下面我们绘制sin(r)/r函数的图形.建立图形用以下方法:

x=-8:.5:8;

y=x';

x=ones(size(y))*x;

y=y*ones(size(y))';

R=sqrt(x.^2+y.^2)+eps;

z=sin(R)./R;

mesh(z) %% 试运行mesh(x,y,z),看看与mesh(z)有什么不同之处?

各语句的意义是:首先建立行向量x,列向量y;然后按向量的长度建立1-矩阵;用向量乘以产生的1-矩阵,生成网格矩阵,它们的值对应于x-y坐标平面;接下来计算各网格点的半径;最后计算函数值矩阵Z.用mesh函数即可以得到图形.

图4.2.1三维消隐图

第一条语句x的赋值为定义域,在其上估计函数;第三条语句建立一个重复行的x矩阵,第四条语句产生y的响应,第五条语句产生矩阵R(其元素为各网格点到原点的距离).用mesh方法结果如上.

另外,上述命令系列中的前4行可用以下一条命令替代:

[x, y]=meshgrid(-8:0.5:8)

§4.2.2与mesh相关的几个函数

(1)

meshc与函数mesh的调用方式相同,只是该函数在mesh的基础上又增加了绘制相应等高线的功能.下面来看一个meshc的例子:

[x,y]=meshgrid([-4:.5:4]);

z=sqrt(x.^2+y.^2);

meshc(z) %% 试运行meshc(x,y,z),看看与meshc(z)有什么不同之处?

我们可以得到图形:

图4.2.2.1 meshc图

地面上的圆圈就是上面图形的等高线.

(2)函数meshz与mesh的调用方式也相同,不同的是该函数在mesh函数的作用之上增加了屏蔽作用,即增加了边界面屏蔽.例如:

[x,y]=meshgrid([-4:.5:4]);

z=sqrt(x.^2+y.^2);

meshz(z) %% 试运行meshz(x,y,z),看看与meshz(z)有什么不同之处?

我们得到图形:

图4.2.2.2 meshz图

§4.2.3其它的几个三维绘图函数

(1)在Matlab中有一个专门绘制圆球体的函数sphere,其调用格式如下:

[x,y,z]=sphere(n)

此函数生成三个(n+1)×(n+1)阶的矩阵,再利用函数surf(x,y,z)可生成单位球面.

[x,y,z]=sphere 此形式使用了默认值n=20

sphere(n) 只绘制球面图,不返回值.

运行下面程序:

sphere(30);

axis square;

我们得到球体图形:

图4.2.3.1 球面图

若只输入sphere画图,则是默认了n=20的情况.

(2) surf函数也是Matlab中常用的三维绘图函数.其调用格式如下:

surf(x,y,z,c)

输入参数的设置与mesh相同,不同的是mesh函数绘制的是一网格图,而surf绘制的是着色的三维表面.Matlab语言对表面进行着色的方法是,在得到相应网格后,对每一网格依据该网格所代表的节点的色值(由变量c控制),来定义这一网格的颜色.若不输入c,则默认为c=z.

我们看下面的例子:

%绘制地球表面的气温分布示意图.

[a,b,c]=sphere(40);

t=abs(c); %求绝对值

surf(a,b,c,t);

axis equal

colormap('hot')

我们可以得到图形如下:

图4.2.3.2 等温线示意图

§4.2.4图形的控制与修饰

(1)坐标轴的控制函数axis,调用格式如下:

axis([xmin,xmax,ymin,ymax,zmin,zmax])

用此命令可以控制坐标轴的范围.

与axis相关的几条常用命令还有:

axis auto 自动模式,使得图形的坐标范围满足图中一切图元素

axis equal 严格控制各坐标的分度使其相等

axis square 使绘图区为正方形

axis on 恢复对坐标轴的一切设置

axis off 取消对坐标轴的一切设置

axis manual 以当前的坐标限制图形的绘制

(2)grid on 在图形中绘制坐标网格.

grid off 取消坐标网格.

(3)xlabel, ylabel, zlabel分别为x轴, y轴, z轴添加标注.title为图形添加标题.

以上函数的调用格式大同小异,我们以xlabel为例进行介绍:

xlabel('标注文本','属性1','属性值1','属性2','属性值2',…)

这里的属性是标注文本的属性,包括字体大小、字体名、字体粗细等.

例如:

[x, y]=meshgrid(-4:.2:4);

R=sqrt(x.^2+y.^2);

z=-cos(R);

mesh(x,y,z)

xlabel('x\in[-4,4]','fontweight','bold');

ylabel('y\in[-4,4]','fontweight','bold');

zlabel('z=-cos(sqrt(x^2+y^2))','fontweight','bold');

title('旋转曲面','fontsize',15,'fontweight','bold','fontname','隶书');

图4.2.4.1添加标注

....................

......................

matlab绘三维椭球面_Matlab 三维作图相关推荐

  1. matlab绘三维椭球面_Matlab绘制曲面

    本文整理了一些三维绘图的内容,代码都比较简单 1.surf.surfc.surfl之后可以试试shading interp 2.绘制隐函数 3.参数方程绘制曲面 4.三维到平面:等高线+引力线 5.快 ...

  2. matlab绘三维椭球面_运用Matlab讨论椭球面性质

    运用 Matlab 讨论椭球面性质 杨 慧, 王新年 [摘 要] [ 摘 要 ] 椭球面是测绘学 \ 物理学中常用的曲面之一 . 本文通过运用 Matlab 强大的绘图功能和设计技巧 , 用四种方法绘 ...

  3. MATLAB学习笔记——二维和三维绘图

    MATLAB学习笔记--二维和三维绘图 近期练习matlab的二维和三维绘图,整理一下,以防忘记. 文章目录 MATLAB学习笔记--二维和三维绘图 一.二维绘图 1.plot命令 2.fplot 命 ...

  4. matlab两曲面的交线,MATLAB里面求两相交三维曲面交线的画法

    问题描述: MATLAB里面求两相交三维曲面交线的画法 原题是这样的,将z1=x.^2+2*y.^2与z2=a的曲面图形和交线图形分别画在两张图上(用subplot) 我的程序是这样的: [x,y]= ...

  5. matlab 三维立体图,利用matlab将三维数据画成三维立体图

    利用matlab将三维数据画成三维立体图 发布时间:2018-08-20 14:13, 浏览次数:1367 , 标签: matlab 首先先分析对象.将数据利用matlab画出图,最开始是导入数据,然 ...

  6. MATLAB scatter 画二维/三维散点图时 用颜色表示数值大小 colorbar

    MATLAB scatter 画二维/三维散点图时 用颜色表示数值大小 自己在编程的时候,没有在网上找到很好的解释. 所以把我的代码贴出来,给遇到同样问题的盆友一个参考~ 带注释.看不懂的地方可以给我 ...

  7. 六自由度方程组 matlab,采用Matlab的六自由度机器人三维运动学仿真_李庆.pdf

    采用Matlab的六自由度机器人三维运动学仿真_李庆 第 ( ) 3 卷 第 期 华侨大学学报 自然科学版 7 3 Vol.37 No.3 年 月 ( ) 2016 5 JournalofHua ia ...

  8. MATLAB三维绘图(一)三维基础绘图

    MATLAB三维绘图(一)三维基础绘图   三维图就是在二维图的基础上多增加了一维,实质上在MATLAB中绘制的都是三维图.简单看一下二维图是怎样变成三维图的,使用plot3函数可以很清楚的看出来.示 ...

  9. matlab 进阶绘图:图片保存,极坐标绘图,函数绘图,等高线地图,三维条形图,三维散点图,gif 绘图

    本文所包含的绘图方式: 极坐标绘图,函数绘图,等高线地图,三维条形图,三维散点图,gif 绘图 1 常用命令 hold on; % 持续绘图 hold off; 1.1 标注 xlabel(''); ...

最新文章

  1. 剑指offer:反转链表 python实现
  2. python爬取歌曲评论并进行数据可视化
  3. C语言实现辗转相除法计算两数最大公约数
  4. ResNet及其变种的结构梳理、有效性分析与代码解读(PyTorch)
  5. 隐马尔可夫模型(HMM)简介
  6. 背水一战 Windows 10 (60) - 控件(媒体类): Pointer 涂鸦板, InkCanvas 涂鸦板
  7. UniWebView3.8
  8. 关于阿克曼函数(akermann)非递归算法的一点见解 c++
  9. JS设置cookie,获取cookie
  10. 技能提升----直流有刷电机控制方案之经典
  11. php jquery制作抖音,抖音制作优质脚本的方法在这里
  12. php混淆解密,php混淆加密解密实战
  13. MySQL倒计时查询剩余时间xx年xx月xx天
  14. 阿里云acp报名了可以退吗?阿里云acp认证所需具备的知识
  15. 【读书笔记】《杜月笙全传》读书笔记
  16. MPLS V*N OptionC1 RR
  17. 统计学、深度学习、机器学习、数据挖掘
  18. 微信小程序获取rich-text(富文本)渲染内容高度,rich-text(富文本)里img 样式设置
  19. 视频压缩技术及安卓中用法
  20. 网络安全与渗透:kali系统,namp端口扫描(一)此生无悔入华夏,男儿何不带吴钩

热门文章

  1. 重塑磁盘架构 引领技术拓展
  2. 软件经验|玩转无人机全景照片——获取、制作及展示
  3. 纯CSS3使用vw和vh视口单位实现自适应
  4. SAP中加工商分包库存参与MRP运算吗?
  5. 新总账功能(二)-新总账下的现金流量表实现
  6. STM32-ADC模拟数字转换器
  7. VC++界面编程之--自定义CEdit(编辑框)皮肤
  8. boost安装中的坑(找不到vswhere)
  9. windows镜像_苹果电脑用vMware安装Windows系统
  10. 对话Imagination高级工程师:我们为什么重视功能安全