【MATLAB】sphere 球曲面函数详解

  • 官方文档
  • 画个球瞅瞅
  • 直接看坐标

官方文档

首先看一下 sphere 的官方文档

sphere  % sphere 函数用于生成单位球面的 x,y,z 的坐标,以用于 surf or mesh。默认生成 20 x 20 个面的球面。
sphere(n) % 生成 n x n 个面的球面
sphere(ax,...) % 指定坐标区内绘制
[X,Y,Z] = sphere(...)  % 在三个 (n+1)x(n+1)的矩阵内存储 n x n 个球面的坐标

画个球瞅瞅

首先画一个简单的球,

[x,y,z] = sphere(5)
surface(x,y,z)
xlabel('x')
view(3)

【MATLAB】sphere 球曲面函数详解_第1张图片

可以看到基本上5层面,每层5 个平面,构成了球面,不是很圆滑。但是小数量方便我们观察坐标规律。

直接看坐标

x =
         0         0         0         0         0         0
   -0.5878   -0.1816    0.4755    0.4755   -0.1816   -0.5878
   -0.9511   -0.2939    0.7694    0.7694   -0.2939   -0.9511
   -0.9511   -0.2939    0.7694    0.7694   -0.2939   -0.9511
   -0.5878   -0.1816    0.4755    0.4755   -0.1816   -0.5878
         0         0         0         0         0         0
y =
         0         0         0         0         0         0
         0   -0.5590   -0.3455    0.3455    0.5590         0
         0   -0.9045   -0.5590    0.5590    0.9045         0
         0   -0.9045   -0.5590    0.5590    0.9045         0
         0   -0.5590   -0.3455    0.3455    0.5590         0
         0         0         0         0         0         0
z =
   -1.0000   -1.0000   -1.0000   -1.0000   -1.0000   -1.0000
   -0.8090   -0.8090   -0.8090   -0.8090   -0.8090   -0.8090
   -0.3090   -0.3090   -0.3090   -0.3090   -0.3090   -0.3090
    0.3090    0.3090    0.3090    0.3090    0.3090    0.3090
    0.8090    0.8090    0.8090    0.8090    0.8090    0.8090
    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000

【MATLAB】sphere 球曲面函数详解_第2张图片

以等高线图可以看出来,x,y,z 中的数据排列规律是

x,y 平面是由内向外一圈一圈套起来的

【MATLAB】sphere 球曲面函数详解_第3张图片

z 方向是由下向上一层一层摞起来的

从而构成了完整的曲面。

可以发现,由于点的个数是偶数,所以坐标的对称性不是很好。为了获得更好的对称性,我们可以选择奇数个点,例如

[x,y,z] = sphere(6)
surface(x,y,z)
xlabel('x')
view(3)
x =
         0         0         0         0         0         0         0
   -0.5000   -0.2500    0.2500    0.5000    0.2500   -0.2500   -0.5000
   -0.8660   -0.4330    0.4330    0.8660    0.4330   -0.4330   -0.8660
   -1.0000   -0.5000    0.5000    1.0000    0.5000   -0.5000   -1.0000
   -0.8660   -0.4330    0.4330    0.8660    0.4330   -0.4330   -0.8660
   -0.5000   -0.2500    0.2500    0.5000    0.2500   -0.2500   -0.5000
         0         0         0         0         0         0         0
y =
         0         0         0         0         0         0         0
         0   -0.4330   -0.4330         0    0.4330    0.4330         0
         0   -0.7500   -0.7500         0    0.7500    0.7500         0
         0   -0.8660   -0.8660         0    0.8660    0.8660         0
         0   -0.7500   -0.7500         0    0.7500    0.7500         0
         0   -0.4330   -0.4330         0    0.4330    0.4330         0
         0         0         0         0         0         0         0
z =
   -1.0000   -1.0000   -1.0000   -1.0000   -1.0000   -1.0000   -1.0000
   -0.8660   -0.8660   -0.8660   -0.8660   -0.8660   -0.8660   -0.8660
   -0.5000   -0.5000   -0.5000   -0.5000   -0.5000   -0.5000   -0.5000
         0         0         0         0         0         0         0
    0.5000    0.5000    0.5000    0.5000    0.5000    0.5000    0.5000
    0.8660    0.8660    0.8660    0.8660    0.8660    0.8660    0.8660
    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000    1.0000

【MATLAB】sphere 球曲面函数详解_第4张图片

这样对称起来,就舒服多了。

你可能感兴趣的:(MATLAB)