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

作者: e01234567 (極光)   2015-02-11 20:52:04
各位高手們你們好..
最近有需求將作到圓椎體分析,
需要用到佈點,座標分別是 母線(開口向外射出的方向)以及轉角..
在這兩變數之間 採均勻佈點,一開始的程式碼是這樣子
程式碼如下:
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畫出來呢?
還是其實是沒有辦法的呢?
作者: sunev (Veritas)   2015-02-11 21:24:00
mesh 要求長方形,所以不好做。你可以改用patch,以三角型來做。
作者: e01234567 (極光)   2015-02-11 21:50:00
感謝..我剛剛改用trimesh作了!感謝...後來想一想要作方形的不太可能..我後來決定用三角形來作反正圖是人在看..再自己把兩個三角形拼成類矩形就好
作者: sunev (Veritas)   2015-02-12 00:27:00
trimesh 也是call patch,不過你沒必要把每個小面的邊畫出來吧?也沒必要把小三角形拼成小長方形
作者: e01234567 (極光)   2015-02-12 15:06:00
噢..會切割方形原因是因為在作分析時,需要計算距離希望兩個座標間的長度不要差太多,在分析上才比較不會出問題,用同心圓均分佈點就是希望能夠這樣子。
作者: sunev (Veritas)   2015-02-12 17:52:00
是要用差分逼近微分之類的嗎?如果用finite element就可以用三角形了。

Links booklink

Contact Us: admin [ a t ] ucptt.com