菜单

几何对象

相关源文件

本页面涵盖了 ManimGL 中的核心几何对象,包括点、线、曲线和各种形状。这些对象构成了数学可视化的基础构建块,让您能够创建从简单的图表到复杂的动画。有关可与这些对象配合使用的坐标系统,请参阅 坐标系统

核心几何类层次结构

ManimGL 的几何对象以层次结构组织,大多数几何形状都继承自 VMobject(矢量化 mobject)。几何形状最重要的基类是 TipableVMobject,它提供了可添加尖端的对象的功能。

来源: manimlib/mobject/geometry.py46-1081

基本点和圆点

圆点(Dot)是小的圆形对象,通常用于标记空间中的点。

Dot

Dot 类代表一个半径默认为 0.08 个单位的小圆。

还有一个更小的变体 SmallDot 类,其半径默认为 0.04 个单位。

来源: manimlib/mobject/geometry.py325-354

线和箭头

Line 类在两点之间创建一条直线。

关键属性和方法

  • get_length():返回线的长度
  • get_angle():以弧度为单位返回线的角度
  • set_length(length):将线缩放到特定长度
  • set_angle(angle):将线旋转到特定角度

Arrow

Arrow 类创建一条在末端带有箭头的线。

Vector 类提供了一种更简单的方法来创建从原点开始的箭头。

对于曲线箭头,请使用 CurvedArrow 类。

来源: manimlib/mobject/geometry.py446-910

弧和圆

Arc

Arc 类创建圆的一部分(弧)。

Circle

Circle 类创建一个完整的圆。

圆的关键方法包括:

  • surround(mobject, buff=MED_SMALL_BUFF):将圆调整大小以环绕一个 mobject。
  • point_at_angle(angle):返回圆上某个角度的点。
  • get_radius():返回圆的半径。

Ellipse

Ellipse 类创建一个椭圆形状。

来源: manimlib/mobject/geometry.py205-366

扇形和圆环

Sector

Sector 类创建扇形(像披萨片)。

Annulus

Annulus 类创建环形(带孔的圆)。

AnnularSector

AnnularSector 类创建环的扇形。

来源: manimlib/mobject/geometry.py369-443

多边形

Polygon

Polygon 类根据顶点列表创建多边形。

主要方法包括

  • get_vertices():返回多边形的顶点。
  • round_corners(radius):创建一个带有圆角的 T 新多边形。

RegularPolygon

RegularPolygon 类创建具有指定边数的正多边形。

Rectangle and Square

Rectangle 类创建矩形,而 Square 类创建正方形。

来源: manimlib/mobject/geometry.py925-1081

曲线

CubicBezier

CubicBezier 类创建由四个点定义的贝塞尔曲线。

ParametricCurve

ParametricCurve 类根据参数函数创建曲线。

来源: manimlib/mobject/geometry.py912-922 manimlib/mobject/functions.py17-68

常用的定位和变换方法

所有几何对象都继承自 VMobject 的方法,这些方法允许进行定位和变换。

属性和样式

所有几何对象都可以使用以下方法进行样式设置:

示例:创建形状组合

处理 3D 中的几何图形

ManimGL 还提供 3D 几何对象。

关键的 3D 对象包括:

  • Sphere:一个可自定义半径的 3D 球体。
  • Torus:一个甜甜圈形状。
  • Cylinder:一个具有可自定义高度和半径的圆柱体。
  • Cone:一个圆锥形状。
  • Cube:一个 3D 立方体。
  • Prism:一个具有可自定义尺寸的长方体。

来源: manimlib/mobject/three_dimensions.py93-414

使用几何对象的提示

  1. 组合:使用 VGroup 将多个几何对象组合成一个单元,以便一起进行变换。

  2. 相对定位:使用 next_to()align_to()move_to() 等方法将对象相对于彼此定位。

  3. 变换:应用 rotate()scale()shift() 等变换来操作对象。

  4. 样式:使用 set_stroke()set_fill()set_style() 来自定义对象的外观。

  5. 坐标系统:为了精确放置,请考虑使用 AxesNumberPlane 等坐标系统。

  6. 自定义形状:对于复杂形状,您可以

    • 使用 VGroup 组合多个基本形状。
    • 使用自定义顶点创建 Polygon
    • 使用 ParametricCurve 来创建数学曲线。
    • 定义一个扩展 VMobject 的自定义类。

几何对象的常用属性

属性描述示例值
stroke_color轮廓颜色WHITE
stroke_width轮廓宽度2.0
fill_color内部颜色BLUE
fill_opacity内部不透明度(0-1)0.7
width对象宽度2.0
height对象高度1.0
radius半径(用于圆、弧)1.0
angle角度(用于弧、扇形),以弧度为单位PI/2

来源: manimlib/mobject/types/vectorized_mobject.py manimlib/mobject/geometry.py