基于MATLAB的三维网格绘制

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);

得到效果如下:

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

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

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

大家有相关需求可以添加管理员微信号:CAE320,同时也欢迎大家关注“320科技工作室”的微信公众号,扫一扫二维码即可关注~~

微信公众号.jpg

默认 最新
当前暂无评论,小编等你评论哦!
点赞 6 评论 收藏
关注