A customizable progress bar component for Manim animations
Project description
Manim Progress Bar
A customizable progress bar component for Manim animations.
Installation
pip install manim-progress-bar
快速开始
from manim import *
from progress_bar import ProgressBar
class MyScene(Scene):
def construct(self):
# 创建进度条
progress = ProgressBar(
width=10,
height=0.4,
position=DOWN * 3.5,
fill_color=BLUE,
duration=10.0
)
# 显示进度条
self.play(FadeIn(progress))
# 自动推进到100%(10秒)
self.play(progress.start())
主要方法
set_progress(progress, run_time=1.0)
手动设置进度,带动画效果。
# 推进到50%,耗时2秒
self.play(progress.set_progress(0.5, run_time=2.0))
auto_progress(duration=None, start_progress=0.0, end_progress=1.0)
根据时间自动推进进度条。
# 5秒内从0%自动走到100%
self.play(progress.auto_progress(duration=5.0))
start()
使用初始化时设置的 duration 开始自动推进。
progress = ProgressBar(duration=10.0)
self.play(progress.start()) # 10秒内达到100%
update_progress_instant(progress)
立即更新进度,无动画效果。
progress.update_progress_instant(0.5) # 立即到50%
参数说明
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
width |
float | 10 | 进度条总宽度 |
height |
float | 0.3 | 进度条高度 |
position |
np.array | DOWN * 3.5 | 进度条位置 |
fill_color |
str/Color | BLUE | 填充颜色 |
background_color |
str/Color | GRAY | 背景颜色 |
border_color |
str/Color | WHITE | 边框颜色 |
border_width |
float | 2 | 边框宽度 |
corner_radius |
float | 0.1 | 圆角半径 |
show_percentage |
bool | True | 是否显示百分比 |
percentage_font_size |
int | 28 | 百分比字体大小 |
percentage_color |
str/Color | WHITE | 百分比文字颜色 |
percentage_font |
str | "Arial" | 百分比字体 |
duration |
float | None | 总时长(秒),用于自动推进 |
示例
基础使用
progress = ProgressBar(
width=10,
height=0.4,
fill_color=BLUE
)
self.play(FadeIn(progress))
self.play(progress.set_progress(0.5, run_time=2.0))
自定义样式
progress = ProgressBar(
width=12,
height=0.5,
position=ORIGIN,
fill_color="#FF6B6B",
background_color="#4ECDC4",
border_color=YELLOW,
border_width=3,
corner_radius=0.15,
show_percentage=True,
percentage_font_size=28
)
视频进度条风格
video_progress = ProgressBar(
width=12,
height=0.2,
position=DOWN * 3.5,
fill_color="#00D4FF",
background_color="#333333",
show_percentage=False,
duration=60.0 # 60秒视频
)
self.play(video_progress.start())
特性
✅ 完全自定义:颜色、位置、高度、宽度都可自定义
✅ 时间控制:支持设置总时长,进度条自动按时间推进
✅ 平滑动画:使用 Manim 的动画系统,动画流畅
✅ 百分比显示:可选择显示/隐藏百分比
✅ 精确填充:根据进度值精确填充到指定位置,100% 时完全铺满
注意事项
- 使用
auto_progress()或start()时,返回的动画已经设置了正确的run_time,不需要在self.play()中再次指定 - 当进度条到达目标进度(通常是100%)时,updater 会自动清理,无需手动调用
clear_updaters()
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
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_progress_bar-0.1.0.tar.gz.
File metadata
- Download URL: manim_progress_bar-0.1.0.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7ae752050e2edc4a44dafa207caea410ddf84dd04c49d2234689c1ca557802f
|
|
| MD5 |
dacda795de8895b88ea1b486a5e868ac
|
|
| BLAKE2b-256 |
8794260e103d96c676685b1239570632adb713672226bd516b06fdbae2ac781b
|
File details
Details for the file manim_progress_bar-0.1.0-py3-none-any.whl.
File metadata
- Download URL: manim_progress_bar-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e0bb10087af277c2d681ee7833aa77e70a8e2d1a2e7acc7334fd13cbb3a54e5
|
|
| MD5 |
69f9a1ea4c393a282095c60a2fb1b4f4
|
|
| BLAKE2b-256 |
c7074b520ba0c19adc8ddfe00055ce60dee4e83eaf606c8f60e8d16a5542010e
|