基于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科技工作室”的微信公眾號,掃一掃二維碼即可關注~~

工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















