mirror of
https://github.com/3b1b/manim.git
synced 2025-04-13 09:47:07 +00:00
More direct lerp in Mobject.interpolate
This commit is contained in:
parent
e796a0c6d6
commit
a8ef9629eb
1 changed files with 9 additions and 12 deletions
|
@ -1810,26 +1810,23 @@ class Mobject(object):
|
|||
if keys:
|
||||
self.note_changed_data()
|
||||
for key in keys:
|
||||
func = path_func if key in self.pointlike_data_keys else interpolate
|
||||
md1 = mobject1.data[key]
|
||||
md2 = mobject2.data[key]
|
||||
if key in self.const_data_keys:
|
||||
md1 = md1[0]
|
||||
md2 = md2[0]
|
||||
self.data[key] = func(md1, md2, alpha)
|
||||
if path_func in self.pointlike_data_keys:
|
||||
self.data[key] = path_func(md1, md2, alpha)
|
||||
else:
|
||||
self.data[key] = (1 - alpha) * md1 + alpha * md2
|
||||
|
||||
keys = [k for k in self.uniforms if k not in self.locked_uniform_keys]
|
||||
for key in keys:
|
||||
for key in self.uniforms:
|
||||
if key in self.locked_uniform_keys:
|
||||
continue
|
||||
if key not in mobject1.uniforms or key not in mobject2.uniforms:
|
||||
continue
|
||||
self.uniforms[key] = interpolate(
|
||||
mobject1.uniforms[key],
|
||||
mobject2.uniforms[key],
|
||||
alpha
|
||||
)
|
||||
self.bounding_box[:] = path_func(
|
||||
mobject1.bounding_box, mobject2.bounding_box, alpha
|
||||
)
|
||||
self.uniforms[key] = (1 - alpha) * mobject1.uniforms[key] + alpha * mobject2.uniforms[key]
|
||||
self.bounding_box[:] = path_func(mobject1.bounding_box, mobject2.bounding_box, alpha)
|
||||
return self
|
||||
|
||||
def pointwise_become_partial(self, mobject, a, b) -> Self:
|
||||
|
|
Loading…
Add table
Reference in a new issue