Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

manim_progress_bar-0.1.0.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

manim_progress_bar-0.1.0-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

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

Hashes for manim_progress_bar-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e7ae752050e2edc4a44dafa207caea410ddf84dd04c49d2234689c1ca557802f
MD5 dacda795de8895b88ea1b486a5e868ac
BLAKE2b-256 8794260e103d96c676685b1239570632adb713672226bd516b06fdbae2ac781b

See more details on using hashes here.

File details

Details for the file manim_progress_bar-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for manim_progress_bar-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6e0bb10087af277c2d681ee7833aa77e70a8e2d1a2e7acc7334fd13cbb3a54e5
MD5 69f9a1ea4c393a282095c60a2fb1b4f4
BLAKE2b-256 c7074b520ba0c19adc8ddfe00055ce60dee4e83eaf606c8f60e8d16a5542010e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page