如何用matlab软件画球面方程

如何用matlab软件画球面方程,第1张

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、运行结果


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12360787.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存