MATLAB中如何画出x.^2+y.^2+z.^2=1的图像。
我知道可以写成z=sqrt(1-y.^2-x.^2);但是画出来只有一半。而且又不能写成1=x.^2+y.^2+z.^2;有会的请说下啊...
我知道可以写成z=sqrt(1-y.^2-x.^2);但是画出来只有一半。而且又不能写成1=x.^2+y.^2+z.^2;有会的请说下啊
展开
3个回答
展开全部
法一:
>> sphere
>> axis square
法二:
参数方程来画
clc
clear
% by friendchj
r=1;%半径
x0=2;%中心
y0=2;
z0=2;
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
>> sphere
>> axis square
法二:
参数方程来画
clc
clear
% by friendchj
r=1;%半径
x0=2;%中心
y0=2;
z0=2;
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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
画完一一半后,再接着画:
[x,y]=sphere(30);
z=sqrt(1-y.^2-x.^2);
plot3(x,y,z);
hold on;
plot3(x,y,-z);
[x,y]=sphere(30);
z=sqrt(1-y.^2-x.^2);
plot3(x,y,z);
hold on;
plot3(x,y,-z);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用我们初中时候学习的参数表达式,忘记了么?
不管是圆还是球体,都可以使用参数表达式来画图。
不管是圆还是球体,都可以使用参数表达式来画图。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询