[问题]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