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)

manim边做边学--圆环面的更多相关文章

  1. 边做边学入门微信小程序之仿豆瓣评分

    微信小程序由于适用性强.逻辑简要.开发迅速的特性,叠加具有海量活跃用户的腾讯公司背景,逐渐成为了轻量级单一功能应用场景的较佳承载方式,诸如电影购票.外卖点餐.移动商城.生活服务等场景服务提供商迅速切入 ...

  2. Three.js基础探寻五——正二十面体、圆环面等

    除了立方体.平面.球体,Three.js还提供了很多其他几何形状. 1.圆形 CircleGeometry可以创建圆形或者扇形: THREE.CircleGeometry(radius, segmen ...

  3. Grails边做边学入门篇[1]--------大家一起来动手建立project和Domain

    近期工作比較忙,没空写博客了.我发现每周五的下午都是我最放松的时候,可能是迟延症的缘故吧...总是寄希望于周末,慢慢的.我的周末就被工作占领了. 希望大家不要有这种坏毛病.今日事,今日毕.当然我们程序 ...

  4. 《Three.js 入门指南》3.1.1 - 基本几何形状 -圆环面(TorusGeometry)

    3.1 基本几何形状 圆环面(TorusGeometry) 构造函数 THREE.TorusGeometry(radius, tube, radialSegments, tubularSegments ...

  5. 技术的止境(客户价值第一,快速实现第二,边做边学,迅速成为牛人。紧贴客户的需求去做技术,立于不败之地。追求的目标:把一项产品去做好,用产品去养活自己和家人)good

    作为一个依靠技术来谋生的程序员,我最近一直在思考一个问题,有限的生命里,面对无限的技术更新,我要研究到什么程度才能算是完成我的成为技术大牛的目标呢?换而言之,那就是技术的止境在哪儿呢?深入的思考下去, ...

  6. 【Leetcode 做题学算法周刊】第四期

    首发于微信公众号<前端成长记>,写于 2019.11.21 背景 本文记录刷题过程中的整个思考过程,以供参考.主要内容涵盖: 题目分析设想 编写代码验证 查阅他人解法 思考总结 目录 67 ...

  7. 做fzu oj 1045 做减法学到的sprintf()函数

    题目 做题一直输不出答案,于是就上网去百度了这题的解题,发现解答十分的简短,而且其中我看见了平时没见过的函数,sprintf(). 于是就百度sprintf()的使用. 如下: 函数功能:把格式化的数 ...

  8. 【Leetcode 做题学算法周刊】第一期

    首发于微信公众号<前端成长记>,写于 2019.10.28 背景 本文记录刷题过程中的整个思考过程,以供参考.主要内容涵盖: 题目分析设想 编写代码验证 查阅他人解法 思考总结 目录 1. ...

  9. 【Leetcode 做题学算法周刊】第二期

    首发于微信公众号<前端成长记>,写于 2019.11.05 背景 本文记录刷题过程中的整个思考过程,以供参考.主要内容涵盖: 题目分析设想 编写代码验证 查阅他人解法 思考总结 目录 20 ...

  10. 【Leetcode 做题学算法周刊】第三期

    首发于微信公众号<前端成长记>,写于 2019.11.13 背景 本文记录刷题过程中的整个思考过程,以供参考.主要内容涵盖: 题目分析设想 编写代码验证 查阅他人解法 思考总结 目录 35 ...

随机推荐

  1. golang协程的最佳实践与context包的基本使用

    1.协程最佳实践,多个协程并发求素数 点击查看代码 var wg sync.WaitGroup func Prime(num int) bool { if num == 1 { return fals ...

  2. 苹果(ios)打包证书下载

    这里,首先需要明确的是,苹果打包证书不能共用,因此证书下载是只能下载自己的证书,不是去下载别人的证书. 那么自己的证书又是如何生成的呢?去什么地方下载呢?第一次开发ios的同学们,肯定会问这个问题. ...

  3. Bit, Byte, ASCII, Unicode, UTF, Base64

    前言 做项目偶尔会接触到 stream 这个感念,不管是 memory stream 还是 file stream,它们又会提到 bytes. 还有像 Identity – 安全基础知识 中提到的 S ...

  4. Hugging Face NLP课程学习记录 - 0. 安装transformers库 & 1. Transformer 模型

    Hugging Face NLP课程学习记录 - 0. 安装transformers库 & 1. Transformer 模型 说明: 首次发表日期:2024-09-14 官网: https: ...

  5. 痞子衡嵌入式:如果i.MXRT离线无法启动,试着分析ROM启动日志

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MXRT系列MCU的ROM启动日志. 关于 i.MX RT 启动问题解决的文章,痞子衡写过非常多,其中大部分都是具体到某一类启 ...

  6. /proc/slabinfo 介绍

    slabinfo - version: 2.1 # name <active_objs> <num_objs> <objsize> <objperslab&g ...

  7. 2021年第十一届数据技术嘉年华(DTC)资料分享

    数据技术嘉年华(DTC)是由由中国DBA联盟(ACDU)和墨天轮社区联合主办的数据技术领域的盛会,至今已成功举办11届,吸引和聚集了众多数据领域学术精英.领袖人物.技术专家.从业者和技术爱好者,于此进 ...

  8. 数据库周刊59丨GaussDB(for openGauss)开放商用;人大金仓保障冬奥会演练顺利完成;MDL锁导致的MySQL问题分析;PG日志使用手册;达梦表空间查询;数据库笔试题面试题集……

    热门资讯 1.openGauss 上线华为云正式商用 - GaussDB(for openGauss) [摘要]近日,GaussDB(for openGauss)已于华为云官网全面开放商用.该产品是华 ...

  9. 未来“数”于你 | 墨天轮携手 Vertica 发布技术文章征集令,双重大奖蓄势待“发”

    作为新一代数据分析平台,Vertica凭借高性能.高可用性以及混合模式部署的底层架构等特点,为国内电信.金融行业提供了较多的整体解决方案. 今天,Vertica 限时开放体验,同时,MacBook P ...

  10. YoloDotNet v2.1:实时物体检测的利器

    项目介绍 YoloDotNet v2.1 是一个基于 C# 和 .NET 8 的实时物体检测框架,专为图像和视频中的物体检测而设计.它集成了 Yolov8 ~ Yolov11 模型,通过 ML.NET ...