作者e01234567 (极光)
看板MATLAB
标题[问题]mesh 3D离散点座标
时间Wed Feb 11 20:52:04 2015
各位高手们你们好..
最近有需求将作到圆椎体分析,
需要用到布点,座标分别是 母线(开口向外射出的方向)以及转角..
在这两变数之间 采均匀布点,一开始的程式码是这样子
程式码如下:
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://webptt.com/cn.aspx?n=bbs/MATLAB/M.1423659127.A.132.html
1F:推 sunev: mesh 要求长方形,所以不好做。你可以改用patch,以三角型 02/11 21:24
2F:→ sunev: 来做。 02/11 21:25
3F:→ e01234567: 感谢..我刚刚改用trimesh作了!感谢...後来想一想 02/11 21:50
4F:→ e01234567: 要作方形的不太可能..我後来决定用三角形来作 02/11 21:51
5F:→ e01234567: 反正图是人在看..再自己把两个三角形拼成类矩形就好 02/11 21:51
6F:推 sunev: trimesh 也是call patch,不过你没必要把每个小面的边画出 02/12 00:27
7F:→ sunev: 来吧?也没必要把小三角形拼成小长方形 02/12 00:28
8F:→ e01234567: 噢..会切割方形原因是因为在作分析时,需要计算距离 02/12 15:06
9F:→ e01234567: 希望两个座标间的长度不要差太多,在分析上才比较不会 02/12 15:07
10F:→ e01234567: 出问题,用同心圆均分布点就是希望能够这样子。 02/12 15:07
11F:推 sunev: 是要用差分逼近微分之类的吗?如果用finite element就可以 02/12 17:52
12F:→ sunev: 用三角形了。 02/12 17:52