基于MATLAB的三维网格绘制
MATLAB三维网格绘制
1.输入
基于MATLAB的三维网格绘制必备的输入有:
1)节点坐标信息;
2)网格信息。
基于以上两点再借助patch函数即可完成网格绘制,通过以下例子做具体说明。
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
——————————————————————————————————
得到效果如下:
3. 六面体网格绘制
考虑如下六面体,注意patch函数的输入:
给出如下程序:
——————————————————————————————————
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
得到效果如下:
4. 网格颜色的设置
如果你不喜欢这种蓝色,想看红色网格怎么办呢?很简单,只要把:
h=patch('vertices', vertices_matrix,'faces',faces_matrix,'facecolor','b');
中的'b'换为'r'。
得到效果如下:
如果你还不满意,想要设置一个MATLAB颜色库里没有的颜色,比如灰色,咋办呢?也很简单,只要把上面的’b’换成RGB值:[0.5,0.5,0.5]得到效果如下:
5. 网格透明的设置
如果你还想看清楚网格内部的线条,就需要进行网格透明设置,网格透明设置在patch函数后,加上下面一行:
alpha(0.2);
得到效果如下:
“alpha(0.2)”中的数字范围在0—1之间,该数字越小,透明化程度越高。
大家有相关需求可以添加管理员微信号:CAE320,同时也欢迎大家关注“320科技工作室”的微信公众号,扫一扫二维码即可关注~~