1.manim边学边做--三维图形的场景类
2.【manim动画教程】-- 安装
3.【manim动画教程】-- 基本图形
4.【manim动画教程】-- 坐标系
5.【manim动画教程】-- 文本样式
6.【manim动画教程】-- 文字和公式
7.【manim动画教程】-- 图形样式
8.【manim动画教程】--相机
9.【manim动画教程】--高级动画效果
10.【manim动画教程】--常用动画效果
11.【manim】之滚动字幕
12.【manim】之圆规动画
13.【manim】之目录动画
14.manim边学边做--DecimalNumber
15.manim边学边做--Integer
16.manim边学边做--Variable
17.manim边学边做--Title
18.manim边学边做--BulletedList
19.manim边学边做--SingleStringMathTex
20.manim边学边做--MathTex
21.manim边学边做--Tex
22.manim边学边做--Text
23.manim边学边做--Paragraph
24.manim边学边做--MarkupText
25.manim边学边做--Code
26.manim边学边做--Matrix
27.manim边学边做--Table
28.manim边学边做--点
29.manim边学边做--圆形类
30.manim边学边做--圆弧形
31.manim边学边做--直线类
32.manim边学边做--带箭头直线
33.manim边学边做--曲线类
34.manim边学边做--角度标记
35.manim边学边做--常用多边形
36.manim边学边做--通用多边形
37.manim边学边做--弧形多边形
38.manim边学边做--空心多边形
39.manim边学边做--图形间集合关系
40.manim边学边做--形状匹配
41.manim边学边做--无向图
42.manim边做边学--有向图
43.manim边做边学--数轴
44.manim边做边学--直角平面
45.manim边做边学--复数平面
46.manim边学边做--极坐标平面
47.manim边学边做--通用二维坐标系
48.manim边做边学--通用三维坐标系
49.manim边学边做--三维的点和线
50.manim边学边做--立方体和棱柱体
51.manim边做边学--圆锥
52.manim边做边学--球体
53.manim边做边学--圆环面
54.manim边做边学--圆柱体
55.manim边做边学--曲面
56.manim边做边学--多面体
57.manim边做边学--文字的创建与销毁
58.manim边做边学--图形的创建与销毁
59.manim边做边学--淡入淡出
60.manim边学边做--渐变生长
61.manim边学边做--突出显示
62.manim边学边做--旋转
63.manim边学边做--移动动画
64.manim边学边做--同伦变换
65.manim边学边做--改变动画速度
66.manim边做边学--动画轨迹
67.manim边做边学--动画组合
68.manim边做边学--动画更新
69.manim边做边学--动画联动
70.manim边做边学--缩放变换
71.manim边做边学--交替变换
72.manim边做边学--淡入淡出变换
73.manim边学边做--时针方向变换
74.manim边学边做--局部变换
75.manim边学边做--通用变换
76.manim边学边做--相机Camera简介
77.manim边学边做--标准相机
78.manim边学边做--场景Scene简介
79.manim边学边做--局部缩放的场景类
80.manim边学边做--向量相关的场景类
81.manim边学边做--线性变换的场景类
82.manim边学边做--移动相机的场景类
83.Manim实现线条发光效果
84.Manim:动画制作背后的魔法
85.manim 动画效果总结
86.manim变换效果总结
87.Manim动画渲染:从代码到屏幕的幕后故事
88.轻松掌握Manim的.animate语法:让动画编程更简单
89.Manim实现图像变形特效
90.Manim实现旋转变色特效
91.
manim边做边学--显函数图像
92.manim边做边学--隐函数图像
在Manim
库中,FunctionGraph
类是一个核心组件,专门用于在坐标系中绘制函数图像。
FunctionGraph
的主要作用是将数学函数以直观的图形形式展示出来,使得复杂的数学概念更加容易理解。它广泛应用于数学教学、科学演示以及数据可视化等领域。
其典型应用场景包括:
- 数学教学:直观展示函数的基本形状和性质(奇偶性、周期性、渐近线等)
- 物理模拟:可视化运动学中的位移-时间图像、速度-时间图像
- 工程应用:绘制信号处理中的波形图、控制系统中的响应曲线
- 算法演示:展示优化算法中的目标函数、机器学习中的损失函数
本文将详细介绍FunctionGraph
的功能、参数和应用场景,并通过实际示例展示其强大功能。
1. 主要参数
FunctionGraph
的主要参数有:
参数 | 类型 | 说明 |
---|---|---|
function | Callable[[float], float] | 必需参数,要绘制的函数(如lambda x: x**2 ) |
x_range | Sequence[float] | 定义域,如[-3, 3] 或 [-3, 3, 0.1] (起点、终点、步长) |
color | Color | 曲线颜色,默认为WHITE |
discontinuities | Sequence[float] | 函数的不连续点列表 |
use_smoothing | bool | 是否使用平滑处理(默认True ) |
dt | float | 参数化步长(影响平滑度) |
t_range | Optional[Sequence[float]] | 参数范围(高级用法) |
其中,function
是核心参数,表示要绘制的函数。
它是一个可调用的函数对象,通常是一个lambda
表达式或定义好的函数。
2. 主要方法
FunctionGraph
的主要方法有:
名称 | 说明 |
---|---|
get_function | 返回用于绘制图像的函数对象。这在需要获取或修改函数时非常有用 |
get_point_from_function | 根据给定的参数值,返回函数图像上的对应点。这在需要获取特定点的坐标时非常方便 |
3. 使用示例
下面通过几个示例来演示如何使用FunctionGraph
来绘制函数图像。
3.1. 正弦和余弦函数图像
这个示例展示了如何绘制正弦和余弦函数的图像。通过指定不同的颜色,可以清晰地区分两个函数。
# 绘制正弦函数图像
sin_func = FunctionGraph(
lambda t: np.sin(t),
color=BLUE,
)
# 绘制余弦函数图像
cos_func = FunctionGraph(
lambda t: np.cos(t),
color=RED,
)
self.play(Create(sin_func))
self.play(Create(cos_func))
3.2. 函数的平移和缩放
这个示例展示了如何通过move_to
和scale
方法对函数图像进行平移和缩放操作。
通过这种方式,可以直观地展示函数图像的变换。
# 绘制原始函数图像
func = FunctionGraph(
lambda t: np.sin(t),
color=BLUE,
)
self.play(Create(func))
self.play(func.animate.move_to(UP))
self.play(func.animate.scale(0.5))
3.3. 复合函数图像
这个示例展示了如何绘制复合函数的图像。
通过将多个函数组合在一起,可以生成复杂的图像,用于展示函数的叠加效果。
# 绘制复合函数图像
composite_func = FunctionGraph(
lambda t: np.sin(t) + 0.5 * np.sin(7 * t) + (1 / 7) * np.sin(14 * t),
color=ORANGE,
)
self.play(Create(composite_func))
3.4. 动态展示函数图像的变化
这个示例展示了如何动态展示函数图像的变化。
通过在每一帧中更新函数的定义,可以实现函数图像的动态变化效果,非常适合用于展示函数随时间的变化。
# 定义一个动态变化的函数
def dynamic_func(t, time):
return np.sin(t + time)
# 创建一个动态函数图像
dynamic_graph = FunctionGraph(
lambda t: dynamic_func(t, 0),
color=TEAL,
)
self.add(dynamic_graph)
# 动态更新函数图像
for time in range(10):
new_graph = FunctionGraph(
lambda t: dynamic_func(t, time),
color=TEAL,
)
self.play(Transform(dynamic_graph, new_graph))
4. 附件
文中的代码只是关键部分的截取,完整的代码共享在网盘中(function_graph.py
),
下载地址: 完整代码 (访问密码: 6872)
原创作者: wang_yb 转载于: https://www.cnblogs.com/wang_yb/p/18905882