matlab 三维立方体,使用matlab函数构建三维立方体的几种方法
使用matlab函数构建三维立方体的几种方法
matlab是一种功能强大的科学运算软件,其基于矩阵的运算单位和和演算纸式的编程方式,配合强大的各类工具箱函数,极大简化了编程难度而又不失应用的灵活性,使matlab非常适合进行探索性的研究工作。matlab提供了丰富的绘图函数,能够快速高效地画出各类图形,在通用编程软件中功能领先。
在matlab中,我们可以使用多种思路实现三维形体的构建,本文以构建一个三维立方体为例详细介绍matlab的用法,充分说明matlab的编程特点与构想方法,以供参考。
1、 三维形体的点阵表示方法。
一个三维形体可以看成由无数个散点有规律集合而成。利用scatte3r()三维散点绘图函数绘制足够多的点,就可以实现三维空间的形体表示。如图1. 使用三重循环,用1000点实现一个10*10*10的立方体。此功能也可用plot3()实现.
for i=0:10;
for j=0:10;
for k=0:10;
scatter3(i,j,k); hold on;
end
end
end
使用点阵描绘三维形体适合于比较简单有规律的目标,如果点数过多速度将较慢,一般较少应用。但是在由已知模型向未知模型转化的情况下,该方法十分有效。可以直接利用点对点的对应关系作出未知三维形体的空间结构。
2. 三维形体的线阵表示方法
三维形体可以看成由多个截面集合而成,而面可以由线集合。本例中使用plot3绘制线段,组合成面,循环绘制多个面,就可以实现三维空间的形体表示。如图2. 使用三重循环,用100个面,每个面100条线,组成了一个立方体。
x=linspace(0,1);
y=linspace(0,1);
[X,Y]=meshgrid(x,y);
for i=1:100
Z=linspace(i,i);
plot3(X,Y,Z);hold on
end
此法作出立方体三维效果好,速度较快,接近实体。如果机器速度合适,可以看出立方体绘制时从下往上的动态效果。
3、三维形体的外围面表示
直接绘制一个形体的所以外围面,也可以直接地表达该形体的立体效果。如图3,用不同颜色直接画出立方体的6个面,也可以得到逼真的三维效果。
x=linspace(0,1);
y=linspace(0,1);
%[X,Y]=meshgrid(x,y);
for i=0:1:1
Z=linspace(i,i);
plot3(X,Y,Z,'r');hold on;
plot3(Y,Z,X,'g');hold on;
plot3(Z,X,Y,'b');hold on;
end
对形体的内部各点没有取值要求的情况下,直接绘面效率很高。
4、使用边缘线表示三维形体。
这是一种常见的方法,利用透视关系,得到的图形也具有很好的效果。而且绘制速度最快。
X=zeros(8,3);
X([5:8,11,12,15,16,18,20,22,24])=1;
d=[1 2 4 3 1 5 6 8 7 5 6 2 4 8 7 3];
plot3(X(d,1),X(d,2),X(d,3));
view(3); rotate3d;
5、fill3函数作面
x=[0 1 1 0 0 0;1 1 0 0 1 1;1 1 0 0 1 1;0 1 1 0 0 0];
y=[0 0 1 0 0 0;0 1 1 1 0 0;0 1 1 1 1 1;0 0 1 0 1 1];
z=[0 0 0 0 0 1;0 0 0 0 0 1;1 1 1 1 0 1;1 1 1 1 0 1];
fill3(x,y,z, 'y')
fill3作出的多边形面,平滑完整,速度快,但对于带曲面的形体不适用。而且对于复杂的多面体,要一一找出顶点坐标也非易事。
6、patch函数作多面体
v=[0 0 0;0 50 0;30 50 0;30 0 0;0 0 40;0 50 40;30 50 40;30 0 40];
f= [1 2 3 4;2 6 7 3;4 3 7 8;1 5 8 4;1 2 6 5;5 6 7 8];
patch('Faces',f,'Vertices',v,'FaceColor','b');
view(30,30)
axis equal
7、mesh,surf函数作面
x=linspace(0,1);
y=linspace(0,1);
Z1=ones(100,100);
Z2=zeros(100,100);
mesh(X,Y,Z1);hold on;
mesh (X,Y,Z2);hold on;
mesh (Y,Z1,X);hold on;
mesh (Y,Z2,X);hold on;
mesh (Z1,Y,X);hold on;
mesh (Z2,Y,X);
mesh网线图:线条有颜色,空挡是无色的,surf曲面图:线条是黑色的,空挡有颜色
matlab 三维立方体,使用matlab函数构建三维立方体的几种方法相关推荐
- MATLAB编程(4)——MATLAB绘制二维高斯函数的三维图
本篇博文记录使用MATLAB绘制二维高斯函数的三维图. 用到的MATLAB函数--mesh()(绘制三维线框图)和surf()(绘制三维表面图). MATLAB命令窗口输入>> doc 函 ...
- matlab 图像转视频教程,Matlab制作视频并转换成gif动态图的两种方法
一.第一个方法比较简单,就是使用movie(f)直接取生成AVI视频文件. %% f(t)-->f(4*t+12) 并且验证%% function Signal_change() tic%记录程 ...
- bash shell函数中返回任意值的四种方法
From: http://www.jbxue.com/article/11322.html 本文介绍下,在bash shell编程中,从函数中返回任意值的几种方法,有需要的朋友参考下. 在bash中, ...
- 【 MATLAB 】使用 MATLAB 求由差分方程表示的滤波器的响应的两种方法
例题: 一个3阶低通滤波器由下面差分方程描述: y(n) = 0.0181 x(n) + 0.0543 x(n-1) + 0.0543 x(n-2) + 0.0181 x(n-3) + 1.76 y( ...
- matlab中单独存图_Matlab中图片保存的四种方法
Matlab 中图片保存的四种方法 matlab 的绘图和可视化能力是不用多说的, 可以说在业内是家喻户晓的. Matlab 提供了丰富 的绘图函数,比如 ez** 系类的简易绘图函数, surf . ...
- matlab 仿真光学实验报告,光学实验数值仿真的三种方法及MATLAB实现
光学实验数值仿真的三种方法及 MATLAB实现 5 结 论 (1)数值模拟结果表明三种方法都能对光学 实验现象进行正确地仿 真,因此在课 堂教学 中适 当应用这种仿真模拟 ,将光学实验 中复杂的数学 ...
- 在matlab中怎样安装dh包,建立DH模型的三种方法以及区别
目录 1.建立DH模型的三种方法 2.SDH和MDH的应用范围 3. SDH和MDH的区别 0.SDH是ZX类变换,MDH是XZ类变换 1.SDH和MDH都是强调把坐标系建立在连杆上 2.举个例子说明 ...
- 构建复杂网络的几种方法(邻接矩阵,邻接表,十字链表,邻接多重表)
目录 1. 数据结构 线性结构 非线性结构 2. 复杂网络的数组表示 3. 复杂网络的邻接表表示 4. 邻接矩阵与邻接表的比较 5. 复杂网络的其他表示方法 逆邻接表 十字链表 邻接多重表 前向星 链 ...
- js中对函数设置默认参数值的3种方法
在javascript中如何为函数设置默认参数值,下面提供几种方法供大家参考. 第一种方法: function example(a,b){ var a = arguments[0] ? argumen ...
- C++静态成员函数访问非静态成员的几种方法
大家都知道C++中类的成员函数默认都提供了this指针,在非静态成员函数中当你调用函数的时候,编译器都会"自动"帮你把这个this指针加到函数形参里去.当然在C++灵活性下面,类还 ...
最新文章
- Spring REST
- 【C/C++13】天气APP:数据挖掘/HTTP协议/非结构化数据存储(filetoblob.cpp),数据管理/监控告警(hsmtable.cpp,tbspaceinfo.cpp)
- 弱引用什么时候被回收_Java基础 强引用、弱引用、软引用、虚引用
- 充分发挥计算机在教学中的辅助作,充分发挥计算机在教学中的辅助作用
- C#代码与javaScript函数的相互调用(转)
- 微信小程序教程笔记2
- Python绘图新冠病毒COVID-19
- 谁说菜鸟不会数据分析
- 微波天线及各种天线概念解析
- 由WPS 2005想到的
- mysql中key的用法_数据库中KEY的用法
- 启发函数 (Heuristic Function) —Octile
- 常用cursor光标说明
- 出现无法解析的外部符号 LZ4_decompress_safe等问题
- 2020-12-16 今日学习Date类
- LaTex使用技巧11:解决段落首行不缩进
- 深度解析物联网和大数据分析的渊源和应用
- C语言 第一节 简单的C语言
- cenntos系统配置dns地址_localhost
- mysql 求中位数、四分位数