manim边做边学--圆环面
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边做边学--圆环面的更多相关文章
- 边做边学入门微信小程序之仿豆瓣评分
微信小程序由于适用性强.逻辑简要.开发迅速的特性,叠加具有海量活跃用户的腾讯公司背景,逐渐成为了轻量级单一功能应用场景的较佳承载方式,诸如电影购票.外卖点餐.移动商城.生活服务等场景服务提供商迅速切入 ...
- Three.js基础探寻五——正二十面体、圆环面等
除了立方体.平面.球体,Three.js还提供了很多其他几何形状. 1.圆形 CircleGeometry可以创建圆形或者扇形: THREE.CircleGeometry(radius, segmen ...
- Grails边做边学入门篇[1]--------大家一起来动手建立project和Domain
近期工作比較忙,没空写博客了.我发现每周五的下午都是我最放松的时候,可能是迟延症的缘故吧...总是寄希望于周末,慢慢的.我的周末就被工作占领了. 希望大家不要有这种坏毛病.今日事,今日毕.当然我们程序 ...
- 《Three.js 入门指南》3.1.1 - 基本几何形状 -圆环面(TorusGeometry)
3.1 基本几何形状 圆环面(TorusGeometry) 构造函数 THREE.TorusGeometry(radius, tube, radialSegments, tubularSegments ...
- 技术的止境(客户价值第一,快速实现第二,边做边学,迅速成为牛人。紧贴客户的需求去做技术,立于不败之地。追求的目标:把一项产品去做好,用产品去养活自己和家人)good
作为一个依靠技术来谋生的程序员,我最近一直在思考一个问题,有限的生命里,面对无限的技术更新,我要研究到什么程度才能算是完成我的成为技术大牛的目标呢?换而言之,那就是技术的止境在哪儿呢?深入的思考下去, ...
- 【Leetcode 做题学算法周刊】第四期
首发于微信公众号<前端成长记>,写于 2019.11.21 背景 本文记录刷题过程中的整个思考过程,以供参考.主要内容涵盖: 题目分析设想 编写代码验证 查阅他人解法 思考总结 目录 67 ...
- 做fzu oj 1045 做减法学到的sprintf()函数
题目 做题一直输不出答案,于是就上网去百度了这题的解题,发现解答十分的简短,而且其中我看见了平时没见过的函数,sprintf(). 于是就百度sprintf()的使用. 如下: 函数功能:把格式化的数 ...
- 【Leetcode 做题学算法周刊】第一期
首发于微信公众号<前端成长记>,写于 2019.10.28 背景 本文记录刷题过程中的整个思考过程,以供参考.主要内容涵盖: 题目分析设想 编写代码验证 查阅他人解法 思考总结 目录 1. ...
- 【Leetcode 做题学算法周刊】第二期
首发于微信公众号<前端成长记>,写于 2019.11.05 背景 本文记录刷题过程中的整个思考过程,以供参考.主要内容涵盖: 题目分析设想 编写代码验证 查阅他人解法 思考总结 目录 20 ...
- 【Leetcode 做题学算法周刊】第三期
首发于微信公众号<前端成长记>,写于 2019.11.13 背景 本文记录刷题过程中的整个思考过程,以供参考.主要内容涵盖: 题目分析设想 编写代码验证 查阅他人解法 思考总结 目录 35 ...
随机推荐
- AArch64 汇编学习笔记
PIE(Position Independent Executable,位置无关的可执行文件)通过随机化可执行文件各个部分在虚拟内存中的地址使得攻击者无法通过预测地址进行恶意行为. 汇编开发工具: a ...
- dig 使用
dig dig(Domain Information Groper)是一个用于 DNS 查询的命令行工具,广泛用于查看域名系统的相关信息. 基本用法 # 查询域名的 A 记录(IPv4 地址): di ...
- “java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/LoopTag”解决方法
在运行jsp项目的时候出现了这个java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/LoopTag报错,一直尝试更换jar文件等也没 ...
- Go 必知必会:探索 Go 语言中的数组和切片深入理解顺序集合
文末有面经共享群 在 Go 语言的丰富数据类型中,数组和切片是处理有序数据集合的强大工具,它们允许开发者以连续的内存块来存储和管理相同类型的多个元素.无论是在处理大量数据时的性能优化,还是在实现算法时 ...
- [C#基础1/21] C#概述
Notion原笔记 1. C# 简介 1.1 C# 定义 C# 在继承 C 和 C++ 强大功能的同时去掉了一些它们的复杂特性,使其成为 C 语言家族中的一种高效强大的编程语言 1.2 C# 用途 用 ...
- CSS & JS Effect – Breadcrumb Navigation 面包屑
介绍 Breadcrumb 长这样 主要就是让用户清楚自己在哪个 page, 然后可以轻松返回上一页. Step by Step HTML <div class="container& ...
- Asp.net core 学习笔记 Image processing (ImageSharp)
请移步修订版 : ASP.NET Core Library – ImageSharp .net 的生态烂是真的, 很多硬需求都没有人做, 开源的做着做着就闭源了的也很多. 今天说说 image pro ...
- Java!!冲
开始学习Java!!!
- 让人眼前一亮的开源项目「GitHub 热点速览」
时隔两周,我又带着让人眼前一亮的开源项目回来了! 告别数据线.蓝牙.WiFi 和网络,只需用手机的摄像头扫描一张动图条形码(需安装应用),就能在设备间传输文件的 libcimbar,一款无需联网和蓝牙 ...
- [TK] Blocks 单调栈
题目描述 给出 \(N\) 个正整数 \(a[1..N]\) ,再给出一个正整数 \(k\) ,现在可以进行如下操作:每次选择一个大于 \(k\) 的正整数 \(a[i]\) ,将 \(a[i]\) ...