Exemplo n.º 1
0
    def get_circles_and_points(self, min_input, max_input):
        input_left, input_right = [
            self.interval.number_to_point(num)
            for num in min_input, max_input
        ]
        input_circle = Circle(
            radius = np.linalg.norm(input_left-input_right)/2,
            color = WHITE
        )
        input_circle.shift((input_left+input_right)/2)

        input_points = Line(
            input_left, input_right, 
            color = self.input_color
        )
        output_points = Mobject(color = self.output_color)
        n = self.output.get_num_points()
        output_points.add_points(
            self.output.points[int(min_input*n):int(max_input*n)]
        )
        output_center = output_points.points[int(0.5*output_points.get_num_points())]
        max_distance = np.linalg.norm(output_center-output_points.points[-1])
        output_circle = Circle(
            radius = max_distance, 
            color = WHITE
        )
        output_circle.shift(output_center)
        return (
            input_circle, 
            input_points, 
            output_circle, 
            output_points
        )
Exemplo n.º 2
0
class ThoughtBubble(Bubble):
    DEFAULT_CONFIG = {
        "num_bulges": 7,
        "initial_inner_radius": 1.8,
        "initial_width": 6,
    }

    def __init__(self, **kwargs):
        Bubble.__init__(self, **kwargs)

    def get_tip(self):
        return self.small_circle.get_bottom()

    def generate_points(self):
        self.small_circle = Circle().scale(0.15)
        self.small_circle.shift(2.5 * DOWN + 2 * LEFT)
        self.add(self.small_circle)
        self.add(Circle().scale(0.3).shift(2 * DOWN + 1.5 * LEFT))
        for n in range(self.num_bulges):
            theta = 2 * np.pi * n / self.num_bulges
            self.add(Circle().shift((np.cos(theta), np.sin(theta), 0)))
        self.filter_out(
            lambda p: np.linalg.norm(p) < self.initial_inner_radius)
        self.stretch_to_fit_width(self.initial_width)
        self.highlight("white")
Exemplo n.º 3
0
    def get_circles_and_points(self, min_input, max_input):
        input_left, input_right = [
            self.interval.number_to_point(num)
            for num in min_input, max_input
        ]
        input_circle = Circle(
            radius = np.linalg.norm(input_left-input_right)/2,
            color = WHITE
        )
        input_circle.shift((input_left+input_right)/2)

        input_points = Line(
            input_left, input_right, 
            color = self.input_color
        )
        output_points = Mobject(color = self.output_color)
        n = self.output.get_num_points()
        output_points.add_points(
            self.output.points[int(min_input*n):int(max_input*n)]
        )
        output_center = output_points.points[int(0.5*output_points.get_num_points())]
        max_distance = np.linalg.norm(output_center-output_points.points[-1])
        output_circle = Circle(
            radius = max_distance, 
            color = WHITE
        )
        output_circle.shift(output_center)
        return (
            input_circle, 
            input_points, 
            output_circle, 
            output_points
        )
Exemplo n.º 4
0
class ThoughtBubble(Bubble):
    DEFAULT_CONFIG = {
        "num_bulges"           : 7,
        "initial_inner_radius" : 1.8,
        "initial_width"        : 6,
    }
    def __init__(self, **kwargs):
        Bubble.__init__(self, **kwargs)

    def get_tip(self):
        return self.small_circle.get_bottom()

    def generate_points(self):
        self.small_circle = Circle().scale(0.15)
        self.small_circle.shift(2.5*DOWN+2*LEFT)
        self.add(self.small_circle)
        self.add(Circle().scale(0.3).shift(2*DOWN+1.5*LEFT))
        for n in range(self.num_bulges):
            theta = 2*np.pi*n/self.num_bulges
            self.add(Circle().shift((np.cos(theta), np.sin(theta), 0)))
        self.filter_out(lambda p : np.linalg.norm(p) < self.initial_inner_radius)
        self.stretch_to_fit_width(self.initial_width)
        self.highlight("white")