matlab绘图(三)绘制三维图像

article/2025/9/28 21:30:46

目录

一、绘制三维曲线

 二、绘制三维曲面

1.meshgrid函数

 2.mesh和surf函数


一、绘制三维曲线

1.最基本的绘制三维曲线的函数—plot3

plot3(x1,y1,z1, 选项 1,x2,y2,z2, 选项 2,…, xn,yn,zn , 选项 n)
其中,每一组 x y z 组成一组曲线的坐标参数,选项的定义和 plot 函数相同。当 x y z 是同维向量时,则 x y z 对应元素构成一条三维曲线;当 x y z 是同维矩阵时,则以 x y z 对应列元素绘制三维曲线,曲线条数等于矩阵列数。(plot详细用法可以参考我的博客:matlab绘图(一)

例1. 绘制三维曲线

 代码如下:

t=0:pi/10:10*pi;%取点
x=sin(t)+t.*cos(t);
y=cos(t)-t.*sin(t);
z=t;%计算x,y,z坐标
plot3(x,y,z,'Color','#4F4F2F','Linewidth',1.5);
axis([-30 30 -30 30 0 35])%设置坐标范围
title('Line in 3-D Space');%标题
xlabel('X');ylabel('Y');zlabel('Z');%x,y,z轴标签
grid on;%开启网格线

绘制图形如下:

 2.简易绘制三维曲线

对于参数形式表示的三维曲线,还可以用简易绘图函数ezplot3绘制。

调用格式:ezplot3(x,y,z,[a,b])

在区间ab绘制由参数方程= x (t)= y (t= z (t确定三维曲线。未指定区间时,默认在区间0 < t < 2pi绘制图形。

例2. 绘制三维曲线

syms t
x=sin(t)+t.*cos(t);
y=cos(t)-t.*sin(t);
z=t;%计算x,y,z坐标
ezplot3(x,y,z,[0,10*pi])

运行结果;

 二、绘制三维曲面

Matlab 中绘制三维曲面的基本方法: (按某种规则)在曲面上取 mxn 个网格点 Qij ,设它们的 x y z 坐标分别构成矩阵 X Y Z 则用 mesh(X,Y,Z) surf(X,Y,Z) 就可以画出该曲面。

1.meshgrid函数

对于函数曲面,即由 z=f( x,y ) a<x<b, c<y<d 表示的曲面,通常,先在 x 轴的区间 [ a b ] 内取 n 个点 ,设这些点的 x 坐标构成向量 x; 再在 y 轴的区间 [ c ] 内取 m 个点 ,设这些点的 y 坐标构成向量 y; 由各划分点分别作平行于两坐标轴的直线,则得到二维矩形区域 a<x<b, c<y<d 内的 mxn 个网格点 P ij 。这 mxn 个网格点的 x 坐标构成 mxn 的矩阵 X ,它们的 y 坐标构成 mxn 的矩阵 Y ,即第 ( i,j ) 个网格点 P ij 的坐标为 (X( i,j ),Y( i,j )) 。如何由向量 x, y 得到矩阵 X, YMatlab 专门提供了一个函数 meshgrid ,它的功能就是由 x,y 轴的划分点(向量 x,y )生成二维网格点 P ij 的坐标矩阵 X,Y
格式 [X,Y]= meshgrid ( x,y ); y=x 时,可以简化为 [X,Y]= meshgrid (x)
将二维矩形区域 a<x<b, c<y<d 内的 mxn 个网格点 P ij 通过 z=f( x,y ) 映射到曲面上,就得到曲面上的 mxn 个点 Q ij ,第 ( i,j ) 个点 Q ij 的坐标为 (X( i,j ),Y( i,j ), Z( i,j )), Q ij x,y 坐标与 P ij 的相同,因此,   Q ij x,y 坐标构成的矩阵分别是由 meshgrid 函数生成的X,Y. z 坐标构成的矩阵 Z 可以根据 Z( i,j )=f(X( i,j ),Y( i,j )) 利用点运算得到。 生成了曲面上 mxn 个网格点 Qij x,y,z 坐标矩阵 X Y Z 后,利用 mesh(X,Y,Z) surf(X,Y,Z) 等函数就可以把这张曲面画出来。

 2.mesh和surf函数

mesh函数用于绘制三维网格图,surf用于绘制三维曲面图,各线条之间的补面用颜色填充。以下介绍mesh的使用格式 (surfmesh的使用格式相同)。

mesh(X,Y,Z,C) : 其中,X,Y,Z 分别是由曲面上mxn个点的x坐标、y坐标和z坐标构成的mxn的矩阵,即: (X(i,j),Y(i,j),Z(i,j))是第(i,j)个网格点Pij的坐标, C(i,j)是Pij的颜色值。

mesh(X,Y,Z) 使用C=Z(颜色值正比于高度值)

mesh(x,y,Z)mesh(x,y,Z,C) :使用两个向量代替两个矩阵,要求: length(x)=n, length(y)=m ,[m,n]=size(Z),第(i,j)个网格点Pij的坐标为(x(j),y(i),Z(i,j))

mesh(Z):等价于mesh(1:n,1:m,Z)。

mesh(Z,C):等价于mesh(1:n,1:m,Z,C)。

例3.绘制函数z=x*exp(-x^2-y^2)[-2,2]x[-3,3]内的图形。下面两段代码效果是完全一样的。

%% figure1
figure(1)
x=-2:0.1:2;   y=-3:0.1:3; 
[X,Y]=meshgrid(x,y);
Z=X.*exp(-X.^2-Y.^2);
mesh(X,Y,Z);
title('figure 1')
colorbar
%% figure2
figure(2)
x=-2:0.1:2;m=size(x,2);
y=-3:0.1:3; n=size(y,2);
Z=zeros(n,m);
for i=1:mfor j=1:nZ(j,i)=x(i)*exp(-x(i)^2-y(j)^2);end
end
mesh(x,y,Z);
colorbar
title('figure 2')

 结果展示:

 曲面图绘制(只需将mesh改为surf即可),这十张图片体现不同的颜色映射风格,标题为对应的colormap的值。

代码如下:

%% figure 1
figure(1)
x=-2:0.1:2;   y=-3:0.1:3; 
[X,Y]=meshgrid(x,y);
Z=X.*exp(-X.^2-Y.^2);
surf(X,Y,Z);
title('hsv')
colormap('hsv')
shading flat
%% figure 2
figure(2)
x=-2:0.1:2;   y=-3:0.1:3; 
[X,Y]=meshgrid(x,y);
Z=X.*exp(-X.^2-Y.^2);
surf(X,Y,Z);
title('jet')
colormap('jet')
shading interp
%% figure 3
figure(3)
x=-2:0.1:2;   y=-3:0.1:3; 
[X,Y]=meshgrid(x,y);
Z=X.*exp(-X.^2-Y.^2);
surf(X,Y,Z);
title('copper')
colormap('copper')
shading interp
%% figure 4
figure(4)
x=-2:0.1:2;   y=-3:0.1:3; 
[X,Y]=meshgrid(x,y);
Z=X.*exp(-X.^2-Y.^2);
surf(X,Y,Z);
title('bone')
colormap('bone')
shading interp
%% figure 5
figure(5)
x=-2:0.1:2;   y=-3:0.1:3; 
[X,Y]=meshgrid(x,y);
Z=X.*exp(-X.^2-Y.^2);
surf(X,Y,Z);
title('flag')
colormap('flag')
shading interp
%% figure 6
figure(6)
x=-2:0.1:2;   y=-3:0.1:3; 
[X,Y]=meshgrid(x,y);
Z=X.*exp(-X.^2-Y.^2);
surf(X,Y,Z);
title('pink')
colormap('pink')
shading interp
%% figure 7
figure(7)
x=-2:0.1:2;   y=-3:0.1:3; 
[X,Y]=meshgrid(x,y);
Z=X.*exp(-X.^2-Y.^2);
surf(X,Y,Z);
title('spirng')
colormap('spring')
shading interp%% figure 8
figure(8)
x=-2:0.1:2;   y=-3:0.1:3; 
[X,Y]=meshgrid(x,y);
Z=X.*exp(-X.^2-Y.^2);
surf(X,Y,Z);
title('summer')
colormap('summer')
shading interp%% figure 9
figure(9)
x=-2:0.1:2;   y=-3:0.1:3; 
[X,Y]=meshgrid(x,y);
Z=X.*exp(-X.^2-Y.^2);
surf(X,Y,Z);
title('autumn')
colormap('autumn')
shading interp%% figure 10
figure(10)
x=-2:0.1:2;   y=-3:0.1:3; 
[X,Y]=meshgrid(x,y);
Z=X.*exp(-X.^2-Y.^2);
surf(X,Y,Z);
title('winter')
colormap('winter')
shading interp

图像结果展示:

 

 

 

 

 例4.绘制三维曲面图= sinx^2 + cosy^2x:[0,pi]y:[0,pi/2]

代码:

[x,y]=meshgrid(0:pi/100:pi, 0:pi/100:pi/2);
z=sin(x.^2)+cos(y.^2);
surf(x,y,z);
axis([0 4 0 1.8 -1.5 1.5]);
colormap('prism')
shading interp
colorbar

 运行结果:

这节先说这么多,下期将继续分享!

 

 

 

 

 

 


http://chatgpt.dhexx.cn/article/PhgA2AIK.shtml

相关文章

MATLAB三维绘图命令plot3入门

一、引言 Matlab软件提供了强大的可视化功能&#xff0c;既可以绘制平面图形&#xff0c;也可以绘制三维图形。绘制三维曲线图或者散点图可以使用命令plot3来实现。本文给出利用plot3绘制三维曲线图&#xff08;其实就是曲面&#xff09;或者散点图入门简介。 二、plot3基本用法…

使用MATLAB进行三维图像绘制

一、mesh 绘制无线网格网络图 其中x是n维向量&#xff0c;y是m维向量&#xff0c;z是m*n维向量 除了mesh函数meshc函数还能在xy平面上绘制曲面的等高线&#xff0c;meshz函数还能在xy平面上绘制曲面的底座 mesh(x,y,z) x1:0.1:10; y1:0.1:10; [x,y] menshgrid(x,y); zx.^2-…

股票APP UI界面设计

金融类型股票APP UI界面设计 实时动态查询 股票市场应用iOS UI套件。可以在多个屏幕上自定义您的交易环境。具有资产类别和细分市场的全套交易工具和功能。可以选择市场&#xff0c;工具&#xff0c;图表和交易组件来定制您自己的股票交易app。 模板以蓝色为主色调&#xff0…

Python - PyQT5开发UI界面 - 环境搭建

没有做过UI界面的都会把UI的制作想象的很神秘&#xff0c;我在刚开始的时候也是感觉异常神秘、很复杂、并且无从下手&#xff0c;不过在真正的做出来一个界面后&#xff0c;发现也并没有想象中的那么难&#xff0c;而且做出来可视化的东西所带来的成就感是超越代码本身的&#…

19个免费的UI界面设计工具及资源

原文&#xff1a;http://www.oschina.net/news/16602/19-free-ui-design-tools-toolkits-and-resources-for-designers 开源中国社区刚发布了一篇《21个免费的UI界面设计工具、资源及网站》&#xff0c;介绍了免费的Web UI、移动UI、线框工具等。作为该文章的续篇&#xff0c;本…

实验一 基本 UI 界面设计

实验一 基本 UI 界面设计 【实验目的】 1.熟悉 Android Studio 开发工具操作 2.熟悉 Android 基本 UI 开发&#xff0c;并进行 UI 基本设计 【实验内容】 实现如下 Android 应用&#xff0c;实现如下显示效果&#xff08;暂无控件点击事件效果&#xff09;&#xff1a; …

QT多个ui界面设计

这里以2个ui界面为例 新建一个设计关联ui背景设计 新建一个设计 在已有一个项目和ui的时候&#xff0c;右键Forms&#xff0c;在出来的的菜单中&#xff0c;点击Add New&#xff0c;弹出的界面选择Qt Designer From Class&#xff0c;如下。 单击choose后&#xff0c;弹出以下…

QT项目界面文件(.ui)设计和运行机制

后缀为“.ui”的文件是可视化设计的窗体的定义文件,如 widget.ui。双击项目文件目录树中的文件 widget.ui,会打开一个集成在 Qt Creator 中的 Qt Designer【ui设计器】 对窗体进行可视化设计 组件面板:窗口左侧是界面设计组件面板,分为多个组,如Layouts、Buttons、Displ…

Android studio - UI 界面设计(仿问卷星登陆注册界面)

1 先上效果图&#xff1a; 2 准备工作 建如下活动文件以及素材文件 3 代码实现 3.1 修改themes.xml、 themes.xml(night)文件 使自定义按钮组件起效果 在框出区域加 .Bridge 两个 xml 文件都要加**自定义按钮的应用**代码实现 btn_login.xml <?xml version"1.0&quo…

Element ui后台管理系统界面设计

自己学了一点Element ui前端框架&#xff0c;然后尝试设计了几个页面&#xff0c;仅供学习参考&#xff01;

5个UI界面设计网站,马住了

来了来了&#xff01;推荐几个超好用的设计素材网&#xff0c;还是免费的。 1、爱给网 爱给网_音效配乐_3D模型_视频素材_游戏素材_免费下载 这里面有8W多张UI设计素材&#xff0c;全部都分好类型&#xff0c;找素材特别方便&#xff0c;重点是能免费下载。 2、菜鸟图库 UI…

燕山大学——软件用户界面设计(五)UI架构

界面设计中的“设计”与“实现”&#xff0c;本节的UI架构属于“实现”部分。 1.GUI设计模式&#xff08;Design patterns for GUIs&#xff09; &#xff08;1&#xff09;视图树&#xff08;View tree&#xff09; ①定义&#xff1a;GUI结构是一个视图树。视图是一个对象&…

tkinter 界面设计工具

先推荐一个非tkinter的GUI框架 Python Eel 。是Electron的python版 vb6 https://gitcode.net/mirrors/cdhigh/Visual-Tkinter-for-Python (https://github.com/cdhigh/tkinter-designer ) Figma Tkinter https://blog.csdn.net/qq_41854273/article/details/118310241 visua…

Linux Qt Designer UI界面设计

Linux Qt Designer UI界面设计 设计步骤 设计步骤 1.首先在Qt Designer上绘制好自己的图像化界面。 2.编写代码&#xff0c;将控件和功能匹配起来即可&#xff0c;代码如下。注意换到不同主机时&#xff0c;应该将文件配置到相同文件下下&#xff0c;或者修改相应的路径。 f…

科技感ui界面 html,未来科技感UI界面设计欣赏

来源:uicn 作者:冷云 FUI意思可以是Fantasy User Interface 幻想使用者界面&#xff0c; Fictional User Interfaces 科幻使用者界面&#xff0c;Fake User Interfaces 虚构使用者介面&#xff0c;或是Futuristic User Interfaces 未來使用者界面&#xff0c;不管那個"F…

android studio静态界面设计,2.3 使用Android Studio 简单设计UI界面

首先 创建一个新的项目找到app 文件目录下的layout的 activity_main.xml 因为Android Studio 是可视化的,所有操作都可以在图形界面进行。 该res 界面当中 drawable 可以将需要的图片导入该目录当中进行调用 layout的目录是布局界面 values 当中存有可以更改界面的颜色 字符串…

UI设计开发工具介绍

UI设计开发工具介绍 1 UI设计概念2 UI延申3 工具3.1 文档3.2 信息架构3.3 原型设计3.4 图形处理 4 网站参考 1 UI设计概念 UI设计&#xff08;或称界面设计&#xff09;是指对软件的人机交互、操作逻辑、界面美观的整体设计。UI设计分为实体UI和虚拟UI&#xff0c;互联网常用的…

Python QT5设计UI界面教程

简介&#xff1a;PyQT5开发常用知识&#xff0c;零基础上手&#xff0c;需配合我之前写的博文&#xff0c;配置好QT设计工具和ui文件转py文件的工具。博文为&#xff1a;使用Python PyQt5实现一个简单的图像识别软件&#xff1b;页面效果如下&#xff1a; 1.设计菜单栏 Contai…

22个免费的UI界面设计工具、资源及网站

1.原型界面制作工具Lumzy 官方地址&#xff1a;http://www.lumzy.com/ Lumzy是一个网站应用和原型界面制作工具。使用Lumzy&#xff0c;您可以轻松创建UI模型并即时发送到客户电脑中。 Lumzy还具有团队协作编辑工具。 2.在线工具Mockingbird 官方地址&#xff1a;https://gomo…

ui界面设计工具有哪些

大家都知道ui设计的基础就是各种软件&#xff0c;主要的软件有PS、AI、AE、APR这4个&#xff0c;但经过反复论证&#xff0c;在ui设计师从业时间里有80%以上都是跟ps打交道&#xff0c;由前到后的重要性顺序就是按照上面所说的&#xff0c;有的时候也会用到XMind、Cutterman、M…