valiant 发表于 2010-9-24 15:33

如何在圆周方向上画三维图?

本帖最后由 valiant 于 2010-9-24 15:35 编辑

假设存在“L”型的物体,旋转一周即可得到一个“杯子”似的圆形物体。
如果我的“L”型只分布在几个角度(比如0°,90°,180°,270°),怎么插值画出这个“杯子”似的三维图?我用mesh,surf试了几次也都没弄出来。。
假设“L”型的离散数据如下:
x=;
y=;
t=;
我先前问了一个二维的画图,但是不知道怎么改成三维的了。
又来求助。希望好心人能帮助我。

qibbxxt 发表于 2010-9-25 15:37

这个我也不是很明白,我觉得可以用旋转体来画图
写了以下的代码,但是感觉不大对,供你参考clear;clc;close all
t=;
= cylinder(t,100);
surf(X,Y,Z)
axis square
shading interp

玉林 发表于 2010-9-25 20:58

可以先建立一个柱坐标系么,cart2pol,直角坐标系转换成柱坐标系。

Happy99 发表于 2010-9-26 00:52

先自行搜索一下吧! 印象中看过类似的:@)
记的不难, 笔电出问题了, 还没matlab可试:@(

雪缘 发表于 2010-9-26 09:04

在柱坐标下,给出一系列的角度,然后获得相应的坐标,最后用surf画估计可行

valiant 发表于 2010-9-27 15:09

本帖最后由 valiant 于 2010-9-27 15:11 编辑

x=;
z=;
t=;
%假设存在0°90°180°270°四个方向,且数据一样。
x1=x*cosd(0);y1=x*sind(0);
x2=x*cosd(90);y2=x*sind(90);
x3=x*cosd(180);y3=x*sind(180);
x4=x*cosd(270);y4=x*sind(270);
%end
x=;
y=;
z=;
t=;
p1=-max(x1):1:max(x1); %三维坐标下x方向
p2=-max(x1):1:max(x1); %三维坐标下y方向
p3=0:1:max(z); %三维坐标下z方向
= meshgrid(p1,p2);
F = TriScatteredInterp(x,y,t);
pt=F(px,py);
pt((pt>500))=NaN;pt((pt<10))=NaN;
mesh(px,py,pt);shading interp; colorbar; 还是不行,请各位高手明示啊。。

Happy99 发表于 2010-9-28 13:17

Ref:
http://forum.vibunion.com/forum-viewthread-tid-94285-highlight-%D0%FD%D7%AA.html
http://forum.vibunion.com/forum-viewthread-tid-52159-highlight-%D0%FD%D7%AA.html
http://forum.vibunion.com/forum-viewthread-tid-13695-highlight-%D0%FD%D7%AA.html
...

ChaChing 发表于 2011-3-28 00:08

回复 6 # valiant 的帖子

???
F = TriScatteredInterp(x(:),y(:),t(:));
页: [1]
查看完整版本: 如何在圆周方向上画三维图?