24小时热门版块排行榜    

CyRhmU.jpeg
查看: 194  |  回复: 1
当前主题已经存档。

hyl.net

[交流] 【求助】为何生不出三维球体已有1人参与

d=6;
theta=(0:pi/18:2*pi);
phi=(0:pi/18:2*pi);
a=d*sin(theta).*cos(phi);
A=repmat(a,37,1);
b=d*sin(theta).*sin(phi);
B=repmat(b,37,1);
c=d*sin(theta);
C=repmat(c,37,1);
[x,y,z] = sphere(36);
xLV = A'.*x;
yLV = B'.*y;
zLV = C'.*z;
surf(xLV, yLV, zLV ,'FaceColor','yellow','FaceAlpha',0.5)
这个程序生成的图像为何不是球体,请大虾指点
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

anyuezhiji

银虫 (正式写手)

星空行者

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
adu886886(金币+2):谢谢交流 2010-04-12 08:16
sphere生成的矩阵直接用来画球就行了
如果要增大半径或移动位置乘以常数和加上常数即可

另外你的参数方程给定的也不是球体
而是圆锥面

下面是画球的一些例子:
CODE:
%%PSL@CSU
%%QQ:547423688
%%Email:anyuezhiji@qq.com

d=6;%半径
C=[0,0,0];%球心坐标

figure
hold on
fl = @(x,y) -sqrt(d^2-(x-C(1)).^2 - (y-C(2)).^2)+C(3);
ezsurf(fl)
fh = @(x,y) sqrt(d^2-(x-C(1)).^2 - (y-C(2)).^2)+C(3);
ezsurf(fh)
axis([-d d -d d -d d])
View(36,6)
title(['(x-',num2str(C(1)),')^2 + (y-',num2str(C(2)),')^2+(z-',num2str(C(3)),')^2=',num2str(d),'^2'])

figure
[x,y,z] = sphere(36);
X = C(1)+d*x;
Y = C(2)+d*y;
Z = C(3)+d*z;
surf(X,Y,Z ,'FaceColor','yellow')
axis equal
title(['(x-',num2str(C(1)),')^2 + (y-',num2str(C(2)),')^2+(z-',num2str(C(3)),')^2=',num2str(d),'^2'])

figure
syms a b c theta phi;
a=d*cos(theta)*cos(phi)+C(1);
b=d*sin(theta)*cos(phi)+C(2);
c=d*sin(phi)+C(3);
ezsurf(a,b,c,[0,2*pi],[0,2*pi])
title(['(x-',num2str(C(1)),')^2 + (y-',num2str(C(2)),')^2+(z-',num2str(C(3)),')^2=',num2str(d),'^2'])
axis equal

figure
theta=(0:pi/18:2*pi);
phi=(0:pi/18:2*pi);
[theta,phi]=meshgrid(theta,phi)
a=d*cos(theta).*cos(phi)+C(1);
b=d*sin(theta).*cos(phi)+C(2);
c=d*sin(phi)+C(3);
surf(a, b, c ,'FaceColor','yellow','FaceAlpha',0.5)
axis equal

[ Last edited by anyuezhiji on 2010-4-11 at 21:08 ]
暗月下没有留下风的痕迹,但它已经寂然飘逝。。By<暗月之寂>:tiger38:
2楼2010-04-11 20:45:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 hyl.net 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见