manim边做边学--圆柱体

Cylinder是Manim中用于创建圆柱体对象的类。

Cylinder类在制作数学、物理或工程领域的动画时,可用于以下的场景中:

  1. 演示几何概念 :使用Cylinder类创建圆柱体,并通过改变其参数和方法来演示圆柱体的各种几何性质,如体积、表面积等。
  2. 模拟物理现象 :使用Cylinder类来模拟圆柱体的滚动、碰撞等物理现象。
  3. 展示工程设计:使用Cylinder类来创建圆柱体模型,并通过动画展示其设计过程或工作原理。

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

1. 主要参数

Cylinder的主要参数有:

参数名称 类型 说明
radius float 圆柱体的半径
height float 圆柱体的高度
direction np.ndarray 圆柱体主轴的方向
v_range float 圆柱体在垂直方向上的参数化范围
show_ends bool 是否显示圆柱体的两端
resolution int 圆柱体的精细程度

2. 主要方法

Cylinder类特有的方法主要有3个:

名称 说明
add_bases 动态个圆柱体添加底面
get_direction 用于获取圆锥体的方向向量。这个方向向量通常是一个三维向量,表示圆锥体在空间中的朝向。
set_direction 用于设置圆锥体的方向向量。通过传入一个新的三维向量,可以改变圆锥体在空间中的朝向。

3. 使用示例

下面通过几个示例演示圆柱体(Cylinder)的参数和方法的使用。

3.1. 基本圆柱体

这个示例展示如何使用Cylinder类的radius和height参数来创建一个基本的圆柱体对象。

python 复制代码
c = Cylinder(radius=1, height=2)

3.2. 设置圆柱体方向

此示例通过调用set_direction方法改变圆柱体的方向,使其不再沿默认方向放置。

python 复制代码
c = Cylinder(
    radius=1,
    height=2,
    show_ends=False,
)
# 设置圆柱体的朝向
c.set_direction(UP / 2 + LEFT / 2)

3.3. 动态添加底面

此示例先创建一个不含底面的圆柱体,然后通过add_base方法,动态的向圆柱体添加底面。

添加前后通过旋转看清有无底面的区别。

python 复制代码
c = Cylinder(
    radius=1,
    height=2,
    show_ends=False,
)

# 添加底面
c.add_bases()

3.4. 圆柱体动画

此示例展示了如何为圆柱体添加动画效果,先用淡入效果 创建一个圆柱体,然后使其相对于X轴旋转90度。

python 复制代码
c = Cylinder(radius=1, height=2)
self.play(FadeIn(c))
self.play(Rotate(c, PI / 2, axis=RIGHT))

4. 附件

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

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

相关推荐
雾游15 分钟前
用上 uv 后,搭建 Python 项目终于顺手了:从安装到环境恢复,一篇讲清
python
范中勤16 分钟前
LangGraph Checkpointer 封装(下):with 的双层上下文与 MemorySaver 为什么不用 with
python·大模型·llm·agent·langgraph
鸿业远图科技20 分钟前
丹东市_公交线
python
打工仔折腾 AI40 分钟前
在线PDF工具隐私焦虑?把BentoPDF部署到极空间NAS本地处理
人工智能·后端·python·pdf·ai agent 实战
2603_965148111 小时前
商品价格监控 API 接口:从原理到实战的完整指南
java·前端·数据库·python·生活
数字化转型分享点滴1 小时前
机加工MES落地先连设备还是先上工单?一份车间实施参考
python·安全
阿皮 API1 小时前
Shopee虾皮商品详情API接口调用实战:Python获取东南亚商品数据与JSON解析
开发语言·python·json
鸿业远图科技1 小时前
大连市_公交线
python
青春不朽5121 小时前
Python 里 a is b 有时 True 有时 False?小整数缓存和常量折叠的底层真相
python·spring·缓存
高洁012 小时前
数字孪生、具身智能、世界模型三者交叉
人工智能·python·深度学习·机器学习