ETJava Beta | Java    注册   登录
  • 搜索:
  • manim边学边做--图形间集合关系

    发表于      阅读(1)     博客类别:Crawler     转自:https://www.cnblogs.com/wang_yb/p/18435447
    如有侵权 请联系我们删除  (页面底部联系我们)  

    几何图形间的集合关系,是数学和几何学中的一个基本概念,

    通过计算不同形状(如圆形、矩形、三角形等)的交集和并集等关系,可以实现复杂的图形处理和视觉效果。

    manim中提供了4种计算几何形状间集合关系的模块:

    1. Difference:从形状A中减去与形状B相交的部分
    2. Exclusion:减去形状A形状B相交的部分,保留不同的部分
    3. Intersection:保留所有形状间的交集
    4. Union:保留所有形状的并集

    1. 主要参数

    Difference的主要参数有:

    参数名称 类型 说明
    subject VMobject 主要显示的几何体
    clip VMobject 用来切割的几何体

    Difference就是将subjectclip相交的部分从subject中删掉。

    Exclusion的主要参数有:

    参数名称 类型 说明
    subject VMobject 第一个几何体
    clip VMobject 第二个几何体

    Exclusion就是将subjectclip相交的部分删掉,保留subjectclip剩余的部分。

    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)