Merge pull request #1889 from 3b1b/bug-fixes

Bug fixes
This commit is contained in:
Grant Sanderson 2022-11-03 16:49:40 -07:00 committed by GitHub
commit 764dec20eb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 14 additions and 10 deletions

View file

@ -347,7 +347,7 @@ class Circle(Arc):
def point_at_angle(self, angle: float) -> np.ndarray:
start_angle = self.get_start_angle()
return self.point_from_proportion(
(angle - start_angle) / TAU
((angle - start_angle) % TAU) / TAU
)
def get_radius(self) -> float:

View file

@ -94,15 +94,12 @@ class Matrix(VMobject):
or mobjects
"""
VMobject.__init__(self, **kwargs)
matrix = self.matrix = np.array(matrix, ndmin=2)
mob_matrix = self.matrix_to_mob_matrix(matrix)
mob_matrix = self.mob_matrix = self.matrix_to_mob_matrix(matrix)
self.organize_mob_matrix(mob_matrix)
# self.elements = VGroup(*mob_matrix.flatten())
self.elements = VGroup(*it.chain(*mob_matrix))
self.add(self.elements)
self.add_brackets()
self.center()
self.mob_matrix = mob_matrix
if self.add_background_rectangles_to_entries:
for mob in self.elements:
mob.add_background_rectangle()
@ -129,7 +126,7 @@ class Matrix(VMobject):
return self
def add_brackets(self):
height = self.matrix.shape[0]
height = len(self.mob_matrix)
bracket_pair = Tex("".join([
"\\left[",
"\\begin{array}{c}",

View file

@ -627,7 +627,7 @@ class Mobject(object):
mobject = pickle.load(fp)
return mobject
def become(self, mobject: Mobject):
def become(self, mobject: Mobject, match_updaters=False):
"""
Edit all data and submobjects to be idential
to another mobject
@ -647,7 +647,8 @@ class Mobject(object):
if isinstance(value, Mobject) and value in family2:
setattr(self, attr, family1[family2.index(value)])
self.refresh_bounding_box(recurse_down=True)
self.match_updaters(mobject)
if match_updaters:
self.match_updaters(mobject)
return self
def looks_identical(self, mobject: Mobject):
@ -1265,7 +1266,10 @@ class Mobject(object):
return self.data["rgbas"][0, 3]
def set_color_by_gradient(self, *colors: ManimColor):
self.set_submobject_colors_by_gradient(*colors)
if self.has_points():
self.set_color(colors)
else:
self.set_submobject_colors_by_gradient(*colors)
return self
def set_submobject_colors_by_gradient(self, *colors: ManimColor):

View file

@ -294,7 +294,10 @@ def find_intersection(
denom[abs(denom) < threshold] = np.inf # So that ratio goes to 0 there
ratio = numer / denom
ratio = np.repeat(ratio, n).reshape((m, n))
return p0 + ratio * v0
result = p0 + ratio * v0
if m == 1:
return result[0]
return result
def get_closest_point_on_line(