声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1160|回复: 7

[编程技巧] [求助] matlab显示一个三维的,谢谢

[复制链接]
发表于 2009-5-10 22:30 | 显示全部楼层 |阅读模式

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

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

x
现在有一个物体想用三维表示出来在matlab中,比如物体的坐标是(256,256,100)(中心点)其中256,256是x and y的方向坐标点,100就是z的方向上,
这个物体是一个球形的,直径设为20 pixels。 其外,x以及y方向上的总的pixels 是512 and 512. 不知道怎么用matlab书
写程序。谢谢各位。
回复
分享到:

使用道具 举报

发表于 2009-5-10 23:11 | 显示全部楼层

回复 楼主 tomcat2000 的帖子

个人水平专业有限, 不知道是否误解了, x/y各256点, 相对应z不是应该有256*256点?
 楼主| 发表于 2009-5-11 08:11 | 显示全部楼层
Chaching, 你好,x/y总的各是512点,z也 是 512点,我想画的是一个圆球,这个圆球的 中心点是 (256,256,100),直径是20. 不知道怎么用matlab画出这个球体来 用三维坐标? 谢谢
发表于 2009-5-11 08:42 | 显示全部楼层

回复 板凳 tomcat2000 的帖子

画圆球不是可以直接用sphere!
发表于 2009-5-11 08:43 | 显示全部楼层

回复 板凳 tomcat2000 的帖子

发表于 2009-5-11 18:29 | 显示全部楼层

回复 板凳 tomcat2000 的帖子

试试:
clear
clc
[X,Y,Z]=sphere(251);
x0=256;y0=256;z0=100;
d=20;
mesh(X*sqrt(d/2)+x0,Y*sqrt(d/2)+y0,Z*sqrt(d/2)+z0)
xlabel('x')
ylabel('y')
zlabel('z')
axis equal

评分

1

查看全部评分

 楼主| 发表于 2009-5-12 09:51 | 显示全部楼层

hi, friendchj, 谢谢你的答复,

hi, friendchj, 谢谢你的答复,但是感觉画出来的图形还是不是我想要得。不过首先先要谢谢你。

我的情况是:需要画一个三维的图形。x/y总的各是512点,z轴总的点数也 是 512点,现在我想画的是5个圆球(或者说是微粒),最好在最综的三维图形中显示出x,y,z总的坐标点数。谢谢。

第一个圆球的 中心点是 (256,256,100),直径是20.

第二个圆球的 中心点是 (50,56,30),直径是10.


第三个圆球的 中心点是 (300,356,300),直径是6.


第四个圆球的 中心点是 (150,86,200),直径是8.


第五个圆球的 中心点是 (150,356,120),直径是10.

这个五个微粒画在一个三维图形中,不知道应该怎么画?再次谢谢你。
发表于 2009-5-12 11:44 | 显示全部楼层
不太清楚,你限制x,y,z点数的目的。不知道下面的能否满足你的要求

  1. r=1;%半径
  2. x0=0;%中心
  3. y0=0;
  4. z0=0;
  5. theta=linspace(0,2,16)*pi;
  6. phi=linspace(0,2,32)*pi;
  7. x=zeros(length(theta),length(phi));
  8. y=x;
  9. z=x;
  10. for i=1:length(theta)
  11.     for j=1:length(phi)
  12.         x(i,j)=r*sin(theta(i))*cos(phi(j))+x0;
  13.         y(i,j)=r*sin(theta(i))*sin(phi(j))+y0;
  14.     end
  15.     z(i,:)=r*cos(theta(i))+z0;
  16. end
  17. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  18. data=[256,256,100,20;50,56,30,10;300,356,300,6;150,86,200,8;150,356,120,10];
  19. for i=1:5
  20.     x1=x*data(i,4)/2+data(i,1);
  21.     y1=y*data(i,4)/2+data(i,2);
  22.     z1=z*data(i,4)/2+data(i,3);
  23.     mesh(x1,y1,z1,z1)
  24.     hold on
  25. end
  26. axis square
  27. hold off
复制代码
untitled.jpg

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-11 21:49 , Processed in 0.081638 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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