使用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函数构建三维立方体的几种方法相关推荐

  1. MATLAB编程(4)——MATLAB绘制二维高斯函数的三维图

    本篇博文记录使用MATLAB绘制二维高斯函数的三维图. 用到的MATLAB函数--mesh()(绘制三维线框图)和surf()(绘制三维表面图). MATLAB命令窗口输入>> doc 函 ...

  2. matlab 图像转视频教程,Matlab制作视频并转换成gif动态图的两种方法

    一.第一个方法比较简单,就是使用movie(f)直接取生成AVI视频文件. %% f(t)-->f(4*t+12) 并且验证%% function Signal_change() tic%记录程 ...

  3. bash shell函数中返回任意值的四种方法

    From: http://www.jbxue.com/article/11322.html 本文介绍下,在bash shell编程中,从函数中返回任意值的几种方法,有需要的朋友参考下. 在bash中, ...

  4. 【 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( ...

  5. matlab中单独存图_Matlab中图片保存的四种方法

    Matlab 中图片保存的四种方法 matlab 的绘图和可视化能力是不用多说的, 可以说在业内是家喻户晓的. Matlab 提供了丰富 的绘图函数,比如 ez** 系类的简易绘图函数, surf . ...

  6. matlab 仿真光学实验报告,光学实验数值仿真的三种方法及MATLAB实现

    光学实验数值仿真的三种方法及 MATLAB实现 5 结 论 (1)数值模拟结果表明三种方法都能对光学 实验现象进行正确地仿 真,因此在课 堂教学 中适 当应用这种仿真模拟 ,将光学实验 中复杂的数学 ...

  7. 在matlab中怎样安装dh包,建立DH模型的三种方法以及区别

    目录 1.建立DH模型的三种方法 2.SDH和MDH的应用范围 3. SDH和MDH的区别 0.SDH是ZX类变换,MDH是XZ类变换 1.SDH和MDH都是强调把坐标系建立在连杆上 2.举个例子说明 ...

  8. 构建复杂网络的几种方法(邻接矩阵,邻接表,十字链表,邻接多重表)

    目录 1. 数据结构 线性结构 非线性结构 2. 复杂网络的数组表示 3. 复杂网络的邻接表表示 4. 邻接矩阵与邻接表的比较 5. 复杂网络的其他表示方法 逆邻接表 十字链表 邻接多重表 前向星 链 ...

  9. js中对函数设置默认参数值的3种方法

    在javascript中如何为函数设置默认参数值,下面提供几种方法供大家参考. 第一种方法: function example(a,b){ var a = arguments[0] ? argumen ...

  10. C++静态成员函数访问非静态成员的几种方法

    大家都知道C++中类的成员函数默认都提供了this指针,在非静态成员函数中当你调用函数的时候,编译器都会"自动"帮你把这个this指针加到函数形参里去.当然在C++灵活性下面,类还 ...

最新文章

  1. Spring REST
  2. 【C/C++13】天气APP:数据挖掘/HTTP协议/非结构化数据存储(filetoblob.cpp),数据管理/监控告警(hsmtable.cpp,tbspaceinfo.cpp)
  3. 弱引用什么时候被回收_Java基础 强引用、弱引用、软引用、虚引用
  4. 充分发挥计算机在教学中的辅助作,充分发挥计算机在教学中的辅助作用
  5. C#代码与javaScript函数的相互调用(转)
  6. 微信小程序教程笔记2
  7. Python绘图新冠病毒COVID-19
  8. 谁说菜鸟不会数据分析
  9. 微波天线及各种天线概念解析
  10. 由WPS 2005想到的
  11. mysql中key的用法_数据库中KEY的用法
  12. 启发函数 (Heuristic Function) —Octile
  13. 常用cursor光标说明
  14. 出现无法解析的外部符号 LZ4_decompress_safe等问题
  15. 2020-12-16 今日学习Date类
  16. LaTex使用技巧11:解决段落首行不缩进
  17. 深度解析物联网和大数据分析的渊源和应用
  18. C语言 第一节 简单的C语言
  19. cenntos系统配置dns地址_localhost
  20. mysql 求中位数、四分位数

热门文章

  1. Floyd最短路径算法
  2. 淼淼Kruskal算法
  3. 短信验证码(SMS verification)是什么
  4. 数据结构与算法:排序(分类)
  5. DBeaver 连接 人大金仓以及其他国产数据库
  6. 嵌入式工程师面试题集-MCU_STM32
  7. 合唱队形java_动态规划之合唱队形问题(最长递增子序列变形)
  8. 关闭计算机休眠文件,电脑垃圾清理关闭休眠文件夹hiberfil.sys
  9. 雷霆战机服务器维护公告,雷霆战机停服公告 4月11日服务器维护
  10. 旭日X3派,从零到TogetherRos的快速体验