首页 > Python资料 博客日记
manim边学边做--圆弧形
2024-08-20 10:30:02Python资料围观68次
圆弧形可以算是一种特殊的圆形,它是圆形的一部分。manim
中,单独为圆弧形状封装了几个模块:
Arc
:通用的圆弧,根据半径和角度来绘制圆弧ArcBetweenPoints
:根据两个点和角度来绘制圆弧AnnularSector
:环形圆弧,相当于是圆环的一部分Sector
:扇形,始终是1/4个圆环。
其中,ArcBetweenPoints
和AnnularSector
继承自Arc
,Sector
继承自AnnularSector
。
圆弧系列的模块位于manim
中的Mobject
之下。
1. 主要参数
模块Arc
的主要参数有:
参数名称 | 类型 | 说明 |
---|---|---|
radius | float | 圆弧的半径 |
start_angle | float | 圆弧开始的弧度 |
angle | float | 圆弧的弧度 |
num_components | int | 组成弧的片段,这个值越大,弧越圆滑 |
arc_center | Point3D | 圆弧对应的圆心位置 |
圆弧的起点和终点是由start_angle
和angle
控制的,start_angle
参数控制圆弧的起点,默认值是0
(圆心右边为0度);angle
参数是圆弧的弧度,start_angle + angle
的值就是圆弧的终点,angle
是逆时针计算的。
模块ArcBetweenPoints
的主要参数有:
参数名称 | 类型 | 说明 |
---|---|---|
start | Point3D | 圆弧的起点 |
end | Point3D | 圆弧的终点 |
angle | float | 圆弧的弧度 |
raduis | float | 圆弧的半径 |
这个模块是根据两个点(start
和end
)来绘制圆弧,angle
和raduis
参数只能设置一个,用来控制圆弧的弧长。start
和end
固定时,angle
越大,弧长越长;raduis
越大,弧长越短。
模块AnnularSector
的主要参数有:
参数名称 | 类型 | 说明 |
---|---|---|
inner_radius | float | 环状弧形的内半径 |
outer_radius | float | 环状弧形的外半径 |
start_angle | float | 环状弧形开始的弧度 |
angle | float | 环状弧形的弧度 |
inner_radius
和outer_radius
的差形成了一个环形;start_angle
和angle
的含义与模块Arc
中的同名参数一样。
模块Sector
的主要参数:
参数名称 | 类型 | 说明 |
---|---|---|
inner_radius | float | 环状弧形的内半径 |
outer_radius | float | 环状弧形的外半径 |
Sector
模块只有inner_radius
和outer_radius
两个参数,因为它默认为1/4个圆环。
2. 主要方法
这几个模块的作用主要是展示图形,所以方法不多,常用的有两个:
名称 | 说明 |
---|---|
get_arc_center | 获取弧形当前的圆心坐标 |
move_arc_center_to | 设置弧形新的圆心坐标 |
3. 使用示例
下面分别针对4种圆弧形的模块的参数,演示一些示例。
3.1. 通用圆弧
通用的的圆弧Arc
是最常用的,start_angle
和angle
设置圆弧的起点和弧度,arc_center
设置圆弧的位置,radius
控制圆弧的大小。
Arc(
arc_center=LEFT * 2,
angle=PI,
)
Arc(
radius=1.5,
arc_center=RIGHT,
angle=PI,
)
Arc(
start_angle=PI / 2,
angle=PI / 2,
arc_center=LEFT * 2 + DOWN * 2,
)
Arc(
start_angle=PI,
angle=PI * 3 / 2,
arc_center=RIGHT + DOWN * 1.5,
)
3.2. 根据两点生成圆弧
从固定的两点生成圆弧ArcBetweenPoints
也是在制作动画时常用的方式,
参数start
和end
设置圆弧的起点和终点;angle
和radius
设置圆弧的弯曲程度,这两个参数只能使用一个,同时设置时只有radius
生
ArcBetweenPoints(
start.get_center(),
end.get_center(),
radius=0.8,
)
ArcBetweenPoints(
start.get_center(),
end.get_center(),
radius=1.6,
)
ArcBetweenPoints(
start.get_center(),
end.get_center(),
angle=PI / 2,
)
ArcBetweenPoints(
start.get_center(),
end.get_center(),
angle=PI,
)
前两个示例用radius
控制圆弧的度数,后两个示例用angle
控制圆弧的度数。
3.3. 环形的圆弧
环形的圆弧AnnularSector
可以理解成增加了厚度的圆弧。
它可以使用Arc
的参数,不同之处在于它的半径有两个,一个是inner_radius
,一个是outer_radius
。
这两个半径之差就是环形的厚度。
AnnularSector(
inner_radius=0.5,
outer_radius=1.5,
angle=PI,
)
AnnularSector(
inner_radius=0.5,
outer_radius=0.8,
angle=PI,
)
AnnularSector(
start_angle=PI / 2,
angle=PI / 2,
inner_radius=0.5,
outer_radius=1.5,
)
AnnularSector(
start_angle=PI,
angle=PI * 3 / 2,
inner_radius=0.5,
outer_radius=0.8,
)
3.4. 扇形
扇形Sector
是一种简化的AnnularSector
,它固定为1/4
个圆环。
Sector(
inner_radius=0.5,
outer_radius=1.5,
)
Sector(
inner_radius=0.5,
outer_radius=0.8,
)
Sector(
inner_radius=1,
outer_radius=1.5,
)
Sector(
inner_radius=0.3,
outer_radius=1.8,
)
4. 附件
文中完整的代码放在网盘中了(arc.py
),
下载地址: 完整代码 (访问密码: 6872)
标签:
相关文章
最新发布
- 【Python】selenium安装+Microsoft Edge驱动器下载配置流程
- Python 中自动打开网页并点击[自动化脚本],Selenium
- Anaconda基础使用
- 【Python】成功解决 TypeError: ‘<‘ not supported between instances of ‘str’ and ‘int’
- manim边学边做--三维的点和线
- CPython是最常用的Python解释器之一,也是Python官方实现。它是用C语言编写的,旨在提供一个高效且易于使用的Python解释器。
- Anaconda安装配置Jupyter(2024最新版)
- Python中读取Excel最快的几种方法!
- Python某城市美食商家爬虫数据可视化分析和推荐查询系统毕业设计论文开题报告
- 如何使用 Python 批量检测和转换 JSONL 文件编码为 UTF-8
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Python与PyTorch的版本对应
- Anaconda版本和Python版本对应关系(持续更新...)
- Python pyinstaller打包exe最完整教程
- Could not build wheels for llama-cpp-python, which is required to install pyproject.toml-based proj