5.9.带标签的向量
LabeledArrow
通常在绘图库中用来绘制带标签的箭头。接下来我们看看实用代码段:
LabeledArrow(*args, **kwargs)[source]
*args
和 **kwargs
通常用于表示可变数量的位置参数和关键字参数。下面是对它们的解释:
-
label (str | Tex | MathTex | Text):
- 这个参数指定要显示在箭头(或线条)上的标签内容。支持多种格式,如字符串 (
str
),LaTeX 公式 (Tex
或MathTex
),或普通文本 (Text
)。
- 这个参数指定要显示在箭头(或线条)上的标签内容。支持多种格式,如字符串 (
-
label_position (float | optional):
- 这是一个可选参数,用于指定标签相对于线条长度的位置。它的值范围在 0 到 1 之间,其中 0 表示线条的起点位置,1 表示线条的终点位置。默认值是 0.5,即标签会被放置在线条的中间位置。
-
font_size (float | optional):
- 这个参数控制标签的字体大小。只有当标签是字符串类型时,这个参数才会生效。
-
label_color (ParsableManimColor | optional):
- 该参数用于设置标签文本的颜色。只有当标签是字符串类型时,这个参数才会被考虑。
-
label_frame (Bool | optional):
- 布尔值,可选参数。如果设置为
True
,将为标签添加一个矩形框(SurroundingRectangle
),用于突出显示标签。
- 布尔值,可选参数。如果设置为
-
frame_fill_color (ParsableManimColor | optional):
- 该参数用于指定标签框的背景颜色。如果未提供值,则使用画布的背景颜色。
-
frame_fill_opacity (float | optional):
- 这个参数控制标签框的透明度。值范围在 0 到 1 之间,0 表示完全透明(不可见),1 表示完全不透明(完全可见)。
这些参数允许用户灵活地定制箭头或线条的标签外观,以便更好地传达信息或符合特定的视觉风格。在图形和动画制作中,良好的标签设置能够显著提升可读性和信息传达效果。
子1:
from manim import *
class LabeledArrowExample(Scene):
def construct(self):
l_arrow = LabeledArrow("0.5", start=LEFT*3, end=RIGHT*3 + UP*2, label_position=0.5)
#解释:始点为(-3,0),终点为(3,2),标签位置在中间
self.add(l_arrow)
运行结果:
例2:
from manim import *
class LabeledArrowExample02(Scene):
def construct(self):
tax = MathTex(r"\overrightarrow{a}",color=RED_A)
#a=NumberPlane()
l_arrow = LabeledArrow(
start=[0, 0, 0],
end=[3, 2, 0], buff=0,
label=tax, # 这里是用 label 参数传入标签
label_position=0.7,
label_color=BLUE_A,
label_frame=True,
frame_fill_color=BLUE_B,
frame_fill_opacity=1
)
# 解释:始点为(0,0),终点为(3,2),标签位置在起点的15%处
self.add(NumberPlane(),l_arrow)
运行结果:
这些参数允许用户灵活地定制箭头或线条的标签外观,以便更好地传达信息或符合特定的视觉风格。在图形和动画制作中,良好的标签设置能够显著提升可读性和信息传达效果。
5.10.带标签的线条【LabeledLine】
使用代码段:
LabeledLine(label, label_position=0.5, font_size=48, label_color=ManimColor('#FFFFFF'), label_frame=True, frame_fill_color=None, frame_fill_opacity=1, *args, **kwargs)
基础在线条的的基础下进行绘制。
参数解释:
-
label (str | Tex | MathTex | Text):
- 这个参数指定要显示在箭头(或线条)上的标签内容。支持多种格式,如字符串 (
str
),LaTeX 公式 (Tex
或MathTex
),或普通文本 (Text
)。
- 这个参数指定要显示在箭头(或线条)上的标签内容。支持多种格式,如字符串 (
-
label_position (float | optional):
- 这是一个可选参数,用于指定标签相对于线条长度的位置。它的值范围在 0 到 1 之间,其中 0 表示线条的起点位置,1 表示线条的终点位置。默认值是 0.5,即标签会被放置在线条的中间位置。
-
font_size (float | optional):
- 这个参数控制标签的字体大小。只有当标签是字符串类型时,这个参数才会生效。
-
label_color (ParsableManimColor | optional):
- 该参数用于设置标签文本的颜色。只有当标签是字符串类型时,这个参数才会被考虑。
-
label_frame (Bool | optional):
- 布尔值,可选参数。如果设置为
True
,将为标签添加一个矩形框(SurroundingRectangle
),用于突出显示标签。
- 布尔值,可选参数。如果设置为
-
frame_fill_color (ParsableManimColor | optional):
- 该参数用于指定标签框的背景颜色。如果未提供值,则使用画布的背景颜色。
-
frame_fill_opacity (float | optional):
- 这个参数控制标签框的透明度。值范围在 0 到 1 之间,0 表示完全透明(不可见),1 表示完全不透明(完全可见)。
例子1:
class LabeledLineExample(Scene):
def construct(self):
line = LabeledLine(
label = '0.5',
label_position = 0.8,
font_size = 20,
label_color = WHITE,
label_frame = True,
start=LEFT+DOWN,
end=RIGHT+UP)
line.set_length(line.get_length() * 2)
self.add(line)
运行结果:
5.11.夹角【Angle】
这个类表示两个线条之间的角度,可以是圆弧或肘型的形式,用于表示角的视觉化。
代码的用法:
Angle(line1, line2, radius=None, quadrant=(1, 1), other_angle=False,
dot=False, dot_radius=None, dot_distance=0.55,
dot_color=ManimColor('#FFFFFF'), elbow=False, **kwargs)[source]
参数:
-
line1:构成角的一条线,通常是一个Line对象。
-
line2:构成角的另一条线,也是一个Line对象。
-
radius(可选):定义角的弧线半径。如果未指定,默认使用其他参数确定的值。
-
quadrant(可选):一个元组,表示角度所在的象限。它的默认值是 (1, 1),可能用于确定角的绘制位置。
-
other_angle(可选):布尔值。如果为True,将展示与默认角的相对角(例如,获得补角)。
-
dot(可选):布尔值。如果为True,表示在角的顶点处绘制一个点。
-
dot_radius(可选):指定点的半径,当
dot
参数为True时,将使用此值来定义点的大小。