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

news/2024/11/14 15:10:17/文章来源:https://www.cnblogs.com/wang_yb/p/18423746

空心的多边形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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/800909.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Apache-Shiro =1.2.4 反序列化漏洞 (代码审计)

一、Apache Shiro 简介: Apache Shiro提供了认证、授权、加密和会话管理功能,将复杂的问题隐藏起来,提供清晰直观的API使开发者可以很轻松地开发自己的程序安全代码。并且在实现此目标时无须依赖第三方的框架、容器或服务,当然也能做到与这些环境的整合,使其在任何环境下都…

帝国cms安装时配置数据库出现错误

在安装帝国CMS时配置数据库出现错误,可能是由于多种原因造成的。以下是一些常见的解决方法,帮助你解决安装过程中遇到的数据库配置错误: 1. 检查数据库连接信息 确保数据库连接信息正确无误。 解决方法:数据库服务器地址:确保输入的数据库服务器地址正确。 数据库用户名和…

帝国cms安装时的出现的错误怎么解决

在安装帝国CMS时遇到错误,可以根据错误的具体情况采取不同的解决措施。以下是一些常见的错误及其解决方法: 1. HTTP 500 内部服务器错误 如果在安装过程中遇到HTTP 500错误,这通常意味着服务器端发生了错误。 解决方法:查看错误日志:登录到服务器,找到帝国CMS安装目录下的…

帝国cms时间显示为1970-01-01

当帝国CMS中的时间显示为1970-01-01时,通常是因为系统中的时间字段没有被正确设置或更新。以下是解决此问题的一些方法: 1. 检查字段设置 确保在建立系统模型时,时间字段(如newstime)已经被设置为可录入、可修改和可增加。 解决方法:在帝国CMS后台,进入“系统” -> “…

谷歌收录查询工具,Google收录查询工具操作教程

谷歌收录查询工具是帮助网站所有者或SEO专业人士了解网站在谷歌搜索引擎中收录情况的重要工具。以下是一些常用的Google收录查询工具及其操作教程: 一、Google Search Console(谷歌搜索控制台) 功能概述: Google Search Console是一个免费的服务,它帮助网站所有者监控和管…

谷歌网站收录查询,谷歌网站收录查询有那些办法

谷歌网站收录查询是SEO优化和网站管理中的重要一环,以下是几种常用的谷歌网站收录查询办法:使用Google Search Console(谷歌搜索控制台) 优点: 官方工具,数据准确可靠。 提供详细的收录情况报告,包括已收录和未收录的页面列表。 可用于提交网站地图,帮助谷歌爬虫更快地…

解决帝国CMS栏目绑定域名刷新问题的八种方法

解决帝国CMS栏目绑定域名刷新问题时,可以从以下几个方面入手: 1. 检查域名解析问题 确保域名已经正确解析到了服务器的IP地址。 解决方法:使用ping命令或者DNS查询工具检查域名是否正确解析到了服务器IP地址。shping yourdomain.com如果域名未正确解析,检查DNS设置或者联系…

迭代器可能的报错:ConcurrentModificationException(并发修改异常)注意事项

参考: ConcurrentModificationException(并发修改异常)可能原因和解决方法 Java迭代器详解,看这一篇就够了 JAVA iterator迭代器遍历一遍后不能再遍历了吗 迭代器循环list 集合的顶层接口Collection继承Iterable接口,实现迭代器iterator()迭代器一旦定义,不允许其他地方对…

PTA 周初浪型

考虑黄圈的时机做多一下:

iis服务器帝国cms7.5编辑器不能使用解决办法

在IIS服务器上使用帝国CMS 7.5时,如果编辑器不能正常使用,可能涉及多个方面的问题,包括文件权限、配置文件、依赖库等。下面是一些具体的解决办法: 1. 检查文件和目录权限 确保帝国CMS的所有必要文件和目录具有正确的权限。 步骤:检查e/data目录及其子目录:使用IIS Manag…

帝国cms开启https后,网站后台为何无法访问?怎样解决

当帝国CMS开启HTTPS后,网站后台无法访问的情况通常是由于HTTPS配置不当导致的一些常见问题。这里有一些可能的原因及解决方法: 1. .htaccess文件配置问题 帝国CMS使用Apache服务器时,通常会有一个.htaccess文件用来处理重定向和其他URL重写规则。开启HTTPS后,如果.htaccess…

帝国cms后台不能登录的解决方法_帝国cms

当遇到帝国CMS后台不能登录的问题时,可能的原因有很多,包括但不限于权限问题、Cookie设置问题、服务器配置问题等。以下是一些排查和解决此类问题的方法: 1. 检查文件和目录权限确保目录可写:e/data/adminlogin目录需要具有写权限,以便帝国CMS能够存储登录信息。可以通过F…