代码输入动画效果
Project description
Manim Code Anim
代码输入动画效果,基于 Manim 库实现的代码块动画效果。
项目简介
manim-code-anim 是一个基于 Manim 的扩展库,用于在 Manim 动画中创建带有语法高亮的代码块动画。该库基于 CasualCodersProjects/manim-code-blocks 库进行修改和扩展。
主要功能
- 支持多种编程语言的语法高亮
- 代码逐字显示动画效果
- 支持中文显示
- 可自定义字体和主题
安装
依赖项
- Python 3.12+
- Manim 0.20.0+
- tokenize-all-code 1.0.18+
安装方法
# 克隆仓库
git clone https://github.com/yourusername/manim-code-anim.git
cd manim-code-anim
# 安装依赖
pip install -e .
使用示例
基本使用
from manim import *
from manim_code_anim.code_anim import CodeAnim, Python
class CodeAnimation(Scene):
def construct(self):
# 创建一个Python代码块
code = CodeAnim(
text='print("Hello World!")',
language=Python
)
# 播放创建动画
self.play(*code.create())
self.wait(2)
# 播放销毁动画
self.play(*code.uncreate())
self.wait()
if __name__ == "__main__":
scene = CodeAnimation()
scene.render()
多行代码
from manim import *
from manim_code_anim.code_anim import CodeAnim, Python
class MultiLineCode(Scene):
def construct(self):
python_code = '''
def fibonacci(n):
if n <= 1:
return n
return fibonacci(n-1) + fibonacci(n-2)
print(fibonacci(10))
'''
code = CodeAnim(
text=python_code,
language=Python
)
self.play(*code.create())
self.wait(3)
self.play(*code.uncreate())
self.wait()
支持中文
from manim import *
from manim_code_anim.code_anim import CodeAnim, Python
class ChineseCode(Scene):
def construct(self):
code = CodeAnim(
text='''
# 这是中文注释
print("你好,世界!") # 中文注释
''',
language=Python
)
self.play(*code.create())
self.wait(2)
self.play(*code.uncreate())
self.wait()
自定义字体
from manim import *
from manim_code_anim.code_anim import CodeAnim, Python
class CustomFontCode(Scene):
def construct(self):
code = CodeAnim(
text='print("Hello, 世界!")',
language=Python,
font="Courier New", # 英文代码字体
chinese_font="SimHei" # 中文字体
)
self.play(*code.create())
self.wait(2)
self.play(*code.uncreate())
self.wait()
支持的编程语言
- C
- C++
- C#
- Fortran
- Go
- Haskell
- Java
- JavaScript
- Lua
- Python
- Ruby
- Rust
- SQL
- TypeScript
API 参考
CodeAnim 类
CodeAnim(
text: str, # 要显示的代码文本
language: ProgrammingLanguage | None = None, # 编程语言
theme: Theme = OneDark, # 语法高亮主题
font: str = "FiraCode Nerd Font Mono", # 英文代码字体
chinese_font: str = "Microsoft YaHei", # 中文字体
**kwargs: object # 传递给VGroup的其他参数
)
方法
create(**kwargs): 返回创建代码块的动画元组uncreate(**kwargs): 返回销毁代码块的动画元组
基于的库
本项目基于 CasualCodersProjects/manim-code-blocks 库,进行了以下修改:
- 添加了中文支持
- 优化了字体处理
- 修复了一些bug
- 完善了文档
许可证
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
manim_code_anim-0.1.0.tar.gz
(21.0 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file manim_code_anim-0.1.0.tar.gz.
File metadata
- Download URL: manim_code_anim-0.1.0.tar.gz
- Upload date:
- Size: 21.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
035e42aef0bedfb99d5ad22a9c47a0d09baa86e071c14ac0c313fd550743d101
|
|
| MD5 |
e8c1c83d65497faec70a30d01ee9342f
|
|
| BLAKE2b-256 |
2adbf3c955c8a28698b0bd0002165362372995f993b85687accdaf9a52d2ea86
|
File details
Details for the file manim_code_anim-0.1.0-py3-none-any.whl.
File metadata
- Download URL: manim_code_anim-0.1.0-py3-none-any.whl
- Upload date:
- Size: 18.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b9f2770a55a2beb9eab5750eb5fda4e378e0588dcfaa2be7e8896fabf670044
|
|
| MD5 |
0e3eabfe85e526d550ad40af78efd178
|
|
| BLAKE2b-256 |
3f1a69e784fc42e4541b17a53be0e22e768b7d28e1b83a7cac619f0316d2418b
|