首页 > 其他分享 >manim边学边做--空心多边形

manim边学边做--空心多边形

时间:2024-09-21 11:24:23浏览次数:1  
标签:多边形 sub 示例 -- color Cutout main 边学边 manim

空心的多边形Cutout是一种比较特殊的多边形,主要用于解决与形状、大小、位置等相关的数学问题。

Cutout多边形可以定义物体表面的空洞凹陷部分,从而更准确地模拟现实世界中的复杂形状。

比如,在PCB(印制电路板)设计中,通过放置Cutout空心的多边形,设计师可以精确地控制铜的覆盖区域,从而优化电路布局和信号完整性。

在机械加工时,Cutout多边形也可以用于指导切割工具的运动轨迹,以便于在材料上形成精确的空洞或凹槽。

其实,在我们上学期间学习几何时,也经常遇到Cutout多边形,只是它一般不以Cutout这个名称出现。

比如,计算复杂图形的面积时,经常将其分割成几个简单的多边形(如三角形、矩形等),然后分别计算;

在证明两个图形面积相等、两线段相等或两角相等时,有时需要构造辅助线或辅助图形,这实质上也是一种“cut out”操作。

manim中虽然也可以通过组合前面几篇文章中提及的几何图形对象来构造Cutout图形,

但是直接用其manim提供的Cutout对象则更简单方便。

1. 主要参数

Cutout对象的主要参数就两个。

参数名称 类型 说明
main_shape VMobject 被切割的主体形状
mobjects *VMobject 从main_shape中切割出的一个或多个小形状

2. 使用示例

Cutout使用起来比较简单,下面的通用示例中展示空心多边形的使用方式,

其余几个例子演示的是Cutout在一些常见几何题目中的应用。

2.1. 通用示例

通用示例中,演示Cutout的使用方式,在一个大的四边形中切出三角形,四边形,五边形和六边形。

main = Square()scale(2)
sub1 = Triangle().scale(0.5)
sub2 = Square().scale(0.5)
sub3 = RegularPolygon(5).scale(0.5)
sub4 = RegularPolygon(6).scale(0.5)

Cutout(
    main,
    sub1,
    sub2,
    sub3,
    sub4,
    fill_opacity=1,
    color=BLUE,
    stroke_color=YELLOW,
)

2.2. 矩形中的三角形

求解矩形中的一个三角形的面积是常见的题型,利用Cutout,可以构造矩形中“切割”一个三角形的效果。

points = [A, B, C, D]
sub_points = [D, F, E]
main = Polygon(*points)
sub = Polygon(*sub_points)

Cutout(
    main,
    sub,
    fill_opacity=1,
    color=BLUE,
    stroke_color=GREEN,
)

2.3. 圆的切线

圆的切线相关问题也一样,可以沿着切线进行“切割”。

下面的示例中,沿着小圆的切线切割了一个三角形。

main = Polygon(A, P, B, O)
sub = Polygon(A, P, O)
Cutout(
    main,
    sub,
    fill_opacity=1,
    color=BLUE,
    stroke_color=GREEN,
)

2.4. 梯形的中位线

梯形的中位线定理证明中,关键就是两个全等三角形的全等,

下面的示例将梯形的其他部分“切割”掉,只保留两个全等三角形。

main = Polygon(A, B, F, G, D)
sub = Polygon(A, F, C, D)

Cutout(
    main,
    sub,
    fill_opacity=1,
    color=BLUE,
    stroke_color=GREEN,
)

3. 附件

文中完整的代码放在网盘中了(cutout.py),

下载地址: 完整代码 (访问密码: 6872)

标签:多边形,sub,示例,--,color,Cutout,main,边学边,manim
From: https://www.cnblogs.com/wang_yb/p/18423746

相关文章

  • Apache-Shiro <=1.2.4 反序列化漏洞 (代码审计)
    一、ApacheShiro简介:ApacheShiro提供了认证、授权、加密和会话管理功能,将复杂的问题隐藏起来,提供清晰直观的API使开发者可以很轻松地开发自己的程序安全代码。并且在实现此目标时无须依赖第三方的框架、容器或服务,当然也能做到与这些环境的整合,使其在任何环境下都可拿来使用。......
  • java+vue计算机毕设电视设备租借系统【源码+开题+论文+程序】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着数字媒体的迅猛发展,电视设备在各类活动、展览、会议及日常娱乐中扮演着不可或缺的角色。然而,高昂的购置成本和维护费用使得许多中小型企业和个人......
  • 安装帝国cms时输入安装地址,出现404错误
    当你在安装帝国CMS时输入安装地址却遇到404错误,这意味着服务器无法找到你所请求的安装脚本页面。这个问题可能是由多种因素引起的,以下是一些常见的解决方法:1.检查安装包是否完整确保你下载的帝国CMS安装包是完整的,并且所有文件都已正确上传到服务器。解决方法:重新下载安装包......
  • 基于微信小程序的汽车预约维修系统-计算机毕业设计源码+LW文档
    摘要随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了基于微信小程序的汽车预约维修系统的开发全过程。通过分析基于微信小程序的汽车预约维修系统管理的不足,创建了一个计算机管理基于微信小程序的汽车预约维修系统的方案。文章介绍......
  • 什么是云计算
    不知道为什么,最近云计算好像很火,听到很多工作都跟云计算相关,所以想探究一下。什么是云计算?        云计算是一种基于互联网的计算模式,它将计算任务分布在大量的计算机构成的资源池上,使得用户能够以按需使用、按量计费的方式获得所需的计算服务。云计算具有超大规模......
  • 配置NFS共享
    服务端:ServerAip:172.168.125.100客户端:ServerBIP:172.168.125.101一、NFS服务端的配置1.配置好本地yun源后,先确认系统是否已经安装NFS软件包使用rpm-qa|grep-infs查看显示如下图表示已安装;如果未安装使用yum-yinstallnfs-utilsrpcbind进行安装二、配置NFS主文件/etc/ex......
  • P9912 题解
    P9912[COCI2023/2024#2]Zatopljenje-洛谷|计算机科学教育新生态(luogu.com.cn)线段树。离线处理询问,将询问的高度从大到小排序,每次往线段树中加入高度大于当前询问高度的点,然后做一遍区间连续段个数就可以了。code:#include <bits/stdc++.h>using namespace std;......
  • 澳洲留学生本科没毕业怎么进行补救?
    澳洲留学生本科没毕业怎么进行补救?每位选择出国留学的目的都不一样,有的家里已经安排好了工作,只需要一个文凭就能解决就业的问题。而有的同学是为了通过留学提升自身的竞争力,为就业奠定基础。无论处于何种目的学历都是最终的目标。澳洲虽然入学门槛相对低,但是院校的挂科率依然是高得......
  • java+vue计算机毕设大学生心理健康系统【源码+开题+论文+程序】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着社会的快速发展与竞争的日益激烈,大学生作为社会未来的栋梁,面临着学业压力、就业挑战、人际关系等多重压力,其心理健康问题日益凸显。近年来,高校中......
  • 电容式液位传感器CL01DH05 鱼缸 水 牛奶 蜂蜜 乳胶 体液(血液)酸性或碱性溶液检测传感器
    CL01DH05电容式液位传感器是利用水和空气中存在的电荷不一样来感应并区分容器内是否有水的当容器内无水,则电荷较少,此时等效于没有在电容,当容器内有水,水中带有大量的电荷此时相对于空气能有由一点的容值变化,通过电路对信号的处理,再由算法的计算和判断这个变化,最终输出当前状态是否有......