Torus
类在制作数学、物理或工程领域的动画时具有广泛的应用场景。

比如,通过动态演示环面的拓扑变换(如内外翻转、扭曲等),帮助我们直观地理解拓扑不变量和同胚等概念;

此外,也可以模拟磁场线在环面导体中的分布和运动,展示电磁感应现象等等。

本篇介绍Torus的主要参数和基本使用方法。

1. 主要参数

Torus
的参数不多,主要有:

参数名称 类型 说明
major_radius float 圆环面的主要半径,从环面中心到其管道中心(或称为环面中心轴)的距离
minor_radius float 环面管道的半径
resolution [int, int] 环面表面的分辨率,用于控制渲染的精细程度
u_range [float] 定义了圆环面在u方向上的参数化范围
v_range [float] 定义了圆环面在v方向上的参数化范围

如果把
Torus
圆环面看成一个轮胎的话,

那么,
major_radius
参数表示轮胎的大小,
minor_radius
参数表示轮胎的厚度。

2. 使用示例

为了有效展示
Torus
(圆环面)各个参数的使用,下面构造四个示例,

每个示例将突出
Torus
类的一个或几个关键参数,并说明这些参数如何影响环面的外观和特性。

2.1. 标准圆环面

这是一个标准的环面,其中
major_radius
决定了环面的大小,
minor_radius
决定了环面管道的厚度,


resolution
控制了环面表面的平滑度。

通过调整这些参数,可以获得不同大小和形状的环面。

torus = Torus(
    major_radius=2.5,
    minor_radius=0.5,
    resolution=(30, 30),
)

2.2. 扁平圆环面

通过限制
v_range
的值,我们可以创建一个扁平的环面。

在这个示例中,
v_range
被设置为
(0, PI/2)
,这意味着环面在
v方向
上的参数化范围被限制在一个更小的区间内,从而导致环面在视觉上变得更加扁平。

这种扁平环面可以用于模拟轮胎、甜甜圈等扁平形状的物体。

torus = Torus(
    major_radius=2.5,
    minor_radius=0.5,
    resolution=(30, 30),
    v_range=(0, PI / 2),
)

2.3. 高分辨率圆环面

增加
resolution
的值可以提高环面表面的平滑度和细节程度。

在这个示例中,
resolution
被设置为
(100, 100)
,这意味着环面在
u和v方向
上都有更高的分辨率,从而呈现出更加细腻和逼真的曲面效果。

高分辨率环面在渲染复杂场景或制作高质量动画时非常有用。

torus = Torus(
    major_radius=2.5,
    minor_radius=0.5,
    resolution=(100, 100),
)

2.4. 非标准圆环面

通过调整
u_range
的值,我们可以创建一个非标准的环面。

在这个示例中,
u_range
被设置为
(0, 3*PI/2)
,这意味着环面在
u方向
上的参数化范围被扩展到一个更大的区间内,从而导致环面在视觉上出现一部分缺失。

这种非标准环面可以用于艺术创作、数学可视化或物理模拟等领域,以展示环面在不同参数设置下的多样性和灵活性。

torus = Torus(
    major_radius=2.5,
    minor_radius=0.5,
    resolution=(30, 30),
    u_range=(0, 3 * PI / 2),
)

3. 附件

文中的代码只是关键部分的截取,完整的代码共享在网盘中(
torus.py
),

下载地址:
完整代码
(访问密码: 6872)

标签: none

添加新评论