MATLAB三维网格绘制艺术:构建立体视觉的新方法


1.输入

基于MATLAB的三维网格绘制必备的输入有:

1)节点坐标信息;

2)网格信息。

基于以上两点再借助patch函数即可完成网格绘制,通过以下例子做具体说明。



2. 四面体网格绘制

考虑如下四面体:


四面体.png基于MATLAB的三维网格绘制的图2

给出如下程序,注意patch函数的输入:

——————————————————————————————————

clc

clear

%%%输入%%%%

points=[0,1,0.5;

       0,0,1;

       -1,0,0;

       1,0,0];%节点信息

mesh=[1,2,3,4];%网格信息

%%%绘图%%%%

for i=1:length(mesh(:,1))%循环每个网格

   %四面体单元结点坐标

   vertices_matrix = [points(mesh(i,:),1),points(mesh(i,:),2),points(mesh(i,:),3)];

   %四面体单元结点顺序

   faces_matrix=[1 2 3; 2 3 4;3 4 1;4 1 2];%给出每个面节点序号,顺时针或者逆时针排列

h=patch('vertices', vertices_matrix,'faces',faces_matrix,'facecolor','b');

view(3);hold on%绘图

end

axis equal

——————————————————————————————————

得到效果如下:

基于MATLAB的三维网格绘制的图3

四面体网格.png基于MATLAB的三维网格绘制的图5




3. 六面体网格绘制

考虑如下六面体,注意patch函数的输入:

六面体.png

基于MATLAB的三维网格绘制的图7

给出如下程序:

——————————————————————————————————

clc

clear

%%%输入%%%%

points=[0,0,1;

       1,0,1;

       1,1,1;

       0,1,1;

       0,0,0;

       1,0,0;

       1,1,0;

       0,1,0;];%节点信息

mesh=[1,2,3,4,5,6,7,8];%网格信息

for i=1:length(mesh(:,1))%绘图

   %六面体单元结点坐标

   vertices_matrix = [points(mesh(i,:),1),points(mesh(i,:),2),points(mesh(i,:),3)];

   %六面体单元结点顺序

   faces_matrix=[1 2 3 4;2 6 7 3;6 5 8 7;5 1 4 8; 4 3 7 8; 5 6 2 1];%给出每个面节点序号,顺时针或者逆时针排列

h=patch('vertices', vertices_matrix,'faces',faces_matrix,'facecolor','b');

view(3);hold on%绘图

end

axis equal

得到效果如下:

基于MATLAB的三维网格绘制的图8

六面体网格.png



4. 网格颜色的设置

如果你不喜欢这种蓝色,想看红色网格怎么办呢?很简单,只要把:

h=patch('vertices', vertices_matrix,'faces',faces_matrix,'facecolor','b');

中的'b'换为'r'。

得到效果如下:

六面体网格  红色.png

基于MATLAB的三维网格绘制的图11

如果你还不满意,想要设置一个MATLAB颜色库里没有的颜色,比如灰色,咋办呢?也很简单,只要把上面的’b’换成RGB值:[0.5,0.5,0.5]得到效果如下:

六面体网格  灰色.png

基于MATLAB的三维网格绘制的图13

5. 网格透明的设置

如果你还想看清楚网格内部的线条,就需要进行网格透明设置,网格透明设置在patch函数后,加上下面一行:

alpha(0.2);

得到效果如下:

六面体网格  灰色 无网格.png

“alpha(0.2)”中的数字范围在0—1之间,该数字越小,透明化程度越高。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空