Skip to content

chanbao43/-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

信号与系统 — Manim 数学动画

基于 3Blue1Brown 风格的 Manim 动画库,可视化信号与系统课程中的核心数学概念。

所有动画使用 Python + Manim Community 渲染,带中文支持 (xelatex)。


项目结构

animation/
├── animate.bat                  # Windows 批处理启动脚本
├── animate.ps1                  # PowerShell 启动脚本
├── pycharm-setup.md             # PyCharm External Tools 配置指南
└── Project2/                    # 信号与系统动画
    ├── ft_properties.py         # 傅里叶变换性质 — 8幕教学动画
    ├── s_to_z_mapping.py        # s域 → z域 映射 — 3组可视化
    ├── FT学习大纲.md             # 傅里叶变换完整学习指南
    ├── FT性质.md                 # 傅里叶变换性质速查表
    ├── s域到z域映射.md           # s-z映射数学原理 (教材原文)
    └── _test_xetex.py           # xelatex 中文渲染测试

动画概览

1. 傅里叶变换性质 (ft_properties.py)

基于 "缠绕机 + 质心" 隐喻,可视化傅里叶变换的 6 条核心性质:

性质 公式 时长
0 引入 傅里叶变换定义 ~40s
1 缠绕机 双面板 + ω扫描 + 解旋 ~90s
2 线性性质 a₁f₁ + a₂f₂ ↔ a₁F₁ + a₂F₂ ~60s
3 时移特性 f(t-t₀) ↔ e^{-jωt₀}F(ω) ~60s
4 频移特性 f(t)e^{jω_c t} ↔ F(ω-ω_c) ~60s
5 尺度变换 f(at) ↔ (1/|a|)F(ω/a) ~75s
6 卷积定理 f₁∗f₂ ↔ F₁·F₂ ~60s
7 总结 6条性质网格 ~30s
  • 场景类: FourierTransformProperties
  • 双面板布局: 左 = 缠绕机(复平面),右 = 频谱图

2. s域 → z域 映射 (s_to_z_mapping.py)

可视化连续时间与离散时间之间的桥梁 — $z = e^{sT}$

场景类 内容 风格
SDomainToZDomain 5幕教学:公式→坐标系→点映射→区域映射→多值性 分幕讲解
CoordinateTransform 网格线变形:竖线→同心圆,水平线→辐角射线 连续变形
GridDeformation 原地网格扭曲:矩形网格 → 圆形网格 (ValueTracker) 实时变形

环境配置

依赖

安装

# 1. 克隆仓库
git clone https://github.com/chanbao43/-.git
cd animation

# 2. 创建虚拟环境
python -m venv venv

# 3. 激活虚拟环境
# Windows:
venv\Scripts\activate
# Linux/Mac:
source venv/bin/activate

# 4. 安装 Manim
pip install manim

# 5. 确保 MiKTeX 和 FFmpeg 已安装并在 PATH 中

使用方法

快速启动

# 进入 Project2 目录
cd Project2

# ===== 傅里叶变换性质动画 =====

# 480p 快速预览
manim -ql ft_properties.py FourierTransformProperties

# 720p 高清输出
manim -qm ft_properties.py FourierTransformProperties

# ===== s域→z域 映射动画 =====

# 分幕教学版
manim -ql s_to_z_mapping.py SDomainToZDomain

# 坐标变换版 (网格变形)
manim -ql s_to_z_mapping.py CoordinateTransform

# 原地变形版 (最酷的视觉效果)
manim -ql s_to_z_mapping.py GridDeformation

Windows 一键启动

使用项目提供的启动脚本 (自动配置 ffmpeg + MiKTeX + venv):

# PowerShell
.\animate.ps1 -qm ft_properties.py FourierTransformProperties

# CMD
animate.bat -qm ft_properties.py FourierTransformProperties

渲染质量选项

选项 分辨率 用途
-ql 480p15 快速预览
-qm 720p30 标准输出
-qh 1080p60 高清演示
-qk 4K60 极限画质

学习指南

动画配套的详细学习材料在 Project2/ 目录中:


致谢


动画愉快 喵~

About

信号与系统自制动画

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages