MATLAB----绘制三维曲面

news/2024/11/18 8:22:43/

本篇参考于:中国大学慕课科学计算与MATLAB统计,专题四“4.5三维曲面”

绘制格网meshgrid

格网和曲面surf&mesh

其他形式surfc,surfl&meshc,meshz

标准三维曲面函数sphere&cylinder

三个方程两个变量使用fsurf和fmesh

1.meshgrid函数生成网格

eg.绘制空间曲线

x=2:6
y=(3:8)'
[X,Y]=meshgrid(x,y)
Z=randn(size(X))
plot3(X,Y,Z)

2.mesh函数&surf函数

mesh函数用于绘制三维网格图 

mesh(x,y,z,c)

surf函数用于绘制三维曲面图

surf(x,y,z,c)

一般情况下,默认x,y,z为同型矩阵。其中x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的曲面的颜色。c省略时,matlab认为c等于z。

 

t=-2:0.2:2
[X,Y]=meshgrid(t)
Z=X.*exp(-X.^2-Y.^2)
subplot(1,3,1)
mesh(X,Y,Z)
subplot(1,3,2)
surf(X,Y,Z)
subplot(1,3,3)
plot3(X,Y,Z)
grid on

 

3.其他形式的mesh函数

3.1 仅带z参数的mesh&surf函数

当x,y省略时,即mesh(z,c)和surf(z,c),把z矩阵的第一维坐标当作y轴坐标,把z矩阵的第二维坐标当作x轴坐标。如下例子

t=1:5
z=[0.5*t;2*t;3*t]
mesh(z)

 

由图可知,x是z的列下标,y是z的行下标

3.2 带等高线的meshc函数和带底座的meshz函数&

带等高线的surfc函数和带光照效果的surfl函数

 

[X,Y]=meshgrid(0:0.1:2,1:0.1:3)
Z=(X-1).^2+(Y-2).^2-1
subplot(2,2,1)
meshc(X,Y,Z);title( '{\bf meshc(x,y,z)}')
subplot(2,2,2)
meshz(X,Y,Z);title('{\bf meshz(x,y,z)}')
subplot(2,2,3)
surfc(X,Y,Z);title('{\bf surfc(x,y,z)}')
subplot(2,2,4)
surfl(X,Y,Z);title('{\bf surfl(x,y,z)}')

由图可知,子图1和3有等高线,子图2有底座,子图4有光照效果

4.标准三维曲面

绘制三维球面sphere和柱面cylinder

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

sphere函数产生三个n+1阶的方阵,采用这三个矩阵,可以绘制出圆心位于原点和半径为1 的单位球体,参数n决定了球面的光滑程度,默认值为20

[x,y,z]=cylinder(R,n) 

R是一个向量,存放柱面各个等间隔间距上的半径,n表示在圆柱体上有n个间隔点,默认有20个间隔点。R是标量时,则绘制圆柱体

subplot(1,3,1)
[x,y,z]=cylinder
surf(x,y,z)
subplot(1,3,2)
t=linspace(0,2*pi,40)
[x,y,z]=cylinder(2+cos(t),30)
surf(x,y,z)
subplot(1,3,3)
[x,y,z]=cylinder(0:0.2:2,30)
surf(x,y,z)

 

5.fsurf和fmesh函数

如果图形用三个参数方程表示,参数方程有两个变量

fsurf(fx,fy,fz,uvlims)

fmesh(fx,fy,fz,uvlims)

其中,fx,fy,fz代表定义曲面x,y,z坐标的函数通常采用句柄的形式,uvlims为fx,fy,fz自变量的取值范围,用[umin,umax,vmin,vmax]表示,默认为[-5,5,-5,5]

 x=@(u,v) u.*sin(v)
y=@(u,v) -u.*cos(v)
z=@(u,v) v %(u,v)!!
fsurf(x,y,z,[-5,5,-2,2])
hold on
fmesh(x,y,z,[-5,5,-2,2])
hold off

 

 


http://www.ppmy.cn/news/431930.html

相关文章

平面曲线曲率的计算-MATLAB

定义 曲率:曲线上某个点的切线方向角对弧长的变化率,表明曲线在该点的弯曲程度。设有光滑曲线 C C C(即曲线 C C C 二阶可导),在曲线 C C C 上选定一点 M M M 作为度量的基点,点 M M M 对应于弧长 s…

特征点Features2D类介绍

文章目录 Features2D类介绍1. cv::AgastFeatureDetector2. cv::AKAZE3. cv::BRISK4. cv::FastFeatureDetector5. cv::GFTTDetector6. cv::KAZE7. cv::MSER8. cv::SimpleBlobDetector9. cv::StarDetector10. cv::SIFT11. cv::SURF12. cv::FastFeatureDetector13. cv::AgastFeatu…

主曲率,主方向,高斯曲率与平均曲率公式与matlab代码

主曲率,主方向,高斯曲率与平均曲率公式与matlab代码 先上结论Weingarten变换最后是代码啦 先上结论 Weingarten变换 最后是代码啦 在离散情况下,数据表示为X,Y,Z(X,Y由meshgrid产生,Z是曲面的值&#xff0…

空间曲面构造及其方程

1.旋转单叶双曲面 旋转单叶双曲面是直纹面,它的构造有多种方式,先看其中一种: 设直线的参数方程为: 则通过geogebra命令 bCurve(1,t,2t,t,-5,5) 绘制出的直线如图所示,它将作为旋转单叶双曲面的"直纹&quo…

MATLAB画旋转曲面1

给定曲线方程,求参数方程并画出旋转曲面 一、定义二、平面曲线绕 x x x轴旋转例1:曲线 x z 2 xz^2 xz2, ( 0 ≤ z ≤ 10 ) (0\le z \le 10) (0≤z≤10),绕 x x x轴旋转一周所得到的图形。例2:曲线 z x 2 zx^2 zx2, ( − 10 ≤ x ≤ 10 ) (-…

Matlab之三维曲面的绘制

1、平面网格数据的生成 在绘制曲面之前,需要先将数据点生成平面数据网格,其生成的数据是网格的坐标。 生成的方式有两种: (1)利用矩阵运算生成 代码示例: x 2:6; y (3:8); X ones(size(y))*x; Y y…

【matlab】绘制曲面图

一位老哥让笔者画一个下面这种图,笔者当然要拿出喜欢的Matlab啦。 1. meshgrid 在进行 3D 绘图操作时,涉及到x、y、z三组数据,而x、y这两组数据可以看做是在xoy平面内对坐标进行采样得到的坐标对(x,y)。例如,要在 3&l…

企业数字化升级要花多少钱?

摘要 随着科技的不断发展和企业竞争的日益激烈,数字化升级已成为企业保持竞争力和实现可持续发展的关键要素。然而,企业数字化升级所需的成本因各种因素而异,本文将介绍一些影响成本的主要因素,并提供一些常见的数字化升级投资范例…