首页 > 其他分享 >Manim 学习笔记(一)--常用的几个函数和操作

Manim 学习笔记(一)--常用的几个函数和操作

时间:2024-07-26 09:11:59浏览次数:16  
标签:动画 play -- self 笔记 vector np manim Manim

常用的一些操作

【注:随版本升级,有些操作和指令会有改动】

from manim import * 从 manim 中导入了需要用到的模块

class Hello_World(Scene) 创建一个继承自Scene的一个类;

def construct(self) construct方法对于manim很特殊,manim调用这个方法来创建动画。所以基本上这个方法是在运行manim时必不可少的;

x=Text("内容",color=颜色) 创建一个对象,内容为“内容”,颜色为“颜色”

self.play(Write(name) 动画输出 name 对象的内容

self.wait(x) 等待 x 秒

x=Rectangle(color=颜色) 创建一个矩形,颜色为“颜色”

x.surround(y) 对象 x 包裹对象 y

x=VGroup(a,b) 合并 a,b 到一个群组中

x.scale() 设置缩放大小

x.set_color 设置颜色

x.set_height 设置尺寸

self.play(FadeIn(x)) 让 x 对象渐入显示

self.play(FadeOut(x)) 让 x 对象渐出

self.play(Transform(x,y)) 从 x 渐变到 y

self.ApplyMethod(x.属性,number)) 把 x 的某个属性放大 number 倍,x 可以是一个群组

x=Circle() /Annulus()/Ellipse()/Square()/Triangle()/Polygon()/Line() 画圆、圆环、椭圆、方形、三角形、多边形、直线

属性:color fill_color fill_opacity height width 颜色 内部填充颜色 不透明度 高度 宽度

或用 x.set_xxxx

self.add(x) 对象 x 直接出现

self.play(GrowFromCenter(x)) 让 x 对象从中间一步步生成

self.play(FadeInFromDown(x)) 让 x 对象从下面渐入

self.play(FadeInFrom(x,vector)) 让 x 对象从 vector 方向渐入

x=Line([x1,y1,z1],[x2,y2,z2]) 一条起点 (x1,y1,z1) ,终点 (x2,y2,z2)

x=Annulus(inner_radius,outer_radius) 内半径,外半径

x.shift() 接受一个向量,图形初始位置的平移,其中可以填 DOWN,LEFT,RIGHT,UP 常量

LEFT = np.array([-1,0,0])

RIGHT = np.array([1,0,0])

UP = np.array([0,1,0])

DOWN = np.array([0,-1,0])

IN = np.array([0,0,-1])

OUT = np.array([0,0,1])

单位长度 一个默认的圆(Circle)其半径为一个单位,默认的动画场景高度为8个单位

B.next_to(A,vecor) 物体 B 在 vector(如:np.array([1,2,0]),UP) 定义方向上挨着 A

B.rotate(degree) 让B旋转 degree(弧度制)

self.play(ApplyMethod(A.shift, vector)) 直接使用shift等方式改变的位置是没有动画的,如果要动画的话可以使用这个来实现A以向量vector进行移动的动画

x.to_edge(UP/RIGHT/DOWN/LEFT) 到边缘

x.get_corner(vector) x 的 vector 角落

x.match_color(y) 让 x 和 y 颜色一样

x.bg=BackGroundRectangle(x,属性) x 背景的属性设置

x.rotate(TAU*(n/360)) 将 x 旋转 n 度 ,其中, TAU=2*np.pi

x.set_color_by_gradient(color1,color2,...) x 颜色按设定渐变

书写 LaTeX 的时候,用 x=Tex("") 等价于 x=Text("$$"),其中,‘\’ 的意义成为空格,两个'' 才表示后跟公式

几个常用的技巧:

优化动画出现/消失方式 manim使用(五) 动画效果-创建动画 - 知乎 (zhihu.com)
manim边学边做--MathTex

标签:动画,play,--,self,笔记,vector,np,manim,Manim
From: https://www.cnblogs.com/zjzBlogs/p/18324532

