3b1b-manim/manimlib/mobject/frame.py

56 lines
1.3 KiB
Python
Raw Normal View History

2022-12-15 16:28:15 -08:00
from __future__ import annotations
2022-04-12 19:19:59 +08:00
from manimlib.constants import BLACK, GREY_E
from manimlib.constants import FRAME_HEIGHT
from manimlib.mobject.geometry import Rectangle
2022-12-15 16:28:15 -08:00
from typing import TYPE_CHECKING
if TYPE_CHECKING:
2022-12-16 20:19:18 -08:00
from manimlib.typing import ManimColor
2022-12-15 16:28:15 -08:00
class ScreenRectangle(Rectangle):
2022-12-15 16:28:15 -08:00
def __init__(
self,
aspect_ratio: float = 16.0 / 9.0,
height: float = 4,
**kwargs
):
super().__init__(
width=aspect_ratio * height,
height=height,
**kwargs
)
class FullScreenRectangle(ScreenRectangle):
2022-12-15 16:28:15 -08:00
def __init__(
self,
height: float = FRAME_HEIGHT,
fill_color: ManimColor = GREY_E,
fill_opacity: float = 1,
stroke_width: float = 0,
**kwargs,
):
super().__init__(
height=height,
fill_color=fill_color,
fill_opacity=fill_opacity,
stroke_width=stroke_width,
)
class FullScreenFadeRectangle(FullScreenRectangle):
2022-12-15 16:28:15 -08:00
def __init__(
self,
stroke_width: float = 0.0,
fill_color: ManimColor = BLACK,
fill_opacity: float = 0.7,
**kwargs,
):
super().__init__(
stroke_width=stroke_width,
fill_color=fill_color,
fill_opacity=fill_opacity,
)