- VisualStudio2022插件的安装及使用-编程手把手系列文章
- pprof-在现网场景怎么用
- C#实现的下拉多选框,下拉多选树,多级节点
- 【学习笔记】基础数据结构:猫树
圆弧形可以算是一种特殊的圆形,它是圆形的一部分。 manim中,单独为圆弧形状封装了几个模块:
Arc
:通用的圆弧,根据半径和角度来绘制圆弧ArcBetweenPoints
:根据两个点和角度来绘制圆弧AnnularSector
:环形圆弧,相当于是圆环的一部分Sector
:扇形,始终是1/4个圆环。其中,ArcBetweenPoints和AnnularSector继承自Arc,Sector继承自AnnularSector.
圆弧系列的模块位于manim中的Mobject之下.
模块Arc的主要参数有:
参数名称 | 类型 | 说明 |
---|---|---|
radius | float | 圆弧的半径 |
start_angle | float | 圆弧开始的弧度 |
angle | float | 圆弧的弧度 |
num_components | int | 组成弧的片段,这个值越大,弧越圆滑 |
arc_center | Point3D | 圆弧对应的圆心位置 |
圆弧的起点和终点是由start_angle和angle控制的, start_angle参数控制圆弧的起点,默认值是0(圆心右边为0度); angle参数是圆弧的弧度,start_angle + angle的值就是圆弧的终点, angle是逆时针计算的.
模块ArcBetweenPoints的主要参数有:
参数名称 | 类型 | 说明 |
---|---|---|
start | Point3D | 圆弧的起点 |
end | Point3D | 圆弧的终点 |
angle | float | 圆弧的弧度 |
raduis | float | 圆弧的半径 |
这个模块是根据两个点(start和end)来绘制圆弧, angle和raduis参数只能设置一个,用来控制圆弧的弧长。 start和end固定时,angle越大,弧长越长;raduis越大,弧长越短.
模块AnnularSector的主要参数有:
参数名称 | 类型 | 说明 |
---|---|---|
inner_radius | float | 环状弧形的内半径 |
outer_radius | float | 环状弧形的外半径 |
start_angle | float | 环状弧形开始的弧度 |
angle | float | 环状弧形的弧度 |
inner_radius和outer_radius的差形成了一个环形; start_angle和angle的含义与模块Arc中的同名参数一样.
模块Sector的主要参数:
参数名称 | 类型 | 说明 |
---|---|---|
inner_radius | float | 环状弧形的内半径 |
outer_radius | float | 环状弧形的外半径 |
Sector模块只有inner_radius和outer_radius两个参数,因为它默认为1/4个圆环.
这几个模块的作用主要是展示图形,所以方法不多,常用的有两个:
名称 | 说明 |
---|---|
get_arc_center | 获取弧形当前的圆心坐标 |
move_arc_center_to | 设置弧形新的圆心坐标 |
下面分别针对4种圆弧形的模块的参数,演示一些示例.
通用的的圆弧Arc是最常用的,start_angle和angle设置圆弧的起点和弧度, arc_center设置圆弧的位置,radius控制圆弧的大小.
Arc(
arc_center=LEFT * 2,
angle=PI,
)
Arc(
radius=1.5,
arc_center=RIGHT,
angle=PI,
)
Arc(
start_angle=PI / 2,
angle=PI / 2,
arc_center=LEFT * 2 + DOWN * 2,
)
Arc(
start_angle=PI,
angle=PI * 3 / 2,
arc_center=RIGHT + DOWN * 1.5,
)
从固定的两点生成圆弧ArcBetweenPoints也是在制作动画时常用的方式, 参数start和end设置圆弧的起点和终点; angle和radius设置圆弧的弯曲程度,这两个参数只能使用一个,同时设置时只有radius生 。
ArcBetweenPoints(
start.get_center(),
end.get_center(),
radius=0.8,
)
ArcBetweenPoints(
start.get_center(),
end.get_center(),
radius=1.6,
)
ArcBetweenPoints(
start.get_center(),
end.get_center(),
angle=PI / 2,
)
ArcBetweenPoints(
start.get_center(),
end.get_center(),
angle=PI,
)
前两个示例用radius控制圆弧的度数,后两个示例用angle控制圆弧的度数.
环形的圆弧AnnularSector可以理解成增加了厚度的圆弧。 它可以使用Arc的参数,不同之处在于它的半径有两个,一个是inner_radius,一个是outer_radius。 这两个半径之差就是环形的厚度.
AnnularSector(
inner_radius=0.5,
outer_radius=1.5,
angle=PI,
)
AnnularSector(
inner_radius=0.5,
outer_radius=0.8,
angle=PI,
)
AnnularSector(
start_angle=PI / 2,
angle=PI / 2,
inner_radius=0.5,
outer_radius=1.5,
)
AnnularSector(
start_angle=PI,
angle=PI * 3 / 2,
inner_radius=0.5,
outer_radius=0.8,
)
扇形Sector是一种简化的AnnularSector,它固定为1/4个圆环.
Sector(
inner_radius=0.5,
outer_radius=1.5,
)
Sector(
inner_radius=0.5,
outer_radius=0.8,
)
Sector(
inner_radius=1,
outer_radius=1.5,
)
Sector(
inner_radius=0.3,
outer_radius=1.8,
)
文中完整的代码放在网盘中了(arc.py), 下载地址: 完整代码 (访问密码: 6872) 。
最后此篇关于manim边学边做--圆弧形的文章就讲到这里了,如果你想了解更多关于manim边学边做--圆弧形的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我发现当文本超过 20 行时,此动画需要花费大量时间来渲染。我可以做些什么来加快速度吗? import itertools as it class FormulaExample(Scene): d
请您向我解释一下什么是 VGroup 以及它有什么用处?我试图寻找它,但显然无济于事,没有太多的文档。提前致谢。 最佳答案 基本上是一组VMobjects .所以说你有一些方程由多个单独的 Texmo
你能画对角线/箭头/任何看起来像你在manim数学方程中抵消的东西吗? 最佳答案 最接近的定义是 Cross ,但这并不完全是您要找的,我喜欢用这个: class Cancel(VGroup):
希望你们一切都好! 我想知道如何在 manim 中缩小文本。 我知道你可以做 text.scale(0.8),但我想知道使用后如何做。 例如, text.scale(0.8) self.play(Wr
希望你们一切都好! 我想知道如何在 manim 中缩小文本。 我知道你可以做 text.scale(0.8),但我想知道使用后如何做。 例如, text.scale(0.8) self.play(Wr
ORIGIN 中有一个正方形位置,我想将它移动到 UP*3 并使用以下代码片段同时缩放到 0.5: sq = Square() self.add(sq) self.play(ApplyMethod(s
我在 Manim Community v0.16.0.post0 中有以下文本: dioscuri = Text("DIOSCURI", weight=BOLD, font="Arial", colo
有什么办法可以增加动画中特定线条的宽度? 我试图改变DEFAULT_STROKE_WIDTH在 constants.py并设置 stroke_width在 CONFIG等于某个数字,但它不起作用。 这
txt11 = TexMobject(r"-7", color=BLACK) txt12 = TexMobject(r"\frac{1}{7}", color=BLACK).next_to(txt11
txt11 = TexMobject(r"-7", color=BLACK) txt12 = TexMobject(r"\frac{1}{7}", color=BLACK).next_to(txt11
我想用不同颜色绘制 MathTex 元素的变量,但 Manim 似乎对复杂的 Latex 表达式有问题。 这是我的场景。 from manim import * config.frame_width
this is the thing I wanted to make 我是 manim 的新手,我正在尝试将文本放在一个矩形内,如图中所示我怎样才能做到这一点 ?? :( 最佳答案 您可以使用 VGr
我主要尝试运行两个动画(引用以下代码): class RelTrain(Scene): def construct(self): train = Rectangle(heigh
无论如何,我正在尝试(这实际上是我的第一个 manim 程序)。 from manim import * import copy import numpy as np import random co
我开始学习 manim,希望你能帮助我理解这段代码是如何工作的 class Line_1(Scene): def construct(self): path = Line(LE
我是马尼姆新手。 与下面的示例一样, class scene_example(Scene): def construct(self): txt1 = Text("Text1")
我是马尼姆新手。 与下面的示例一样, class scene_example(Scene): def construct(self): txt1 = Text("Text1")
最初的问题发布在 Reddit (https://www.reddit.com/r/manim/comments/lw3xs7/is_it_possible_to_run_manim_programm
有没有办法使用 manim 显示 latex 表并为其设置动画? 例如 \begin{table}[] \centering \begin{tabular}{lllll} & & \multico
如果我有 3 行 manim 文本, l = TextMobject("Line 1") l2 = TextMobject("Line 2") l3 = TextMobject("Line 3")
我是一名优秀的程序员,十分优秀!