ArcPolygon

合格名称: manim.mobject.geometry.arc.ArcPolygon

class ArcPolygon(*vertices, angle=0.7853981633974483, radius=None, arc_config=None, **kwargs)[源代码]

基类: VMobject

一种广义多边形,允许点之间用弧线连接。

这个版本力求与 Polygon 的使用方式保持一致。可以直接将点传递给它,这些点用于生成相应的弧(使用 ArcBetweenPoints)。可以传递一个角度或半径参数以用于所有弧,但要单独配置弧,必须传递一个 `arc_config` 列表,其语法如下所述。

参数:
  • vertices (Point3DLike) – 顶点的列表,作为弧段的起点和终点。

  • angle (float) – 用于构建弧的角度。如果未设置其他参数,此角度将用于构建所有弧。

  • radius (float | None) – 用于构建弧的圆半径。如果指定,将覆盖指定的 angle

  • arc_config (list[dict] | None) – 当传递一个 dict 时,其内容将作为关键字参数传递给 ArcBetweenPoints。否则,可以传递一个包含值(作为每个独立弧的关键字参数传递)的字典列表。

  • kwargs (Any) – 传递给 VMobject 构造函数的其他关键字参数。

arcs

由输入参数创建的弧。

>>> from manim import ArcPolygon
>>> ap = ArcPolygon([0, 0, 0], [2, 0, 0], [0, 2, 0])
>>> ap.arcs
[ArcBetweenPoints, ArcBetweenPoints, ArcBetweenPoints]
类型:

列表 (list)

提示

ArcPolygon 的两个实例也可以相互正确地转换。请注意,任何用 angle=0 初始化的弧实际上将是一条直线,因此如果直线段需要无缝地转换为弧形段,反之亦然,请使用一个可忽略的角度(例如 angle=0.0001)来初始化直线段。

注意

还有另一个版本(ArcPolygonFromArcs),它是用预定义的弧实例化的。

另请参阅

ArcPolygonFromArcs

示例

示例: SeveralArcPolygons

from manim import *

class SeveralArcPolygons(Scene):
    def construct(self):
        a = [0, 0, 0]
        b = [2, 0, 0]
        c = [0, 2, 0]
        ap1 = ArcPolygon(a, b, c, radius=2)
        ap2 = ArcPolygon(a, b, c, angle=45*DEGREES)
        ap3 = ArcPolygon(a, b, c, arc_config={'radius': 1.7, 'color': RED})
        ap4 = ArcPolygon(a, b, c, color=RED, fill_opacity=1,
                                    arc_config=[{'radius': 1.7, 'color': RED},
                                    {'angle': 20*DEGREES, 'color': BLUE},
                                    {'radius': 1}])
        ap_group = VGroup(ap1, ap2, ap3, ap4).arrange()
        self.play(*[Create(ap) for ap in [ap1, ap2, ap3, ap4]])
        self.wait()
class SeveralArcPolygons(Scene):
    def construct(self):
        a = [0, 0, 0]
        b = [2, 0, 0]
        c = [0, 2, 0]
        ap1 = ArcPolygon(a, b, c, radius=2)
        ap2 = ArcPolygon(a, b, c, angle=45*DEGREES)
        ap3 = ArcPolygon(a, b, c, arc_config={'radius': 1.7, 'color': RED})
        ap4 = ArcPolygon(a, b, c, color=RED, fill_opacity=1,
                                    arc_config=[{'radius': 1.7, 'color': RED},
                                    {'angle': 20*DEGREES, 'color': BLUE},
                                    {'radius': 1}])
        ap_group = VGroup(ap1, ap2, ap3, ap4).arrange()
        self.play(*[Create(ap) for ap in [ap1, ap2, ap3, ap4]])
        self.wait()

更多示例请参阅 ArcPolygonFromArcs

方法

属性

animate (动画)

用于动画化 self 的任何方法的应用。

animation_overrides (动画覆盖)

颜色

depth (深度)

mobject 的深度。

fill_color (填充颜色)

如果存在多种颜色(用于渐变),则返回第一种颜色

height (高度)

mobject 的高度。

n_points_per_curve (每条曲线的点数)

sheen_factor (光泽因子)

stroke_color (描边颜色)

width (宽度)

mobject 的宽度。

_original__init__(*vertices, angle=0.7853981633974483, radius=None, arc_config=None, **kwargs)

初始化自身。有关准确签名,请参阅 help(type(self))。

参数:
  • vertices (Point3DLike)

  • angle (float)

  • radius (float | None)

  • arc_config (list[dict] | None)

  • kwargs (Any)

返回类型: