如何用matlab画一个透明的同心球

目录

先看看球

figure

sphere

mesh

hold on

FaceAlpha

matlab代码

先看看球

配图说明球体积公式推导的时候要用到同心球,因此要画一个。

长这个样子。

因为它是三维的,所以可以转动它来看:

再转一下:

看看俯视图,就是一堆同心圆:

好了,到了学习的时候了,先解释一下用到的各种函数。

figure

figure用来生成一个窗口。

sphere

sphere函数用于生成单位球面的 x,y,z 的坐标。

默认生成 20 x 20 个面的球面。

还需要学习sphere的一个功能。

[X,Y,Z] = sphere

这个是在三个矩阵内存储球面的坐标。

mesh

mesh(x,y,z)

生成x、y和z指定的三维网格图。

上面解释了画球的东西,接下来要解释画同心球的东西。

hold on

由于我们只能一个一个球的画,所以我们需要让之前画的球保留下来,让所有画的球在一个地方出现。

注意hold on这个代码的出现位置十分重要,我今天学的时候,一开始画的总是二维图的同心圆,改来改去死活不变三维图,13行的代码,最后尝试换了一下hold on的位置,球出现了,纸上得来终觉浅,绝知此事要躬行……

FaceAlpha

还有一个问题,一堆球重叠在一起,大球包小球,得把它们弄透明才看清楚是同心球。

首图的透明度是0.3,其他图的透明度是0.1,下面的代码写着是0.1的。

matlab代码

figure
for r = 1:1:10 
    balldraw(r)
end
function balldraw(r)
[x,y,z] = sphere
x = r*x
y = r*y
z = r*z
ball=mesh(x,y,z)
ball.FaceAlpha = 0.1
hold on
end

猜你喜欢

转载自blog.csdn.net/weixin_62264287/article/details/124412425