声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1504|回复: 9

[求助]x,y,z定义了体块v的坐标系,如何显示??

[复制链接]
发表于 2006-4-9 21:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
如题!!求助!!感谢!!<br>另外,请问是否有直接在柱坐标下显示三维体素图像的函数阿???<br><IMG src="http://202.118.250.107/vibbbs/Skins/Default/emot/em06.gif">急切期待!!
[此贴子已经被作者于2006-4-10 12:41:44编辑过]

回复
分享到:

使用道具 举报

 楼主| 发表于 2006-4-10 08:56 | 显示全部楼层
<P>敬请各位前辈帮忙!!!</P>
 楼主| 发表于 2006-4-10 12:27 | 显示全部楼层
<P>拜托!!!很急!!很多三维显示的函数都是只有x,y,z三个参量,没有第四个v,<br>但是体素显示应该有现成的函数吧??无头绪阿,都不知道该查哪个相关的函数!!<br>请前辈们提示一下!!</P>
[此贴子已经被作者于2006-4-10 12:32:03编辑过]

发表于 2006-4-10 14:49 | 显示全部楼层

回复:(lana2000)[求助]x,y,z定义了体块v的坐标系,...

能否说说你想怎没表示出来?<BR><BR>第四维用颜色?类似于contourslice画的流场切片图?
 楼主| 发表于 2006-4-10 20:42 | 显示全部楼层
是的,用颜色,灰度都可以,x,y,z,v都是一维向量,相当于一个n*4的矩阵,现在想在三维坐标下,显示其体素。<BR>另一个简单一点的:有x,y,t的一个n*3的矩阵,要在二维坐标下显示像素向量t所对应的值,比上述的少一维。例如y=x=1:0.1:100;v 向量为对应的像素值,要用灰度在直角坐标系下显示这条灰度直线<BR>敬待各位帮忙!!
发表于 2006-4-11 09:01 | 显示全部楼层

回复:(lana2000)[求助]x,y,z定义了体块v的坐标系,...

你要的是不是这个?
 楼主| 发表于 2006-4-11 09:47 | 显示全部楼层
<P>落叶校长,感谢!<BR>但是,你传的文件中所用的函数的X Y Z都是要用meshgrid产生的n*m*l的矩阵,但是现在我的x,y,z向量本身就很大,再mashgrid的话已经超出了matlab的数据范围了。怎么办??而且上述绘图函数都需要向量是单调的!</P>
发表于 2006-4-11 22:23 | 显示全部楼层

回复:(lana2000)[求助]x,y,z定义了体块v的坐标系,...

四维图一般很少用到,不是非常熟悉,你看看trisurf是否能实现
 楼主| 发表于 2006-4-12 17:09 | 显示全部楼层
那如果少一维向量呢,少z向量,只要在xy平面内显示像素就行!!<BR>用patch()行得通吗??
发表于 2006-4-14 20:27 | 显示全部楼层

回复:(lana2000)[求助]x,y,z定义了体块v的坐标系,...

        1.如果你使用matlab,有如下四种解决办法<BR>          (1)      tri=delaunay(x,y);<BR>                         trimesh(tri,x,y,z); or trisurf(tri,x,y,z);<BR>          (2)如果你想得到更加精细和光滑的曲线,而且想绘制coutour<BR>                   则需要用griddata()插值:<BR>                         [xi,yi]=meshgrid(min(x):dx:max(x),min(y):dy:max(y));<BR>                         [xi,yi,zi]=griddata(x,y,z,xi,yi,'cubic');<BR>                         contourf(xi,yi,zi,20);<BR>          (3)如果你的matlab安装有PDE Toolbox,可以使用pdeplot(),参见帮助<BR>          (4)可以使用MIT的Kirill K. Pankratov写的SaGA工具箱,下载地址在:<BR>        http://www.ai-geostats.org/software/Geostats_software/SAGA.htm<BR>        http://globec.whoi.edu/software/saga/<BR><BR>        2.如果你使用Tecplot<BR><BR>          1.先将三列数据按照顺序保存在一个文本文件中<BR>                data.dat文件格式为<BR>                 x1 y1 z1<BR>                 x2 y2 z2<BR>                 ...<BR>          2. Tecplot菜单File\Load Data file,在左上角选择2D<BR>          3. 选中zone,菜单Data\Triangulate<BR>          4. 双击该zone,将mesh掩藏掉,把contour打开,然后在<BR>                 左上角选择3D<BR>          5. 如果想插值,先创建一个更细的网格,然后用data菜单中<BR>                     Interpolation<BR><BR>        3.如果你使用Mathematica<BR><BR>          data={{x1,y1,z1},{x2,y2,z2},......};<BR>          fun=Interpolation[data];<BR>          Plot3D[fun[x,y],{x,xmin,xmax},{y,ymin,ymax}];<BR>          ContourPlot[fun[x,y],{x,xmin,xmax},{y,ymin,ymax}];<BR>
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-14 09:47 , Processed in 0.068363 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表