首页 > Python资料 博客日记
manim边学边做--常用多边形
2024-09-10 15:30:03Python资料围观70次
多边形是常见的几何结构,它的形状看似千变万化,其实都可以由几种常用的多边形组合而成。
本篇介绍manim
中提供的几个绘制常用多边形的模块。
Triangle
:等边三角形Square
:正方形Rectangle
:长方形RoundedRectangle
:圆角的长方形Star
:没有相交线的正多边形,图形类似带尖角的星形
1. 主要参数
这几个模块中,Triangle
最简单,它没有自己特有的参数。
Square
有一个参数:
参数名称 | 类型 | 说明 |
---|---|---|
side_length | float | 正方形边的长度 |
Rectangle
略微复杂一些,它可以平均分块形成表格。
参数名称 | 类型 | 说明 |
---|---|---|
height | float | 长方形的高度 |
width | float | 长方形的宽度 |
grid_xstep | float | 划分长方体后,每列的宽度 |
grid_ystep | float | 划分长方体后,每行的高度 |
RoundedRectangle
继承自Rectangle
,可以使用Rectangle
的所有参数,
此外,它还一个自己特有的参数。
参数名称 | 类型 | 说明 |
---|---|---|
corner_radius | float | list[float] |
RoundedRectangle
四个角的曲率可以统一设置,也可以设置成不同的曲率。
Star
模块之所以是这个名称,是因为它绘制出的图形像小星星。
参数名称 | 类型 | 说明 |
---|---|---|
n | int | 星形图形有多少个尖角 |
outer_radius | float | 图形的外接圆半径 |
inner_radius | float | 图形的内切圆半径 |
density | int | 图形尖角的密度,inner_radius为设置时才有效 |
start_angle | float | 顶点开始的角度 |
如果对这些属性的含义看不明白也不要紧,后面结合示例展示星形图形在不同参数下的区别,
就能看的更明白一些了。
2. 使用示例
2.1. 等边三角形和正方形
等边三角形Triangle
算是最简单的多边形了,它没有参数,
但是可以通过scale
,rotate
等方法了改变它的大小和角度。
Triangle()
# 放大1.5倍
Triangle().scale(1.5)
# 旋转180度
Triangle().rotate(PI)
正方形Square
也简单,它只有一个参数,设置正方形的边长。
Square(side_length=0.5)
Square(side_length=1)
Square(side_length=2)
上面代码的显示效果如下:
2.2. 长方形
长方形Rectangle
除了可以设置宽度width
和高度height
,还可以对其进行分块。
所谓分块,就是通过grid_xstep
和grid_ystep
参数讲长方形分割为一个个更小的矩形。
每个小矩形的宽度为width / grid_xstep
,高度为height / grid_ystep
。
Rectangle(width=2, height=1)
Rectangle(width=1, height=3)
# 分割为2行3列的矩形
Rectangle(
width=3,
height=2,
grid_xstep=1,
grid_ystep=1,
)
2.3. 圆角长方形
圆角长方形RoundedRectangle
和长方形Rectangle
的区别在于,它可以设置4个角的曲率。
Rectangle
具有的参数,RoundedRectangle
也可以使用,包括分块的参数。
# 4个角的曲率相同
RoundedRectangle(
corner_radius=0.4,
)
# 对角曲率相同
RoundedRectangle(
corner_radius=[0.2, 0.6],
)
# 4个角曲率都不同
RoundedRectangle(
corner_radius=[0.1, 0.6, 0.3, 0.9],
)
2.4. 星形
星形多边形Star
是一种特殊的凹多边形,因其独特的形状和对称性,常被用作装饰图案和设计元素。
Star
模块可以通过参数尖角的个数以及尖角的密度。
Star(n=5)
# density越大,尖角看上去越密集
Star(n=9, density=2)
Star(n=9, density=4)
3. 附件
文中完整的代码放在网盘中了(polygon01.py
),
下载地址: 完整代码 (访问密码: 6872)
标签:
相关文章
最新发布
- 光流法结合深度学习神经网络的原理及应用(完整代码都有Python opencv)
- Python 图像处理进阶:特征提取与图像分类
- 大数据可视化分析-基于python的电影数据分析及可视化系统_9532dr50
- 【Python】入门(运算、输出、数据类型)
- 【Python】第一弹---解锁编程新世界:深入理解计算机基础与Python入门指南
- 华为OD机试E卷 --第k个排列 --24年OD统一考试(Java & JS & Python & C & C++)
- Python已安装包在import时报错未找到的解决方法
- 【Python】自动化神器PyAutoGUI —告别手动操作,一键模拟鼠标键盘,玩转微信及各种软件自动化
- Pycharm连接SQL Sever(详细教程)
- Python编程练习题及解析(49题)
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Anaconda版本和Python版本对应关系(持续更新...)
- Python与PyTorch的版本对应
- Windows上安装 Python 环境并配置环境变量 (超详细教程)
- Python pyinstaller打包exe最完整教程