目录
先看看球
配图说明球体积公式推导的时候要用到同心球,因此要画一个。
长这个样子。
因为它是三维的,所以可以转动它来看:
再转一下:
看看俯视图,就是一堆同心圆:
好了,到了学习的时候了,先解释一下用到的各种函数。
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