Geometry¶
TipableVMobject¶
- class manimlib.mobject.geometry.TipableVMobject(**kwargs)¶
- 可以带箭头的物体(实现了和箭头 tip 有关的方法) - tip_config字典中传入与箭头相关的参数,最终会将这个字典中的参数传入- ArrowTip类来生成箭头。 这一部分将在- ArrowTip中详细阐述。
 - 初始化样式,VMobject 的样式有以下 - fill填充样式- 颜色: - fill_color或- color
- 不透明度: - fill_opacity
 
- stroke线条样式- 颜色: - stroke_color或- color
- 宽度: - stroke_width
- 不透明度: - stroke_opacity
 
- gloss光泽
- shadow阴影
- reflectiveness反光度
 - 其中, color, opacity, width 属性均可以为一个列表,在渲染时会按照列表对其进行补间 - add_tip(at_start: bool = False, **kwargs)¶
- 添加箭头 - at_start:- True时在开头添加箭头,反之在结尾(默认为- False在末尾)
- **kwargs中可以加入- tip_config的参数
 
 - get_end() ndarray¶
- 获取物件结束点 
 - get_length() float¶
- 获取起止点之间的直线距离 
 - get_start() ndarray¶
- 获取物件起始点 
 
Arc¶
- class manimlib.mobject.geometry.Arc(start_angle: float = 0, angle: float = 1.5707963267948966, **kwargs)¶
- 圆弧 - 传入 - start_angle表示起始的角度,- angle表示圆心角- radius: 圆弧半径
- num_components: 数越大越精细
- arc_center: 圆弧的中心
 - get_arc_center() ndarray¶
- 获取圆弧圆心 
 - get_start_angle() float¶
- 获取起始角度 
 - get_stop_angle() float¶
- 获取终止角度 
 - move_arc_center_to(point: ndarray)¶
- 将圆弧圆心移动到 - point的位置
 
ArcBetweenPoints¶
- class manimlib.mobject.geometry.ArcBetweenPoints(start: ndarray, end: ndarray, angle: float = 1.5707963267948966, **kwargs)¶
- 两点之间的圆弧 - 传入 - start,- end表示起点终点,- angle表示圆心角- 其余关键字参数同 Arc 
CurvedArrow¶
- class manimlib.mobject.geometry.CurvedArrow(start_point: ndarray, end_point: ndarray, **kwargs)¶
- 弯曲的单向箭头 - 从 - start_point到- end_point的弯曲箭头,圆心角为90°- 其余关键字参数同 - Arc
CurvedDoubleArrow¶
- class manimlib.mobject.geometry.CurvedDoubleArrow(start_point: ndarray, end_point: ndarray, **kwargs)¶
- 弯曲的双向箭头 - 从 - start_point到- end_point的弯曲双向箭头,圆心角为90°- 其余关键字参数同 - Arc
Circle¶
Dot¶
- class manimlib.mobject.geometry.Dot(point: ndarray = array([0., 0., 0.]), **kwargs)¶
- 点(半径默认为0.08) - 传入参数 - point表示点的位置,其余同- Arc
SmallDot¶
- class manimlib.mobject.geometry.SmallDot(point: ndarray = array([0., 0., 0.]), **kwargs)¶
- 小点(半径默认为0.04) - 传入参数 - point表示点的位置,其余同- Arc
Ellipse¶
- class manimlib.mobject.geometry.Ellipse(**kwargs)¶
- 椭圆 - 宽度为 - width,高度为- height
AnnularSector¶
- class manimlib.mobject.geometry.AnnularSector(start_angle: float = 0, angle: float = 1.5707963267948966, **kwargs)¶
- 扇环 - inner_radius: 内圆半径
- outer_radius: 外圆半径
- 其余同 - Arc
 - 传入 - start_angle表示起始的角度,- angle表示圆心角- radius: 圆弧半径
- num_components: 数越大越精细
- arc_center: 圆弧的中心
 
Sector¶
- class manimlib.mobject.geometry.Sector(start_angle: float = 0, angle: float = 1.5707963267948966, **kwargs)¶
- 扇形 - 即内圆半径为 0 的扇环 - 传入 - start_angle表示起始的角度,- angle表示圆心角- radius: 圆弧半径
- num_components: 数越大越精细
- arc_center: 圆弧的中心
 
Annulus¶
- class manimlib.mobject.geometry.Annulus(start_angle: float = 0, **kwargs)¶
- 圆环 - inner_radius: 内圆半径
- outer_radius: 外圆半径
- 其余同 - Circle(- Arc)
 - 参数同 - Arc,半径使用- radius(来自- Arc)
Line¶
- class manimlib.mobject.geometry.Line(start: ndarray = array([-1., 0., 0.]), end: ndarray = array([1., 0., 0.]), **kwargs)¶
- 直线 - 传入 - start, end为线段起点终点- buff: 为两端距离- start,end的距离(默认为0)
- path_arc: 如果有此关键字参数,则使用- ArcBetweemPoints,- path_arc表示角度
 - get_angle() float¶
