Manim数学动画
安装
macOS
1 | brew install python3 manim |
获取源代码
1 | git clone https:// |
快速开始
圆动画
代码:Circle.py
1 | from manim import * |
生成动画:
1 | manim -pql Circle.py CreateCircle |
Manim Community v0.18.1
[12/09/24 18:12:36] INFO Animation 0 : Partial movie file written in ‘/Users/paul/Desktop/BaiduNetdisk/01 scene_file_writer.py:527
NOI/04数学动画/media/videos/Circle/480p15/partial_movie_files/CreateCircle/118581
8338_41213021_223132457.mp4’
INFO Combining to Movie file. scene_file_writer.py:617
INFO scene_file_writer.py:737
File ready at ‘/Users/paul/Desktop/BaiduNetdisk/01
NOI/04数学动画/media/videos/Circle/480p15/CreateCircle.mp4’
INFO Rendered CreateCircle scene.py:247
Played 1 animations
INFO Previewed File at: ‘/Users/paul/Desktop/BaiduNetdisk/01 file_ops.py:231
NOI/04数学动画/media/videos/Circle/480p15/CreateCircle.mp4’
Manim 命令行参数
1 | manim --help |
–format [png|gif|mp4|webm|mov]
-p –preview: 完成后播放场景动画
-r –resolution: Resolution in “W,H” for when 16:9 aspect ratio isn’t possible.
-q, –quality [l|m|h|p|k] Render quality at the follow resolution framerates, respectively:
【l】854x480 15FPS, 【m】1280x720 30FPS, 【h】1920x1080 60FPS, 【p】2560x1440 60FPS, 【k】3840x2160 60FPS
–fps, –frame_rate FLOAT Render at this frame rate.
动画示例二
1 | from manim import * |
Manim
是一个功能强大的 Python 库,用于生成数学动画。它包含了许多类来支持不同的动画、图形、文本和其他可视化效果的生成。
以下是 Manim 中的一些主要类,按照功能进行分类列出。需要注意,Manim 是一个庞大的库,因此这里只能列出核心和常用的类。
1. 场景相关类
这些类定义了动画场景的基本结构:
Scene
- 所有场景的基类。MovingCameraScene
- 支持动态摄像机操作的场景。ThreeDScene
- 用于创建 3D 场景。VectorScene
- 用于矢量数学演示的场景。ZoomedScene
- 支持放大动画的场景。
2. Mobjects(动画对象)
Mobject
是 Manim 中所有图形对象的基类。以下是其子类:
2.1 几何图形类
Square
- 绘制正方形。Circle
- 绘制圆。Rectangle
- 绘制矩形。Polygon
- 绘制多边形。Ellipse
- 绘制椭圆。Line
- 绘制线段。Arrow
- 绘制带箭头的线段。DashedLine
- 绘制虚线。Dot
- 绘制点。Annulus
- 绘制圆环。
2.2 文本类
Text
- 显示普通文本。MathTex
- 显示 LaTeX 数学公式。Code
- 显示代码。MarkupText
- 支持 HTML 和 Markdown 格式的文本。
2.3 坐标系类
Axes
- 绘制笛卡尔坐标系。NumberLine
- 绘制数轴。ThreeDAxes
- 绘制 3D 坐标系。BarChart
- 绘制柱状图。Histogram
- 绘制直方图。
2.4 图像类
ImageMobject
- 用于加载和显示图像。SVGMobject
- 加载并显示 SVG 矢量图。PMobject
- 颗粒化对象。
2.5 曲线和路径
ParametricFunction
- 绘制参数化曲线。FunctionGraph
- 绘制函数图像。Arc
- 绘制弧线。BezierCurve
- 绘制贝塞尔曲线。
3. 摄像机类
用于管理场景视角:
Camera
- 摄像机的基础类。MovingCamera
- 支持动态移动的摄像机。ThreeDCamera
- 3D 摄像机类。
4. 动画类
用于控制对象的动态变化:
Animation
- 所有动画的基类。Create
- 动画化创建一个对象。FadeIn
- 淡入动画。FadeOut
- 淡出动画。Transform
- 将一个对象变形为另一个对象。Rotate
- 旋转动画。ScaleInPlace
- 缩放动画。Wiggle
- 对象抖动动画。MoveAlongPath
- 沿路径移动。
5. 颜色和样式相关类
Color
- 管理颜色。VGroup
- 组合多个Mobject
的类。
6. 3D 专用类
Surface
- 创建曲面。Sphere
- 绘制球体。Cube
- 绘制立方体。Cone
- 绘制圆锥。Cylinder
- 绘制圆柱。ParametricSurface
- 绘制参数化表面。
7. 实用工具类
ValueTracker
- 动态值跟踪器,用于动态更新变量。DecimalNumber
- 显示动态数字。
如果你需要查看 Manim 的所有类,可以通过以下方法在代码中列出:
1 | python |
这个代码会输出 Manim 中的所有类。如果你需要详细了解某个类的功能,可以通过阅读 Manim 的文档或源代码进一步研究。