mirror of
https://github.com/3b1b/manim.git
synced 2025-04-13 09:47:07 +00:00
scene.apply method, which required switching order or ApplyFunction arguments
This commit is contained in:
parent
441c8969ef
commit
c99a1dfd6a
2 changed files with 10 additions and 11 deletions
|
@ -139,7 +139,7 @@ class ScaleInPlace(ApplyMethod):
|
||||||
ApplyMethod.__init__(self, mobject.scale_in_place, scale_factor, **kwargs)
|
ApplyMethod.__init__(self, mobject.scale_in_place, scale_factor, **kwargs)
|
||||||
|
|
||||||
class ApplyFunction(Transform):
|
class ApplyFunction(Transform):
|
||||||
def __init__(self, function, mobject, **kwargs):
|
def __init__(self, mobject, function, **kwargs):
|
||||||
Transform.__init__(
|
Transform.__init__(
|
||||||
self,
|
self,
|
||||||
mobject,
|
mobject,
|
||||||
|
@ -152,7 +152,7 @@ class ApplyPointwiseFunction(Transform):
|
||||||
DEFAULT_CONFIG = {
|
DEFAULT_CONFIG = {
|
||||||
"run_time" : DEFAULT_ANIMATION_RUN_TIME
|
"run_time" : DEFAULT_ANIMATION_RUN_TIME
|
||||||
}
|
}
|
||||||
def __init__(self, function, mobject, **kwargs):
|
def __init__(self, mobject, function, **kwargs):
|
||||||
digest_config(self, ApplyPointwiseFunction, kwargs)
|
digest_config(self, ApplyPointwiseFunction, kwargs)
|
||||||
map_image = copy.deepcopy(mobject)
|
map_image = copy.deepcopy(mobject)
|
||||||
map_image.points = np.array(map(function, map_image.points))
|
map_image.points = np.array(map(function, map_image.points))
|
||||||
|
@ -164,20 +164,13 @@ class ApplyPointwiseFunction(Transform):
|
||||||
])
|
])
|
||||||
|
|
||||||
class ComplexFunction(ApplyPointwiseFunction):
|
class ComplexFunction(ApplyPointwiseFunction):
|
||||||
def __init__(self, function, *args, **kwargs):
|
def __init__(self, mobject, function, **kwargs):
|
||||||
def point_map(point):
|
def point_map(point):
|
||||||
x, y, z = point
|
x, y, z = point
|
||||||
c = np.complex(x, y)
|
c = np.complex(x, y)
|
||||||
c = function(c)
|
c = function(c)
|
||||||
return c.real, c.imag, z
|
return c.real, c.imag, z
|
||||||
if len(args) > 0:
|
ApplyPointwiseFunction.__init__(self, mobject, point_map, *args, **kwargs)
|
||||||
args = list(args)
|
|
||||||
mobject = args.pop(0)
|
|
||||||
elif "mobject" in kwargs:
|
|
||||||
mobject = kwargs.pop("mobject")
|
|
||||||
else:
|
|
||||||
mobject = Grid()
|
|
||||||
ApplyPointwiseFunction.__init__(self, point_map, mobject, *args, **kwargs)
|
|
||||||
self.name = "ComplexFunction" + to_cammel_case(function.__name__)
|
self.name = "ComplexFunction" + to_cammel_case(function.__name__)
|
||||||
#Todo, abstract away function naming'
|
#Todo, abstract away function naming'
|
||||||
|
|
||||||
|
|
|
@ -154,6 +154,12 @@ class Scene(object):
|
||||||
animation.clean_up()
|
animation.clean_up()
|
||||||
return self
|
return self
|
||||||
|
|
||||||
|
def apply(self, AnimationClass, *args, **kwargs):
|
||||||
|
self.play(*[
|
||||||
|
AnimationClass(mobject, *args, **kwargs)
|
||||||
|
for mobject in self.mobjects
|
||||||
|
])
|
||||||
|
|
||||||
def get_frame(self):
|
def get_frame(self):
|
||||||
return disp.paint_mobject(
|
return disp.paint_mobject(
|
||||||
CompoundMobject(*self.mobjects), self.background
|
CompoundMobject(*self.mobjects), self.background
|
||||||
|
|
Loading…
Add table
Reference in a new issue