1、双击matlab软件图标,打开matlab软件脊雀档,可以看到matlab软件的界面。
2、通过语句[u,v,w]=sphere(56) 获得绘制岁拦球体的三维坐标。
3、使用语句:
subplot(2,2,1)
plot3(u,v,w)
title('plot3()')
将图片分成四份,在第一行第一列使用plot3()绘制球体,并使用函数title()添加标题。
4、使用语句:
subplot(2,2,2)
surf(u,v,w)
title('surf()')
将图片分成四份,在第一行第二列使用函数surf()绘制球体,并使用函数title()添加标题。
5、使用语句:
subplot(2,2,3)
surfl(u,v,w)
title('surfl()')
将图片分成四份,在第二行第一列使用函数surfl()绘制球体,并使用函数title()添加标题。
6、使用语句:
subplot(2,2,4)
mesh(u,v,w)
title('mesh()')
将图片分成四份,在第二樱乱行第二列使用函数mesh()绘制球体,并使用函数title()添加标题。
7、随后就可以看到绘制完成的球面方程。
clc,clear%一个三维随机运动的小球
r=0.5%球的半径
%运动的范围
x1=0x2=30
y1=0y2=30
z1=0z2=30
%初始位置 随机生成
x0=rand(1)*(x2-x1-2*r)+x1
y0=rand(1)*(y2-y1-2*r)+y1
z0=rand(1)*(z2-z1-2*r)+z1
pos=[x0y0z0]
figure(1)
[x,y,z] = ellipsoid(pos(1),pos(2),pos(3),r,r,r)
surf(x,y,z,ones(size(x))) %画出来球
n=200%随机运动的次数
p=1 %p可以用来控制每次运动距离的大小
for i=1:n
%产生运动的方向与运动距离,用一个随机向量表示
s=0
while(s==0)
如滚局 direct=rand(3,1)-0.5
dd=direct/norm(direct,2)
dd=dd*p
post=pos+dd
if (post(1)>=x1+r&&post(1)<=x2-r)&&(post(2)>=y1+r&&post(2)<=y2-r)&&(post(3)>=z1+r&&post(3)<=z2-r)
渣让 s=1
end
end
pos=pos+dd
[x,y,z] = ellipsoid(pos(1),pos(2),pos(3),r,r,r)
surf(x,y,z,ones(size(x))) %画出来球
axis([x1 x2 y1 y2 z1 z2])
pause(0.1) %设置暂停时备升间
end
因为是随机运动 如果每次运动的距离设置的不大,小球基本上是在初始位置的范围内运动
对于这类题型,除了用数组函数形式求解,还可以用自定义函数的形式来求解。
1、建立自定义函数文件,其代码如下
function [R,S,V] = ball_fun(r)
R=r
S=4*pi*r.^2
V=4/3*pi*r.^3
end
将上述代码,保存为ball_fun。m文件
2、建立执行命令文件,其代码桥派野如下
clc,clear all
format short g
for r=1:10
[R,S,V] = ball_fun(r)
str = ['球半径=',num2str(R),' 球表面积=',num2str(S),' 球体积=',num2str(V)]
fprintf('%s\n',str)
end
将上敏喊述代羡派码,保存为ball。m文件
3、在命令窗口下执行
>>ball %回车
4、运行结果
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)