相关文章

  • JDK,JRE和JVM
    JDK,JRE和JVM目录JDK,JRE和JVMJDK、JRE和JVM之间的关系JDK(JavaDevelopmentKit)​ JDK为Java应用程序提供了基本的开发和运行环境,是整个Java的核心,包括:​ 1.Java运行环境(JRE)​ 2.JDK类库,如:java.lang、java.io、java.awt、java.swing等类(lib)​ 3.Java开发工具,如:javac.exe(编......
  • 进制转换
    java针对整数常量,提供了4种表现形式二进制:由0,1构成,逢2进1,由0b开头八进制:由0,1,2,3,4,5,6,7构成,逢8进1,由0开头十进制:由0,1,2,3,4,5,6,7,8,9构成,逢10进1,java中整数默认是十进制的十六进制:由0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f构成,逢16进1,由0x开头进制之间的转换:1、其他进制转十进制?(十进制)12345-......
  • JDK的安装和配置
    JDK的安装和配置目录JDK的安装JDK的安装1.检查系统要求:确保计算机满足JDK安装所需的最低系统要求,包括处理器、内存和磁盘空间等。2.下载JDK安装包:*访问Oracle官网(https://www.oracle.com/java/),在页面上单击“DownloadJava”。根据操作系统类型(如Windows)和位数(如64位),选择......
  • 标识符的命名规则
    标识符:就是给类,接口,方法,变量等起名字时使用的字符序列起名字时的规则(法律):1.英文大小写字母2.数字字符3.$和_起名字时的规范(道德):1、不能以数字开头2、不能是关键字3、不能除$和_以外的特殊符号出现4、要见名知意(推荐是英语单词构成,拼音构成)常见......
  • 【摘译+整理】System.IO.Ports.SerialPort使用注意
    远古的一篇博客,内容散落于博文和评论https://sparxeng.com/blog/software/must-use-net-system-io-ports-serialportC#和.NETFramework提供了一种快速的应用程序开发,非常适合需要随着硬件设计的发展跟踪不断变化的需求的早期开发。在大多数方面都很理想。但.NET附带的Sy......
  • t4模板无法加载文件或程序集system.runtime
        在.net6.0环境下使用T4模板生成代码报错错误正在运行转换:System.IO.FileNotFoundException:未能加载文件或程序集“System.Runtime,Version=6.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。系统找不到指定的文件。......
  • SpringBoot中集成screw(螺丝钉)实现数据库表结构文档生成
    场景经常会有编写数据库表结构文档的时间付出,那能否通过简单配置实现自动生成。screwscrew(螺丝钉)英:[skruː]~简洁好用的数据库表结构文档生成工具。https://gitee.com/leshalv/screw特点简洁、轻量、设计良好多数据库支持多种格式文档灵活扩展支持自定义模板数......
  • 使用 Python 构建一个简单的 REST API
    使用Python构建一个简单的RESTAPI简介本文档将引导您使用Python和Flask框架构建一个简单的RESTAPI。我们将创建一个API,用于管理一个虚拟的书籍数据库。准备工作Python环境:确保您的系统上安装了Python3.x。Flask框架:使用pip安装Flask:pipinstallFla......
  • 运维文档:MySQL 数据库备份与恢复
    运维文档:MySQL数据库备份与恢复1.概述本文档旨在提供MySQL数据库备份与恢复的详细步骤和操作指南,以确保数据的安全性和可恢复性。2.备份方案2.1备份类型逻辑备份:备份数据库中的数据文件,包括数据表、视图、存储过程等。物理备份:备份整个数据库实例,包括数据文件、日......
  • DevExtreme框架由于数据量太大,加载太慢,采用分页方式进行处理(基本上所有的操作都从客户
    首先我们需要引入官方的一个函数:importCustomStorefrom'devextreme/data/custom_store';我们需要通过这个函数去处理交互数据 先放个图: 上图中跟分页有关的属性分别是:1.:data-source="store",这个是存放数据源用的,需要用到我们上面的CustomStore函数,2.:remote-oper......