Translate and Rotate

class TranslateAndRotate(mobject: VMobject, distance: float, angle: float, run_time=3, apply_function_kwargs: Dict[str, Any] | None = None, **kwargs)[source]

An animation that translates a VMobject along an axis that is simultaneously rotating. In a sense, this is a wrapper class that automatically decides which animation to apply to a given object, without having to specify whether it should be a CircleTranslateAndRotate, DotTranslateAndRotate, etc.

Note

In contrast to a rotated translate (e.g., CircleRotatedTranslate), here the translation axis is rotated while the translation is happening.

Examples

Example: TranslateAndRotateExample

from manim import *

from hmanim.native import Circle, Dot, Point, TranslateAndRotate

class TranslateAndRotateExample(Scene):
    def construct(self):
        # The plane that all our hyperbolic objects live in.
        plane = PolarPlane(size=5)
        self.add(plane)

        # Draw a circle.
        center = Point(3.0, 0.0)
        circle = Circle(
            center=center,
            radius=5.0,
            plane=plane,
            color=YELLOW,
        )
        self.add(circle)

        # Draw the circle center.
        dot = Dot(
            center,
            plane=plane,
            color=YELLOW,
        )
        self.add(dot)

        # Rotate both the circle and the circle center.
        distance = 3.0
        angle = TAU / 4
        self.play(
            TranslateAndRotate(
                circle,
                distance=distance,
                angle=angle
            ),
            TranslateAndRotate(
                dot,
                distance=distance,
                angle=angle,
            ),
        )
from hmanim.native import Circle, Dot, Point, TranslateAndRotate

class TranslateAndRotateExample(Scene):
    def construct(self):
        # The plane that all our hyperbolic objects live in.
        plane = PolarPlane(size=5)
        self.add(plane)

        # Draw a circle.
        center = Point(3.0, 0.0)
        circle = Circle(
            center=center,
            radius=5.0,
            plane=plane,
            color=YELLOW,
        )
        self.add(circle)

        # Draw the circle center.
        dot = Dot(
            center,
            plane=plane,
            color=YELLOW,
        )
        self.add(dot)

        # Rotate both the circle and the circle center.
        distance = 3.0
        angle = TAU / 4
        self.play(
            TranslateAndRotate(
                circle,
                distance=distance,
                angle=angle
            ),
            TranslateAndRotate(
                dot,
                distance=distance,
                angle=angle,
            ),
        )