几何图形间的集合关系,是数学和几何学中的一个基本概念,
通过计算不同形状(如圆形、矩形、三角形等)的交集和并集等关系,可以实现复杂的图形处理和视觉效果。
manim
中提供了4种计算几何形状间集合关系的模块:
Difference
:从形状A中减去与形状B相交的部分Exclusion
:减去形状A和形状B相交的部分,保留不同的部分Intersection
:保留所有形状间的交集Union
:保留所有形状的并集
1. 主要参数
Difference
的主要参数有:
参数名称 | 类型 | 说明 |
---|---|---|
subject | VMobject | 主要显示的几何体 |
clip | VMobject | 用来切割的几何体 |
Difference
就是将subject
和clip
相交的部分从subject
中删掉。
Exclusion
的主要参数有:
参数名称 | 类型 | 说明 |
---|---|---|
subject | VMobject | 第一个几何体 |
clip | VMobject | 第二个几何体 |
Exclusion
就是将subject
和clip
相交的部分删掉,保留subject
和clip
剩余的部分。
Intersection
的主要参数有:
参数名称 | 类型 | 说明 |
---|---|---|
vmobjects | *VMobject | 可以传入2个或2个以上的几何体 |
Intersection
就是保留所有几何体相交的部分。
如果参数vmobjects
中几何体的数量小于2会报错。
Union
的主要参数有:
参数名称 | 类型 | 说明 |
---|---|---|
vmobjects | *VMobject | 可以传入2个或2个以上的几何体 |
Union
是保留所有几何体合起来的部分。
如果参数vmobjects
中几何体的数量小于2会报错。
2. 使用示例
manim提供的集合关系模块,大大简化了代码的编写。
2.1. Difference 示例
subject = Square()
clip = Circle()Difference(subject, clip)
2.2. Exclusion 示例
subject = Square()
clip = Circle()Exclusion(subject, clip)
2.3. Intersection 示例
subject = Square()
clip = Circle()Intersection(subject, clip)
2.4. Union 示例
subject = Square()
clip = Circle()Union(subject, clip)
3. 附件
文中完整的代码放在网盘中了(bool_ops.py
),
下载地址: 完整代码 (访问密码: 6872)