diff --git a/manim/mobject/mobject.py b/manim/mobject/mobject.py index 73b1920ff6..40bcd46336 100644 --- a/manim/mobject/mobject.py +++ b/manim/mobject/mobject.py @@ -1734,7 +1734,8 @@ def put_start_and_end_on(self, start: Point3D, end: Point3D) -> Self: curr_start, curr_end = self.get_start_and_end() curr_vect = curr_end - curr_start if np.all(curr_vect == 0): - raise Exception("Cannot position endpoints of closed loop") + self.points = start + return self target_vect = np.array(end) - np.array(start) axis = ( normalize(np.cross(curr_vect, target_vect)) diff --git a/tests/module/mobject/graphing/test_number_line.py b/tests/module/mobject/graphing/test_number_line.py index 3fededfab8..56cd7267ed 100644 --- a/tests/module/mobject/graphing/test_number_line.py +++ b/tests/module/mobject/graphing/test_number_line.py @@ -2,7 +2,7 @@ import numpy as np -from manim import NumberLine +from manim import DashedLine, NumberLine from manim.mobject.text.numbers import Integer @@ -121,3 +121,10 @@ def test_point_to_number(): np.testing.assert_array_equal(np.round(num_1, 4), np.round(expected, 4)) np.testing.assert_array_equal(np.round(num_2, 4), np.round(expected, 4)) np.testing.assert_array_equal(np.round(num_3, 4), np.round(expected, 4)) + + +def test_start_and_end_at_same_point(): + line = DashedLine(np.zeros(3), np.zeros(3)) + line.put_start_and_end_on(np.zeros(3), np.array([0, 0, 0])) + + np.testing.assert_array_equal(np.round(np.zeros(3), 4), np.round(line.points, 4))