首页 > Python资料 博客日记
manim边做边学--通用三维坐标系
2024-11-01 19:00:03Python资料围观27次
ThreeDAxes
是Manim
中用于创建三维坐标系的类。
在数学、物理和工程等领域,三维坐标系的绘制是非常重要的。
ThreeDAxes
使得用户能够在动画中直观地展示三维空间中的对象和关系,从而提高演示文稿和教学的效果。
ThreeDAxes
提供了多种参数,如坐标轴的范围、长度、颜色、粗细等,以及光源位置和光泽度等,这些参数使得用户能够根据需要自定义坐标系的外观和行为。
1. 主要参数
ThreeDAxes
的主要参数有:
参数名称 | 类型 | 说明 |
---|---|---|
x_range | Sequence[float] | X轴的范围,格式为(起始值,结束值,步长) |
y_range | Sequence[float] | Y轴的范围,格式为(起始值,结束值,步长) |
z_range | Sequence[float] | Z轴的范围,格式为(起始值,结束值,步长) |
x_length | float | X轴的长度 |
y_length | float | Y轴的长度 |
z_length | float | Z轴的长度 |
z_axis_config | dict | 对Z轴的配置,如颜色、粗细等 |
z_normal | Vector3D | 定义Z轴的“正向”方向 |
num_axis_pieces | int | 轴的细分数量 |
light_source | Sequence[float] | 光源的位置,影响阴影和光照效果 |
ThreeDAxes
也是继承自Axes
的,所以也有x_axis_config
和y_axis_config
参数,这里没有再列出来。
2. 主要方法
ThreeDAxes
主要使用的是下面2个方法:
名称 | 说明 |
---|---|
get_axis_labels | 为每个轴添加标签 |
add_coordinates | 在坐标系中添加网格线或刻度标记 |
3. 使用示例
下面通过几个示例展示ThreeDAxes
的关键功能和应用场景,每个示例都聚焦于该类的一个或多个核心参数或方法。
3.1. 坐标轴范围和刻度
在这个示例中,我们使用ThreeDAxes
的x_range
, y_range
, 和z_range
参数来设置坐标轴的范围,
并通过x_length
, y_length
, z_length
来调整坐标轴的长度。
示例中:
- 设置x轴范围为
(-5, 5)
,y轴范围为(-3, 3)
,z轴范围为(-2, 2)
- 调整x轴长度为
10
个单位,y轴长度为6
个单位,z轴长度为4
个单位 - 设置x轴刻度单位为
1.5
,y轴刻度单位为1
,z轴刻度单位为0.5
axes = ThreeDAxes(
x_range=(-5, 5, 1.5),
y_range=(-3, 3, 1),
z_range=(-2, 2, 0.5),
x_length=10,
y_length=6,
z_length=4,
)
axes.add_coordinates()
3.2. 自定义坐标轴颜色和标签
本示例将展示如何使用*_axis_config
参数来自定义坐标轴的颜色、粗细以及标签。
使用x_axis_config
将x轴设置红色,轴的粗细设为1
,
使用y_axis_config
将y轴设置绿色,轴的粗细设为3
,
使用z_axis_config
将z轴设置蓝色,轴的粗细设为5
。
然后,再为每个轴添加自定义标签,如x轴标签为"人口",y轴标签为"年龄",z轴标签为"收入"。
axes = ThreeDAxes(
x_axis_config={
"color": RED,
"stroke_width": 1,
},
y_axis_config={
"color": GREEN,
"stroke_width": 3,
},
z_axis_config={
"color": BLUE,
"stroke_width": 5,
},
).scale(0.6)
labels = axes.get_axis_labels(
Text("人口", font_size=20, color=RED),
Text("年龄", font_size=20, color=GREEN),
Text("收入", font_size=20, color=BLUE),
)
axes.add_coordinates()
3.3. 绘制三维函数
二维坐标系Axes
中绘制的是曲线函数,在三维坐标系ThreeDAxes
中,可以使用plot_surface
函数来绘制曲面函数。
本示例绘制一个 $ z = x2+y2 $的曲面。
axes = ThreeDAxes(
x_range=[-3, 3],
y_range=[-3, 3],
z_range=[-1, 3],
x_length=6,
y_length=6,
z_length=4,
)
graph = axes.plot_surface(
lambda u, v: u**2 + v**2,
u_range=[-1, 1],
v_range=[-1, 1],
)
4. 附件
文中的代码只是关键部分的截取,完整的代码共享在网盘中(threed_axes.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