声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4011|回复: 16

[编程技巧] 关于球面和圆柱面所围区域

[复制链接]
发表于 2008-11-15 23:43 | 显示全部楼层 |阅读模式

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

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

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

回复
分享到:

使用道具 举报

发表于 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所围区域?
发表于 2008-11-16 14:02 | 显示全部楼层
将圆柱面的x、y坐标范围代入球面方程,求出z就可以画了
搜索一下版面相关帖子

评分

1

查看全部评分

 楼主| 发表于 2008-11-16 18:16 | 显示全部楼层

回复 地板 ch_j1985 的帖子

再请教一个问题哈
画球面x^2+y^2+(z-1)^2=1的代码怎么写安?
我试了很久都不晓得怎么写
多谢!多谢!多谢!
发表于 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;
[X,Y]=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.
麻烦帮我看一下哪儿有问题?   
谢谢!
发表于 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!
发表于 2008-11-17 09:12 | 显示全部楼层

回复 9楼 满城飞絮 的帖子

呵呵,把所有复数删掉就是了
复数点本来也就是落在球外面了
发表于 2008-11-17 11:08 | 显示全部楼层

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
发表于 2008-11-17 11:37 | 显示全部楼层
原帖由 满城飞絮 于 2008-11-16 13:20 发表
r=1哈
画关于球面x^2+y^2+(z-1)^2=1和圆柱面x^2+y^2=x所围区域?

呵呵,画了一个
clc
clear
% by friendchj
[x,y,z]=sphere;
surf(x,y,z+1)
shading flat
[x,y,z]=cylinder(0.5);
hold on
mesh(x-0.5,y,z*3)
axis square
untitled.jpg

评分

1

查看全部评分

 楼主| 发表于 2008-11-17 11:39 | 显示全部楼层
呵呵    非常感谢哈!
 楼主| 发表于 2008-11-17 19:52 | 显示全部楼层

回复 10楼 wwbeyondww 的帖子

怎么删掉复数哦?
发表于 2008-11-18 00:03 | 显示全部楼层
原帖由 满城飞絮 于 2008-11-17 19:52 发表
怎么删掉复数哦?

我的方法不会产生复数,如果要删除复数,可以先判断一个数的虚部是否为零,若不为零,则可以赋以nan。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-3 01:45 , Processed in 0.094605 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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