little improvement to Mobject.scale

This commit is contained in:
TonyCrane
2021-08-03 15:25:13 +08:00
parent 9df58e4ddf
commit 3d5642f3d7

View File

@ -561,7 +561,7 @@ class Mobject(object):
)
return self
def scale(self, scale_factor, min_scale_factor=1e-8, **kwargs):
def scale(self, scale_factor, min_scale_factor=1e-8, about_point=None, about_edge=ORIGIN, recurse=True):
"""
Default behavior is to scale about the center of the mobject.
The argument about_edge can be a vector, indicating which side of
@ -572,10 +572,17 @@ class Mobject(object):
respect to that point.
"""
scale_factor = max(scale_factor, min_scale_factor)
if about_point is None and about_edge is not None:
about_point = self.get_bounding_box_point(about_edge)
if recurse:
for submob in self.submobjects:
submob.scale(scale_factor, about_point=about_point, recurse=True)
if not self.submobjects:
self.apply_points_function(
lambda points: scale_factor * points,
works_on_bounding_box=True,
**kwargs
about_point=about_point,
about_edge=about_edge
)
return self