MATLAB繪制3D隱函數(shù)曲面的方法總結(jié)

2017-03-28  by:CAE仿真在線  來(lái)源:互聯(lián)網(wǎng)

l. isosurface 等值面函數(shù)
調(diào)用格式:fv = isosurface(X,Y,Z,V,isovalue)
作用:返回某個(gè)等值面(由isovalue指定)的表面(faces)和頂點(diǎn)(vertices)數(shù)據(jù),存放在結(jié)構(gòu)體fv中(fvverticesfaces兩個(gè)域構(gòu)成)。如果是畫(huà)隱函數(shù) v = f(x,y,z) = 0 的三維圖形,那么等值面的數(shù)值為isovalue = 0。

2. patch函數(shù)
調(diào)用格式:patch(X,Y,C) 以平面坐標(biāo)(X, Y)為頂點(diǎn),構(gòu)造平面多邊形,CRGB顏色向量
patch(X,Y,Z,C)以空間3-D坐標(biāo)(X, Y,Z)為頂點(diǎn),構(gòu)造空間3D曲面,CRGB顏色向量
patch(fv) 通過(guò)包含verticesfaces兩個(gè)域的結(jié)構(gòu)體fv來(lái)構(gòu)造3D曲面,fv可以直接由等值面函數(shù)isosurface得到
例如:patch(isosurface(X,Y,Z,V,0))

3. isonormals等值面法線函數(shù)
調(diào)用格式:isonormals(X,Y,Z,V,p)
實(shí)現(xiàn)功能:計(jì)算等值面V的頂點(diǎn)法線,將patch曲面p的法線設(shè)置為計(jì)算得到的法線(ppatch返回得到的句柄)。如果不設(shè)置法線的話,得到曲面在過(guò)渡地帶看起來(lái)可能不是很光滑

解決辦法一:isosurface patch isonormals
實(shí)現(xiàn)原理:先定義3元顯函數(shù)v =f(x, y, z), v = 0 定義的等值面就是z = g(x,y)3D曲面。利用isosurface函數(shù)獲取v= 0 的等值面,將得到的等值面直接輸入給patch函數(shù),得出patch句柄p,并畫(huà)出patch曲面的平面視角圖形。對(duì)pisonormals函數(shù)設(shè)置曲面頂點(diǎn)數(shù)據(jù)的法線,最后設(shè)置顏色、亮度、3D視角,得到3D曲面。

代碼如下:
  1. f = @(x,y,z) x.*y.*z.*log(1 x.^2 y.^2 z.^2)-10; % 函數(shù)表達(dá)式
  2. [x,y,z] = meshgrid(-10:.2:10,-10:.2:10,-10:.2:10); % 畫(huà)圖范圍
  3. v = f(x,y,z);
  4. h = patch(isosurface(x,y,z,v,0));
  5. isonormals(x,y,z,v,h)
  6. set(h,'FaceColor','r','EdgeColor','none');
  7. xlabel('x');ylabel('y');zlabel('z');
  8. alpha(1)
  9. grid on; view([1,1,1]); axis equal; camlight; lighting gouraud


ezimplot3的方法實(shí)質(zhì)是跟方法1是一樣的。
補(bǔ)充一個(gè):MC(Marching Cube)方法,這是計(jì)算機(jī)圖像學(xué)中很有名的方法。
http://www.mathworks.com/matlabc ... 2506-marching-cubes




開(kāi)放分享:優(yōu)質(zhì)有限元技術(shù)文章,助你自學(xué)成才

相關(guān)標(biāo)簽搜索:MATLAB繪制3D隱函數(shù)曲面的方法總結(jié) MatLab培訓(xùn) MatLab培訓(xùn)課程 MatLab在線視頻教程 MatLab技術(shù)學(xué)習(xí)教程 MatLab軟件教程 MatLab資料下載 MatLab代做 MatLab基礎(chǔ)知識(shí) Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓(xùn) Abaqus培訓(xùn) 

編輯
在線報(bào)名:
  • 客服在線請(qǐng)直接聯(lián)系我們的客服,您也可以通過(guò)下面的方式進(jìn)行在線報(bào)名,我們會(huì)及時(shí)給您回復(fù)電話,謝謝!
驗(yàn)證碼

全國(guó)服務(wù)熱線

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號(hào)金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓(xùn)QQ咨詢:點(diǎn)擊咨詢 點(diǎn)擊咨詢
項(xiàng)目QQ咨詢:點(diǎn)擊咨詢
email:kf@1cae.com