From e018fb01f39236e030dcce0b7918aa816579f931 Mon Sep 17 00:00:00 2001 From: Taksh Date: Wed, 1 Jul 2026 05:49:40 +0530 Subject: [PATCH] fix(geometry): preserve Angle.angle_value across become() become() copies points/submobjects but not angle_value, so always_redraw(lambda: Angle(l1, l2)) left get_value() returning the initial angle even after the lines moved. Copy angle_value in an Angle override of become(). Fixes #4512 Co-authored-by: Cursor --- manim/mobject/geometry/line.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/manim/mobject/geometry/line.py b/manim/mobject/geometry/line.py index 2cd7aff807..5dbfeba954 100644 --- a/manim/mobject/geometry/line.py +++ b/manim/mobject/geometry/line.py @@ -1124,6 +1124,14 @@ def construct(self): """ return self.angle_value / DEGREES if degrees else self.angle_value + def become(self, mobject: Mobject, *args: Any, **kwargs: Any) -> Self: + # become() only copies points/submobjects, not angle_value, so + # always_redraw(lambda: Angle(...)) left get_value() stale (#4512). + super().become(mobject, *args, **kwargs) + if isinstance(mobject, Angle): + self.angle_value = mobject.angle_value + return self + @staticmethod def from_three_points( A: Point3DLike, B: Point3DLike, C: Point3DLike, **kwargs: Any