为Manim视频对象添加闪光效果

为Manim视频对象添加闪光效果
老刘博客今天我们来介绍一下如何在 Manim 中用于实现从指定点向四周发射闪烁线条的动画,这种动画效果主要是继承自 AnimationGroup ,常用于突出画面中的关键对象或位置,以下是分模块的详细解析:
一、类的核心定位与基础属性
- 功能:从指定中心点向所有方向发射线条,形成闪烁 / 闪光的视觉效果,用于吸引观众注意力到目标位置 / 对象。
- 继承关系:基于
AnimationGroup实现,支持动画组的相关特性。 - 默认属性:初始化时自带默认参数,如默认黄色(#FFFF00)、12 条闪烁线条、线条长度 0.2、动画时长 1 秒等,可直接调用无需手动配置。
二、完整参数说明(含类型、作用、默认值)
Flash 的所有参数均可自定义,分为核心视觉参数和动画时长参数,部分关键参数补充实用说明,参数及默认值如下:
| 参数名 | 类型 | 作用 | 默认值 |
|---|---|---|---|
| point | Mobject | 闪烁线条的中心点;传入对象(Mobject)时自动取对象中心 | 无(必传) |
| line_length | float | 单条闪烁线条的长度 | 0.2 |
| num_lines | int | 向四周发射的线条总数,数量越多闪光效果越密集 | 12 |
| flash_radius | float | 线条起始点与中心点的距离(半径),控制闪光的 “起始范围” | 0.1 |
| line_stroke_width | int | 线条的笔触宽度,数值越大线条越粗 | 3 |
| color | str/ManimColor | 线条颜色,支持十六进制、Manim 内置颜色(如 RED/YELLOW) | #FFFF00(黄色) |
| time_width | float | 线条的时间宽度,控制闪光的 “持续细腻度”(参考 ShowPassingFlash) | 1 |
| run_time | float | 整个 Flash 动画的运行时长(秒) | 1.0 |
| kwargs | - | 传递给 Succession 构造器的额外参数,支持扩展动画特性 | - |
三、实用代码示例(2 个核心场景)
先来看下面简单的示例,覆盖基础使用和高级自定义场景,适配不同需求:
基础场景:
对单个对象添加闪光
1 | from manim import * |
对黄色圆点添加默认 Flash 效果,仅需传入目标对象,无需自定义参数,代码简洁,适合快速强调单个对象。我们来看显示的实例效果
高级场景:
对圆形自定义闪光,为半径 2 的圆形配置红色、30 条线条的闪光,关键自定义点:
- 结合
SMALL_BUFF(Manim 内置常量,值为 0.1)设置flash_radius,让闪光从圆形外侧开始发射; - 配置
rate_func = rush_from(动画速率函数,效果为先快后慢),让闪光更贴合视觉习惯; - 调整
time_width=0.3、run_time=2,控制闪光的细腻度和总时长。
代码如下:
1 | from manim import * |
实际效果如下:
四、进阶用法:
如果你需要更个性化的闪光效果(如更多线条、更长时长、自定义半径等),可通过参数自定义,以下是覆盖核心参数的示例:
1 | from manim import * |
实际演示效果
好了,今天就分享到这里,感谢来到老刘博客。
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果







