ArcPolygon

限定名称: manim.mobject.geometry.arc.ArcPolygon

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

基础类: VMobject

一个允许点通过弧线连接的广义多边形。

此版本尝试尽量接近Polygon的使用方式。点可以直接传递给它,用于生成相应的弧线(使用ArcBetweenPoints)。可以传递一个角度或半径以用于所有弧线,但要单独配置弧线,必须传递一个arc_config列表,其语法如下所述。

Parameters:
  • 顶点 (Point3D) – 顶点列表,弧段的起点和终点。

  • angle (float) – 用于构建弧线的角度。如果没有设置其他参数,则使用此角度来构建所有弧线。

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

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

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

arcs

由输入参数创建的弧线:

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

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

color

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))。

Parameters:
  • 顶点 (Point3D)

  • 角度 (浮点数)

  • radius (float | None)

  • arc_config (列表[字典] | )

Return type: