满城飞絮 发表于 2008-11-15 23:43

关于球面和圆柱面所围区域

怎样用MATLAB画出关于球面x^2+y^2+(z-1)^2=r^2和圆柱面x^2+y^2=rx所围区域?
多谢帮忙哈!

ch_j1985 发表于 2008-11-16 11:53

回复 楼主 满城飞絮 的帖子

能求出x,y,z的坐标范围吗?

满城飞絮 发表于 2008-11-16 13:20

回复 沙发 ch_j1985 的帖子

r=1哈
画关于球面x^2+y^2+(z-1)^2=1和圆柱面x^2+y^2=x所围区域?

ch_j1985 发表于 2008-11-16 14:02

将圆柱面的x、y坐标范围代入球面方程,求出z就可以画了
搜索一下版面相关帖子

满城飞絮 发表于 2008-11-16 18:16

回复 地板 ch_j1985 的帖子

再请教一个问题哈
画球面x^2+y^2+(z-1)^2=1的代码怎么写安?
我试了很久都不晓得怎么写
多谢!多谢!多谢!

ch_j1985 发表于 2008-11-16 18:33

z=sqrt(1-(x^2+y^2))+1
z=-sqrt(1-(x^2+y^2))+1
由这两个方程可求出z,然后再画图

满城飞絮 发表于 2008-11-16 21:34

回复 6楼 ch_j1985 的帖子

还是不行啊
x=0:0.1:1;
y=0:0.1:1;
=meshgrid(x,y);
Z=sqrt(1-(X.^2+Y.^2))+1;
Z=-sqrt(1-(X.^2+Y.^2))+1;
mesh(X,Y,Z)

??? Error using ==> surface
X, Y, Z, and C cannot be complex.
麻烦帮我看一下哪儿有问题?   
谢谢!

ch_j1985 发表于 2008-11-16 22:20

回复 7楼 满城飞絮 的帖子

出现复数了
改为三角函数试试
theta=linspace(0,2*pi);
x=1/2*(1+cos(theta));
y=1/2*sin(theta);

满城飞絮 发表于 2008-11-16 23:20

回复 8楼 ch_j1985 的帖子

还是不行啊
结果和刚才一样!
complex!

wwbeyondww 发表于 2008-11-17 09:12

回复 9楼 满城飞絮 的帖子

呵呵,把所有复数删掉就是了
复数点本来也就是落在球外面了

friendchj 发表于 2008-11-17 11:08

原帖由 满城飞絮 于 2008-11-16 18:16 发表 http://www.chinavib.com/forum/images/common/back.gif
再请教一个问题哈
画球面x^2+y^2+(z-1)^2=1的代码怎么写安?
我试了很久都不晓得怎么写
多谢!多谢!多谢!
clc
clear
% by friendchj
r=1;%半径
x0=0;%中心
y0=0;
z0=1;
theta=(0:0.1:2)*pi;
phi=(0:0.1:2)*pi;
x=zeros(length(theta),length(phi));
y=x;
z=x;
for i=1:length(theta)
    for j=1:length(phi)
      x(i,j)=r*sin(theta(i))*cos(phi(j))+x0;
      y(i,j)=r*sin(theta(i))*sin(phi(j))+y0;
    end
    z(i,:)=r*cos(theta(i))+z0;
end
surf(x,y,z)
axis square

friendchj 发表于 2008-11-17 11:37

原帖由 满城飞絮 于 2008-11-16 13:20 发表 http://www.chinavib.com/forum/images/common/back.gif
r=1哈
画关于球面x^2+y^2+(z-1)^2=1和圆柱面x^2+y^2=x所围区域?
呵呵,画了一个
clc
clear
% by friendchj
=sphere;
surf(x,y,z+1)
shading flat
=cylinder(0.5);
hold on
mesh(x-0.5,y,z*3)
axis square

满城飞絮 发表于 2008-11-17 11:39

呵呵    非常感谢哈!

满城飞絮 发表于 2008-11-17 19:52

回复 10楼 wwbeyondww 的帖子

怎么删掉复数哦?

friendchj 发表于 2008-11-18 00:03

原帖由 满城飞絮 于 2008-11-17 19:52 发表 http://www.chinavib.com/forum/images/common/back.gif
怎么删掉复数哦?
我的方法不会产生复数,如果要删除复数,可以先判断一个数的虚部是否为零,若不为零,则可以赋以nan。
页: [1] 2
查看完整版本: 关于球面和圆柱面所围区域