manim
未读
几何图形是manim中最重要的一类模块,manim内置了丰富的各类几何图形,本篇从最简单的点开始,逐个介绍manim中的几何模块。
manim中点相关的模块主要有3个:
Dot:通用的点
LabeledDot:在点的中间可以加一些说明文字
AnnotationDot:使用在注释场景中的点
Dot系列在manim各个模块中的位置大致如上图中所示。常用的使用代码如下
1Mobject = Dot(point=array([0., 0., 0.]), radius=0.08, stroke_width=0, fill_opacity=1.0, color=ManimColor('#FFFFFF'), 其他参数)
1. 主要参数点比较简单,所以参数不多,主要就是控制点的大小,颜色,透明度等等属性。 Dot对象:
参数名称
类型
说明
point
[float,float,float]
点的坐标
radius
float
点的半径
stroke_width
float
边框厚度
fill_opacity
float
透明度
color
...
今天我在互联网找到一个极为令我震惊的 Manim 演示效果,如果不是眼见为实的看到了实际效果,断然不敢相信这是真的,毕竟初中数学课本上没有讲过这个数学知识,同样是九年义务教育,别人怎么这么优秀。
1.引入库文件Manim 代码的实现,是通过 Python 的代码库,所以代码开始的时候,需要引入相关的函数库:
12from manim import * import numpy as np
2.引入相关场景12class RadialDotsAnimation(Scene): def construct(self):
3.定义小球数量1234# 小球数量num_dots = 48text_num_dots = Text(f"Number of Dots: {num_dots}").scale(0.5).to_corner(UL)self.play(Write(text_num_dots))
4.定义小球半径和颜色12345678910111213# 最大半径max_radius = 2# 小球颜色列表colors = [ RED ...
geogebra
未读
今天我们来学习如何在Geogebra中借助滑动条来平移图形。平移是初中几何数学中重要的图形操作,在Geogebra中平移图形,需要借助一个向量,然后通过更改向量与滑动条之间的关系,进而调控对图形的平移操作,下面我们来看演示过程。
1.创建平移对象我们在绘图区中使用绘图工具来绘制一个三角形,没有什么特殊的要求,只需要借助绘图工具来添加一个三角形就可以。
2.创建滑动条创建滑动条的方法比较简单,在工具栏中选择滑动条工具,鼠标点击就可以创建,
然后再点击绘图区,就可以创建一个滑动条
需要注意的是,滑动条的最大数值和最小数值需要做出调整,我这里最小值取0,避免平移的方向改变。最大值决定了图形平移的距离,也需要结合自己的需求。
3.创建向量同样是鼠标点击工具栏中的线段,在里面选择向量
同样是鼠标点击绘图区,就可以制作出自己需要的向量,向量的方向和大小没有关系,后期都可以调整,特别是向量的大小,我们需要结合滑动条来调控。
但是我们需要注意的是,创建的向量要注意起点和终点,我们需要的是滑动条与终点的结合。接下来,我们还需要对向量进行一下修改。
4.修改向量在代数区找到向量的终点点E,要看 ...
manim
未读
在Manim中,Elbow 是一个表示直角连接线的图形类,常用于示意图、流程图或需要显示垂直连接的情况。毋庸置疑的,这个形体直接继承自VMobject,也具有属性调控代码,下面我们来看具体的举例。
1.简单代码12345678from manim import *class ElbowExample(Scene): def construct(self): # 创建一个Elbow(默认角度为0,即向右上方) elbow = Elbow() self.play(Create(elbow)) self.wait()
这段代码就是创建一个简单的直角,属性都是默认的属性值,下面来看演示效果
2.属性介绍12345Elbow( width=0.2, # 每个臂的长度 angle=0, # 旋转角度(弧度) **kwargs # 其他VMobject参数)
从当前来看,Elbow仅仅是两个属性值,一个是宽度width,直角边长,另一个是角度angle,指的是旋转的角度。 ...
manim
未读
文本的样式主要指颜色和字体相关的属性设置。对于manim的两个文本对象 Text和 Tex来说, Text对象有更多的属性可以调整样式,相对来说,由于 Tex主要用来显示数学公式,所以关于样式的属性要少一些。下面介绍一些我在视频制作时最常用的一些颜色和字体相关的属性。
1. 颜色相关颜色设置主要分为单色,渐变色两种,对于 Text对象,manim还提供了更加精细的按字符设置的属性。
1.1 单色单色设置通过 color属性。
123456Text("hello world", color=RED)Text("你好,世界", color=YELLOW)Text("こんにちは世界", color=GREEN)Tex(r"$a^2 + b^2 = c^2$", color=RED)Tex(r"$E = mc^2$", color=YELLOW)Tex(r"$e^{i\pi} + 1 = 0$", color=GREEN)
运行效果:
1.2 渐变色 ...
manim
未读
在 Manim(数学动画引擎) 中,RoundedRectangle 是一个常用的形状类,用于创建带有圆角的矩形。今天我们来学习一下Manim中的圆角矩形,从简单的例子开始做测试,先来看下面的例子。
1.简单例子就是简单的创建一个蓝色的圆角矩形,里面涉及到了一些参数:
1234567891011121314from manim import *class RoundedRectangleExample(Scene): def construct(self): # 创建圆角矩形 rr = RoundedRectangle( corner_radius=0.5, # 圆角半径 width=4, # 宽度 height=2, # 高度 color=BLUE, fill_opacity=0.5 ) self.play(Create(rr)) self.wait()
来 ...
在使用 Hexo 博客程序的时候,总是避免不了给博客添加一个合理的分类和标签,今天我们就来看一看如何给 Hexo 博客添加分类和标签,当然了,我们给 Hexo 博客添加分类和标签,也是使用代码命令来创建的,先来看创建分类选项。
1.创建分类在 Hexo 创建分类页面的方法很简单,我们来看下面的过程
1.1创建指令我们在博客所在的文件夹打开命令行,然后在里面执行以下命令:
1hexo new page categories
成功之后会给出相对应的提示
1INFO Created: ~/Documents/blog/source/categories/index.md
当然,因为路径的问题,代码提示中INFO Created:的提示路径也不会相同,但是后面的
1/source/categories/index.md
代码内容是相同的,当然了,如果你已经创建过分类页面,会出现
1/source/categories/index-1.md
的信息提示,然后我们进入路径文件,找到里面的index.md文件,打开后默认内容是这样的
1234---title: 文章分类date: 20 ...
manim
未读
在代数问题中,矩阵是必不可少的工具,manim中提供了一套展示矩阵(Matrix)的模块, 专门用于在动画中显示矩阵格式的数据。关于矩阵的类主要有4个:
Matrix:通用的矩阵
IntegerMatrix:元素是整数的矩阵
DecimalMatrix:元素包含小数的矩阵
MobjectMatrix:元素可以是图形的矩阵
其实IntegerMatrix,DecimalMatrix,MobjectMatrix都是继承自Matrix的,只要掌握了Matrix即可,其他几个不过是Matrix的特殊情况。
1. 主要参数参数基本都是为了控制矩阵的显示样式。
参数名称
类型
说明
matrix
str
一个二维数组,也就是矩阵的数值
v_buff
float
矩阵元素的行间距
h_buff
float
矩阵元素的列间距
bracket_h_buff
float
矩阵括弧和元素之间的距离
bracket_v_buff
float
矩阵括弧的高度
add_background_rectangles_to_entries
bool
是否给矩阵元素加一个矩形背 ...
manim
未读表格是一种常见的数据展示形式,manim提供了Table模块专门用于显示表格形式的数据。表格Table和上一节介绍的矩阵Matrix都是用来显示二维数据的,不过,Table的表现力更强,比如,它可以显示表头信息,列名信息等等。
Table模块也细分了多个对象:
通用Table:显示任何内容
DecimalTable:表格内容为数字
IntegerTable:表格内容为整数
MathTable:表格内容是公式
MobjectTable:表格内容是图形
其中,DecimalTable,IntegerTable,MathTable和MobjectTable都是继承自Table的。 本篇重点介绍Table对象,其他对象是Table的一个特例。
1. 主要参数主要参数包括:
参数名称
类型
说明
table
list[list]
表格中显示的数据
row_labels
list[VMobject]
行标签,相当于表格的第一列
col_labels
list[VMobject]
列标签,相当于列名,表格的第一行
top_left_entry
VMobject
表格左上角 ...
manim
未读
对于长篇大段的文本显示,manim中专门提供了一个Paragraph类。 使用Paragraph,就不需要用拼接Text的方式来显示大段的文本。
1. 主要参数Paragraph可以看作是基于Text的扩展,所以Text的默认参数Paragraph也可以使用。不过当你需要显示多行文本的时候,用Paragraph更加方便。
当然Paragraph特有的参数还有:
参数名称
类型
说明
text
list
可以输入多个字符串
line_spacing
float
行间距
alignment
str
对齐方向
Text也有text参数,是str类型,只能输入一个字符串, 而Paragraph的text参数是不定长的列表,可以输入多个字符串,每个字符串显示成一行。
line_spacing参数Text也有,不过Text多用来显示单行的文本,这个参数用处不大, 而Paragraph则用来显示多行文本,所以line_spacing对Paragraph更加有用。
alignment参数用来设置段落文本各行的对齐方式的,默认左对齐,还可以设置右对齐和居中对齐。
2. 使用示 ...
manim中主要有3个用于显示文本内容的对象,前两篇已经介绍过Text和Paragraph。 本篇介绍最后一个MarkupText,与前两个不同的是,MarkupText的文本中支持实用一些HTML的语法, 因此,它的表现力更胜前两个。 MarkupText在manim各个模块中的位置大致如上图中所示。
1. 主要参数MarkupText除了支持在文本中使用HTML语法,也提供了丰富了参数。
参数名称
类型
说明
text
str
显示的文本
font
str
字体
warn_missing_font
bool
字体缺失时是否警告提示
fill_opacity
float
透明度
stroke_width
float
字体线条粗细
color
str
颜色
line_spacing
float
行间距(多行文本时生效)
slant
str
斜体
weight
float
粗体
gradient
tuple
渐变色
justify
bool
是否对齐
should_center
bool
是否居中
height
float
文 ...
manim
未读
本质上,manim 提供了三个不同的“概念”,您可以将它们组合在一起以生成数学动画:数学物体(mathematical object,简称 moject )、动画( animation )和场景( scene )。在接下来的介绍中可以看到,这三个概念中的每一个都作为一个单独的“类”被独立的执行。这三个类是:Mobject、Animation 和 Scene。
MobjectMobject 是 manim 动画中基本的构造块(building block)。每一个从 Mobject 派生出的类代表着一个可以被放置在屏幕上的物体。例如,Circle、Arrow 和 Rectangle 等简单形状都是 mojects 。更复杂的构造如 Axes、FunctionGraph 或 BarChart 也是mojects。
如果你试图在屏幕上显示 Moject 的一个实例,你只会看到一个空的框架,原因是 Mobject 类是所有其他 Mobject 的抽象基类,即它没有任何可以在屏幕上显示的预先确定的视觉形状。它只是一个可以展示的东西的骨架,因此,您很少需要使用 Moject 的普通实例;相反, ...
博客设置
未读
这篇文章是安和鱼主题的一篇美化文章,主要是针对安和鱼主题的调用备案信息的美化,默认的安和鱼备案信息说不上丑陋,但是过于简单,我么可以看一下默认的备案信息调用效果:
今天我们将这个备案信息代码稍微美化一下,下面我们来看实际的操作过程:
1.添加信息字段我们需要对博客根目录下面的 _config.yml 进行字段添加,打开这个文件之后,找一个合适的位置添加以下代码
123#建议添加在 timezone 下面,你也可以添加在其他位置icp: 填写 ICP 备案号gb: 填写公网安备号
2.添加并引用 CSS完成了第一步后我们需要为页脚容器进行样式定义。
在博客主题的 /source/ 目录中的 css 文件夹中,创建一个名为 coustom.css 的文件。
在新建的 custom.css 文件中添加如下代码:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 ...
manim
未读
Manim 输出文件位置的相关知识上节,我们执行了以下命令
1manim -pql scene.py SquareToCircle
剖析代码执行过程:首先,此命令在文件 scene.py 上执行 manim,该文件包含动画代码。此外,该命令告诉 manim 要渲染的场景,也就是 SquareToCircle。这是必要的,因为单个场景文件可能包含多个场景。接下来,-p 命令 manim 渲染后播放,而 -ql 命令 manim 以低质量渲染该场景。
视频渲染后,您将看到 manim 生成了一些新文件,项目文件夹将如下所示:
1234567891011project/├─scene.py└─media ├─videos | └─scene | └─480p15 | ├─SquareToCircle.mp4 | └─partial_movie_files ├─text └─Tex
主要输出在 media/videos/scene/480p15/SquareToCircle.mp4 中。默认情况 ...









