基于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

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

6