边学边做Manim中的多边形

Manim中,Polygon 类用于创建多边形。下面我将详细介绍它的使用方法、常见属性和示例。多边形也是常见的几何图形,理解多边形,有助于更好的理解其他的几何图形,下面我们来看基本的用法

1.基本用法

我们先来看下面的代码

1
2
3
4
5
6
7
8
from manim import *

class BasicPolygon(Scene):
def construct(self):
# 创建三角形
triangle = Polygon([-2, -1, 0], [2, -1, 0], [0, 1, 0])
self.play(Create(triangle))
self.wait()

来看演示代码的视频效果

我们使用

1
Polygon([-2, -1, 0], [2, -1, 0], [0, 1, 0])

坐标的形式,创建了个三角形,类似的参数

2.常见参数

2.1.传递多个点

1
2

polygon1 = Polygon([-1, 0, 0], [1, 0, 0], [0, 1, 0])

2.2.传递列表

1
2
points = [[-1, 0, 0], [1, 0, 0], [0, 1, 0]]
polygon2 = Polygon(*points)

2.3.使用数组

1
2
3
import numpy as np
vertices = np.array([[-1, 0, 0], [1, 0, 0], [0, 1, 0]])
polygon3 = Polygon(*vertices)

3.代码示例

我们来看下面的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
from manim import *

class StyledPolygon(Scene):
def construct(self):
# 创建五边形
pentagon = Polygon(
*[np.array([np.cos(angle), np.sin(angle), 0])
for angle in np.linspace(0, 2*np.pi, 5, endpoint=False)],
color=BLUE,
fill_opacity=0.5,
stroke_width=4
)
self.play(Create(pentagon))

来看下面的演示效果

4.常见问题

  1. 顶点顺序:顶点按顺序连接,确保正确的多边形形状
  2. 闭合:多边形自动闭合(最后一个点连接到第一个点)
  3. 3D 支持:虽然可以定义 z 坐标,但渲染为 2D 形状
  4. 性能:顶点过多可能影响性能,使用 RegularPolygon 创建正多边形更高效