- 获取直线倾斜角 
 - get_projection(point: ndarray) ndarray¶
- 返回点在直线上的投影 
 - get_slope() float¶
- 获取直线斜率 
 - get_unit_vector() ndarray¶
- 获取直线方向上的单位向量 
 - get_vector() ndarray¶
- 获取直线的方向向量 
 - pointify(mob_or_point: Mobject | ndarray, direction: ndarray | None = None) ndarray¶
- 将一个参数传递给 Line (或子类) 并将其转换为一个 3D 点。 
 - put_start_and_end_on(start: ndarray, end: ndarray)¶
- 把直线的首尾放在 - start, end上
 - set_angle(angle: float, about_point: ndarray | None = None)¶
- 设置直线倾斜角为 - angle
 - set_length(length: float, **kwargs)¶
- 缩放到 - length长度
 - set_path_arc(new_value: float) None¶
- 设置 - path_arc
 
DashedLine¶
TangentLine¶
Elbow¶
- class manimlib.mobject.geometry.Elbow(**kwargs)¶
- 折线(一般用作直角符号) - width表示宽度,- angle表示角度
Arrow¶
- class manimlib.mobject.geometry.Arrow(start: ndarray = array([-1., 0., 0.]), end: ndarray = array([1., 0., 0.]), **kwargs)¶
- 带箭头的直线,箭头大小自动 - buff: 默认为0.25
- max_tip_length_to_length_ratio: 箭头长度和直线长度最大比例(默认0.25)
- max_stroke_width_to_length_ratio: 线条粗细和直线长度最大比例(默认5)
 - 该类在 - manimgl版本中进行了重构,使用- add_tip可能会导致箭头大小不统一- (grant又把箭头重写了一遍) - 传入 - start, end为线段起点终点- buff: 为两端距离- start,end的距离(默认为0)
- path_arc: 如果有此关键字参数,则使用- ArcBetweemPoints,- path_arc表示角度
 - reset_tip()¶
- 重置箭头 
 - set_stroke(color: ManimColor | Iterable[ManimColor] | None = None, width: float | Iterable[float] | None = None, *args, **kwargs)¶
- 设置轮廓线(轮廓线浮于填充色上方) 
 
FillArrow¶
- class manimlib.mobject.geometry.FillArrow(start: ndarray = array([-1., 0., 0.]), end: ndarray = array([1., 0., 0.]), **kwargs)¶
- 箭头,其本质是一个七边形 - 传入 - start, end为线段起点终点- buff: 为两端距离- start,end的距离(默认为0)
- path_arc: 如果有此关键字参数,则使用- ArcBetweemPoints,- path_arc表示角度
 - get_end() ndarray¶
- 获取物件结束点 
 - get_start() ndarray¶
- 获取物件起始点 
 - put_start_and_end_on(start: ndarray, end: ndarray)¶
- 把直线的首尾放在 - start, end上
 - scale(*args, **kwargs)¶
- 缩放箭头,自动调节箭头大小和线条宽度 
 - set_path_arc(path_arc: float)¶
- 设置 - path_arc
 
Vector¶
- class manimlib.mobject.geometry.Vector(direction: ndarray = array([1., 0., 0.]), **kwargs)¶
- 向量 - 即起点为ORIGIN的箭头,终点为 - direction- buff默认设为了 0
 
DoubleArrow¶
- class manimlib.mobject.geometry.DoubleArrow(*args, **kwargs)¶
- 双向直箭头 - 参数和 - Arrow一致
CubicBezier¶
- class manimlib.mobject.geometry.CubicBezier(a0: ndarray, h0: ndarray, h1: ndarray, a1: ndarray, **kwargs)¶
- 三阶贝塞尔曲线 - 测试中发现这个三阶贝塞尔曲线不准 - 传入 - points表示构成贝塞尔曲线的点集
Polygon¶
RegularPolygon¶
- class manimlib.mobject.geometry.RegularPolygon(n: int = 6, **kwargs)¶
- 正多边形 - 传入数字 - n表示边数
Triangle¶
- class manimlib.mobject.geometry.Triangle(**kwargs)¶
- 正三角形 - 使用 - RegularPolygon
ArrowTip¶
Rectangle¶
- class manimlib.mobject.geometry.Rectangle(width: float | None = None, height: float | None = None, **kwargs)¶
- 矩形 - 使用 - Polygon- height: 矩形高度
- width: 矩形宽度
 
Square¶
- class manimlib.mobject.geometry.Square(side_length: float = 2.0, **kwargs)¶
- 正方形 - side_length是正方形边长
RoundedRectangle¶
- class manimlib.mobject.geometry.RoundedRectangle(**kwargs)¶
- 圆角矩形 - 调用了 - round_corners的- Rectangle- corner_radius为圆角半径