示例#1
0
    def update_mobject(self, alpha):
        new_tex = self.tex_list[np.ceil(alpha * len(self.tex_list)) - 1]

        if new_tex != self.curr_tex:
            self.curr_tex = new_tex
            self.mobject = TexMobject(new_tex).shift(self.start_center)
        if not all(self.start_center == self.end_center):
            self.mobject.center().shift((1 - alpha) * self.start_center +
                                        alpha * self.end_center)
示例#2
0
 def get_mobs_from_terms(self, start_terms, end_terms, size):
     """
     Need to ensure that all image mobjects for a tex expression
     stemming from the same string are point-for-point copies of one
     and other.  This makes transitions much smoother, and not look
     like point-clouds.
     """
     num_start_terms = len(start_terms)
     all_mobs = np.array(
         TexMobject(start_terms, size = size).split() + \
         TexMobject(end_terms, size = size).split()
     )
     all_terms = np.array(start_terms + end_terms)
     for term in set(all_terms):
         matches = all_terms == term
         if sum(matches) > 1:
             base_mob = all_mobs[list(all_terms).index(term)]
             all_mobs[matches] = [
                 base_mob.copy().replace(target_mob)
                 for target_mob in all_mobs[matches]
             ]
     return all_mobs[:num_start_terms], all_mobs[num_start_terms:]
示例#3
0
 def __init__(self, tex_list, **kwargs):
     mobject = TexMobject(self.curr_tex).shift(start_center)
     Animation.__init__(self, mobject, **kwargs)