コード例 #1
0
    def __init__(
        self,
        *mobjects: Mobject,
        shift: np.ndarray | None = None,
        target_position: np.ndarray | Mobject | None = None,
        scale: float = 1,
        **kwargs,
    ) -> None:
        if not mobjects:
            raise ValueError("At least one mobject must be passed.")
        if len(mobjects) == 1:
            mobject = mobjects[0]
        else:
            mobject = Group(*mobjects)

        self.point_target = False
        if shift is None:
            if target_position is not None:
                if isinstance(target_position, (Mobject, OpenGLMobject)):
                    target_position = target_position.get_center()
                shift = target_position - mobject.get_center()
                self.point_target = True
            else:
                shift = ORIGIN
        self.shift_vector = shift
        self.scale_factor = scale
        super().__init__(mobject, **kwargs)