[問題]mesh 3D離散點座標

看板MATLAB作者 (極光)時間10年前 (2015/02/11 20:52), 編輯推噓3(309)
留言12則, 2人參與, 最新討論串1/1
各位高手們你們好.. 最近有需求將作到圓椎體分析, 需要用到佈點,座標分別是 母線(開口向外射出的方向)以及轉角.. 在這兩變數之間 採均勻佈點,一開始的程式碼是這樣子 程式碼如下: clc;clear;close all L=3;L_number=20; % eta方向的長度以及佈點數 Angle_number=30; % 最外圈轉角方向的佈點數 al=40 ; %圓錐向外射出的開口alpha角,取徑度 et=linspace(L,0,L_number); et(et<=L/5)=[]; %%挖掉底端 R=et*sind(al); ang=0:2*pi/Angle_number:2*pi-2*pi/Angle_number;%挖掉2pi 點 [angang,etet]=meshgrid(ang,et); x=etet.*sind(al).*cos(angang); %% 卡氏x座標 y=etet.*sind(al).*sin(angang); %% 卡氏y座標 z=etet*cosd(al); %% 卡氏z座標 figure(1) mesh(x,y,z); xlabel('x');ylabel('x');zlabel('z'); title(['角椎轉角切割為',num2str(Angle_number),'份']);hold on figure(2) plot(x(:),y(:),'*') xlabel('x');ylabel('x') title(['將角椎圖攤開,轉角切割為',num2str(Angle_number),'份']);hold on 但從figure(2)裡可以看到,其佈點為放射線佈點, 越外圈就會越疏,也就是放射線佈點, 但老闆今天要求我必須用同心圓佈點(越外圈越密,在壓平後看起來才會是均勻佈點) 根據半徑的漸變大小情況,來決定轉角方向的切割數... 所以沒辦法用一個大矩陣來裝, 小弟可以用跑迴圈的方式算出 其x,y,z值,用plot3畫出圖形來也是我要的, http://ppt.cc/pkoB 但我卻無法用mesh的方式將其圖作出來, 想問若只有分別 x & y & z的離散數據,該怎麼將圖用mesh畫出來呢? 還是其實是沒有辦法的呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.138.144 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1423659127.A.132.html

02/11 21:24, , 1F
mesh 要求長方形,所以不好做。你可以改用patch,以三角型
02/11 21:24, 1F

02/11 21:25, , 2F
來做。
02/11 21:25, 2F

02/11 21:50, , 3F
感謝..我剛剛改用trimesh作了!感謝...後來想一想
02/11 21:50, 3F

02/11 21:51, , 4F
要作方形的不太可能..我後來決定用三角形來作
02/11 21:51, 4F

02/11 21:51, , 5F
反正圖是人在看..再自己把兩個三角形拼成類矩形就好
02/11 21:51, 5F

02/12 00:27, , 6F
trimesh 也是call patch,不過你沒必要把每個小面的邊畫出
02/12 00:27, 6F

02/12 00:28, , 7F
來吧?也沒必要把小三角形拼成小長方形
02/12 00:28, 7F

02/12 15:06, , 8F
噢..會切割方形原因是因為在作分析時,需要計算距離
02/12 15:06, 8F

02/12 15:07, , 9F
希望兩個座標間的長度不要差太多,在分析上才比較不會
02/12 15:07, 9F

02/12 15:07, , 10F
出問題,用同心圓均分佈點就是希望能夠這樣子。
02/12 15:07, 10F

02/12 17:52, , 11F
是要用差分逼近微分之類的嗎?如果用finite element就可以
02/12 17:52, 11F

02/12 17:52, , 12F
用三角形了。
02/12 17:52, 12F
文章代碼(AID): #1Ksr1t4o (MATLAB)
文章代碼(AID): #1Ksr1t4o (MATLAB)