美文网首页
Manim 笔记

Manim 笔记

作者: RulerMike | 来源:发表于2020-04-27 17:30 被阅读0次

    说明

    以下内容初版来自于链接: https://cai-hust.github.io/,感谢博主细致的整理,视频配置参数还请参考链接。
    这里对目录内容进行提取,以形成一个大致的框架然后编写和收集基础用例并后续上传 github。同时也会增加综合性例子加入其中,每个程序文件需要在开头注释说明文件内容,较难的步骤。
    另外,latex 是必须的公式传播媒介,也是数学公式可视化必备的工具,至少需要掌握常见数学公式的表达,推导,变换,相关内容也会更新到同个仓库。
    近来发现网络上关于 manim 的公开资料越来越丰富,大量的优质内容也被热心的传播者搬运到了 B 站等地方,这使得学习变得容易许多。

    显示动画

    1.play
    2.add()
    3.remove()
    4.wait()

    位置操作函数

    1.to_edge() 和 to_corner()
    2.move_to()
    3.next_to()
    4.shift()
    5.rotate()
    6.flip()

    基础图形

    文字类

    1.TextObject
    2.TexObject

    二维图形类

    1.Dot
    2.Circle
    3.Annulus
    4.Rectangle
    5.Square
    6.Ellipse
    7.Arc
    8.Line

    三维图形类

    1.Sphere
    2.Cube
    3.Prism
    4.Parametric Suface
    5.parametric Function

    群组类(VGroup)

    场景类

    二维场景 (GraphScene)

    1.setup_axes()
    2.get_graph()
    3.coords_to_point()
    4.point_to_coords()
    5.get_graph_label()
    6.get_vertical_line_to_graph()
    7.get_vertical_lines_to_graph()
    8.改变坐标标签的颜色
    9.二维场景的相机 z 轴没有长度

    三维场景 (ThreeDScene)

    1.set_camera_orientation()
    2.move_camera()
    3.等等

    坐标轴类

    二维坐标系(Axes)

    三维坐标系(ThreeDAxes)

    数字坐标系(NumberPlane)

    复数坐标系(ComplexPlane)

    附录

    常数

    1.颜色:
    见constants.py中COLOR_MAP中的列表
    2.方向:

    ORIGIN = np.array((0., 0., 0.))
    UP = np.array((0., 1., 0.))
    DOWN = np.array((0., -1., 0.))
    RIGHT = np.array((1., 0., 0.))
    LEFT = np.array((-1., 0., 0.))
    IN = np.array((0., 0., -1.))
    OUT = np.array((0., 0., 1.))
    X_AXIS = np.array((1., 0., 0.))
    Y_AXIS = np.array((0., 1., 0.))
    Z_AXIS = np.array((0., 0., 1.))
    # Useful abbreviations for diagonals
    UL = UP + LEFT
    UR = UP + RIGHT
    DL = DOWN + LEFT
    DR = DOWN + RIGHT
    
    TOP = FRAME_Y_RADIUS * UP
    BOTTOM = FRAME_Y_RADIUS * DOWN
    LEFT_SIDE = FRAME_X_RADIUS * LEFT
    RIGHT_SIDE = FRAME_X_RADIUS * RIGHT
    

    3.角度

    PI = np.pi
    TAU = 2 * PI
    DEGREES = TAU / 360
    

    4.距离

    SMALL_BUFF = 0.1
    MED_SMALL_BUFF = 0.25
    MED_LARGE_BUFF = 0.5
    LARGE_BUFF = 1
    
    DEFAULT_MOBJECT_TO_EDGE_BUFFER = MED_LARGE_BUFF
    DEFAULT_MOBJECT_TO_MOBJECT_BUFFER = MED_SMALL_BUFF
    

    Latex部分

    1.windows 安装 texlive,接下来初始学习了解参考以下文章:
    http://liuchengxu.org/blog-cn/posts/quick-latex/
    2.找到自己熟悉的公式编译方式,可以使用 vscode + latex-workshop 的方案
    3.练习积累各种公式。

    更新

    通过一段时间的使用,大致掌握了manim 简单数学动画代码的基本编写,但过程中也发现了许多新的问题,一个是对基础数学知识掌握不到位,一个是制作动画不够精致。接下来的一个长期计划是持续对manim 源代码和相关资料进行分析和学习。
    TODO:
    manim 源码分析计划。
    积累制作素材,学习背后的数学知识(傅里叶变换,矩阵坐标变换,3D曲面方程等等)

    相关文章

      网友评论

          本文标题:Manim 笔记

          本文链接:https://www.haomeiwen.com/subject/qenlwhtx.html