12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- from __future__ import annotations
- from manimlib.animation.transform import Transform
- from manimlib.constants import PI
- from typing import TYPE_CHECKING
- if TYPE_CHECKING:
- import numpy as np
- from manimlib.mobject.geometry import Arrow
- from manimlib.mobject.mobject import Mobject
- from manimlib.typing import ManimColor
- class GrowFromPoint(Transform):
- def __init__(
- self,
- mobject: Mobject,
- point: np.ndarray,
- point_color: ManimColor = None,
- **kwargs
- ):
- self.point = point
- self.point_color = point_color
- super().__init__(mobject, **kwargs)
- def create_target(self) -> Mobject:
- return self.mobject.copy()
- def create_starting_mobject(self) -> Mobject:
- start = super().create_starting_mobject()
- start.scale(0)
- start.move_to(self.point)
- if self.point_color is not None:
- start.set_color(self.point_color)
- return start
- class GrowFromCenter(GrowFromPoint):
- def __init__(self, mobject: Mobject, **kwargs):
- point = mobject.get_center()
- super().__init__(mobject, point, **kwargs)
- class GrowFromEdge(GrowFromPoint):
- def __init__(self, mobject: Mobject, edge: np.ndarray, **kwargs):
- point = mobject.get_bounding_box_point(edge)
- super().__init__(mobject, point, **kwargs)
- class GrowArrow(GrowFromPoint):
- def __init__(self, arrow: Arrow, **kwargs):
- point = arrow.get_start()
- super().__init__(arrow, point, **kwargs)
|