def construct(self): config = { "point_thickness" : 2*DEFAULT_POINT_THICKNESS, "density" : 6*DEFAULT_POINT_DENSITY_1D, } NumberLineScene.construct(self, **config) self.copy_original_line() self.show_multiplication(2) self.dither() self.show_multiplication(3) self.dither()
def construct(self): config = { "stroke_width": 2 * DEFAULT_POINT_THICKNESS, "density": 6 * DEFAULT_POINT_DENSITY_1D, } NumberLineScene.construct(self, **config) self.copy_original_line() self.show_multiplication(2) self.wait() self.show_multiplication(3) self.wait()
def construct(self, num, show_original_line): config = { "density" : max(abs(num), 1)*DEFAULT_POINT_DENSITY_1D, "point_thickness" : 2*DEFAULT_POINT_THICKNESS } if abs(num) < 1: config["numerical_radius"] = SPACE_WIDTH/num NumberLineScene.construct(self, **config) if show_original_line: self.copy_original_line() self.dither() self.show_multiplication(num, run_time = 1.5) self.dither()
def run_function(self, function, explanation): self.clear() self.add(self.nonlinear) config = { "stroke_width": 2 * DEFAULT_POINT_THICKNESS, "density": 5 * DEFAULT_POINT_DENSITY_1D, } NumberLineScene.construct(self, **config) words = TextMobject(explanation).highlight(LIGHT_RED) words.next_to(self.nonlinear, DOWN, buff=0.5) self.add(words) self.play(ApplyPointwiseFunction(function, self.number_line), *[ ApplyMethod( mob.shift, function(mob.get_center()) - mob.get_center()) for mob in self.number_mobs ], run_time=2.0)
def run_function(self, function, explanation): self.clear() self.add(self.nonlinear) config = { "point_thickness" : 2*DEFAULT_POINT_THICKNESS, "density" : 5*DEFAULT_POINT_DENSITY_1D, } NumberLineScene.construct(self, **config) words = TextMobject(explanation).highlight(LIGHT_RED) words.next_to(self.nonlinear, DOWN, buff = 0.5) self.add(words) self.play( ApplyPointwiseFunction(function, self.number_line), *[ ApplyMethod( mob.shift, function(mob.get_center()) - mob.get_center() ) for mob in self.number_mobs ], run_time = 2.0 )