A few small fixes to new about_point behavior

This commit is contained in:
Grant Sanderson
2018-01-20 11:18:43 -08:00
parent 48dad34f95
commit fcd1e7d6a5

View File

@ -159,7 +159,7 @@ class Mobject(object):
def rotate(self, angle, axis = OUT, **kwargs): def rotate(self, angle, axis = OUT, **kwargs):
rot_matrix = rotation_matrix(angle, axis) rot_matrix = rotation_matrix(angle, axis)
self.apply_points_function_about_point( self.apply_points_function_about_point(
lambda points : np.dot(mob.points, rot_matrix.T), lambda points : np.dot(points, rot_matrix.T),
**kwargs **kwargs
) )
return self return self
@ -168,20 +168,29 @@ class Mobject(object):
def func(points): def func(points):
points[:,dim] *= factor points[:,dim] *= factor
return points return points
self.apply_points_function_about_point(func, about_point) self.apply_points_function_about_point(func, **kwargs)
return self return self
def apply_function(self, function, about_point = ORIGIN, **kwargs): def apply_function(self, function, **kwargs):
#Default to applying matrix about the origin, not mobjects center
if len(kwargs) == 0:
kwargs["about_point"] = ORIGIN
self.apply_points_function_about_point( self.apply_points_function_about_point(
lambda points : np.apply_along_axis(function, 1, points), lambda points : np.apply_along_axis(function, 1, points),
about_point = about_point, **kwargs about_point = about_point, **kwargs
) )
return self return self
def apply_matrix(self, matrix, about_point = ORIGIN, **kwargs): def apply_matrix(self, matrix, **kwargs):
#Default to applying matrix about the origin, not mobjects center
if len(kwargs) == 0:
kwargs["about_point"] = ORIGIN
full_matrix = np.identity(self.dim)
matrix = np.array(matrix)
full_matrix[:matrix.shape[0],:matrix.shape[1]] = matrix
self.apply_points_function_about_point( self.apply_points_function_about_point(
lambda points : np.dot(points, matrix.T), lambda points : np.dot(points, full_matrix.T),
about_point = about_point, **kwargs **kwargs
) )
return self return self