# sphere
创建球面
函数库: TyPlot
# 语法
X,Y,Z = sphere(;fig=false)
X,Y,Z = sphere(n;fig=false)
sphere()
sphere(n)
sphere(ax,___)
s=sphere(___)
# 说明
# 创建球面数据
X,Y,Z = sphere(;fig=false) 返回球面的 x、y 和 z 坐标而不对其绘图。返回的球面的半径等于 1,由 20×20 个面组成。
该函数以三个 21×21 矩阵形式返回 x、y 和 z 坐标。示例
要使用返回的坐标绘制球面,请使用 surf 或 mesh 函数。
X,Y,Z = sphere(n;fig=false) 返回半径等于 1 且包含 n×n 个面的球面的 x、y 和 z 坐标。该函数以三个 (n+1)×(n+1) 矩阵形式返回 x、y 和 z 坐标。示例
# 绘制球面
sphere() 绘制球面而不返回坐标。返回的球面的半径等于 1,由 20×20 个面组成。示例
sphere(n) 返回半径等于 1 且包含 n×n 个面的球面。示例
sphere(ax,___) 将图形绘制到 ax 指定的坐标区中,而不是当前坐标区中。指定坐标区作为第一个输入参数。示例
s= sphere(___) 将返回一个曲面对象。在创建曲面之后可使用 s 对其进行修改。有关属性列表,请参见 surface 属性。
# 示例
显示单位球面
创建并绘制一个半径等于 1 的球面。使用 axis("equal") 可沿每个坐标方向使用相等的数据单位。
using TyPlot
sphere()
axis("equal");

指定球面半径和位置
通过修改返回的 X、Y、Z 坐标来指定球面的半径和位置。
将 X、Y 和 Z 定义为单位球面的坐标。
using TyPlot
X, Y, Z = sphere(; fig=false)
以原点为中心绘制单位球面。
surf(X, Y, Z)
通过乘以单位球面的坐标,将 X2、Y2 和 Z2 定义为半径为 5 的球面的坐标。以 (5,-5,0) 为中心绘制第二个球面。
hold("on")
r = 5
X2 = X .* r
Y2 = Y .* r
Z2 = Z .* r
s = surf(X2 .+ 5, Y2 .- 5, Z2)
axis("equal");

显示包含不同面数的球面
调用 subplot 函数以创建 2×2 分块图布局。调用 projection 参数来设置坐标区的投影方式,创建坐标区。然后,使用 sphere 函数,通过指定坐标轴,将三个具有不同面数的球面绘制到图的不同图块中。
using TyPlot
ax1 = subplot(2, 2, 1; projection="3d")
ax2 = subplot(2, 2, 2; projection="3d")
ax3 = subplot(2, 2, 3; projection="3d")
sphere(ax1)
axis("equal")
title("20-by-20 faces (Default)")
sphere(ax2, 50)
title("50-by-50 faces")
axis("equal")
sphere(ax3, 80)
title("80-by-80 faces")
axis("equal");

# 输入参数
n — 面的数量正整数
面的数量,指定为正整数。
ax — 目标坐标区Axes 对象
目标坐标区,指定为 Axes 对象。如果未指定坐标区,则 sphere 在当前坐标区中绘图。
fig — 是否绘图true(默认) | false
是否对球面进行绘图,指定为 true 或 false。
- true:绘制球面并返回曲面对象;
- false:返回球面的 x、y 和 z 坐标而不进行绘图。