Пример #1
0
    def render(self):
        # Semicircles computation
        visited = {0}
        for multiple in range(2, self.circles):
            origin_x = 0
            target_x = multiple
            color = 'black'
            while target_x <= self.iterations:

                if origin_x == 0 and target_x not in visited :
                    direction = '-'
                    color = 'red'
                else:
                    direction = '+'
                
                semicircle = Semicircle((origin_x, 0), (target_x, 0), angle_dir=direction)
                semicircle.stroke(color, width=.6, opacity=.25)
                semicircle.fill('none')
                self.add(semicircle)
                
                visited.add(target_x)
                origin_x += multiple
                target_x += multiple
        
        # Number line
        for i in range(self.iterations + 1):
            circle = Circle((i, 0), .25)
            circle.stroke('black', width=.1)
            circle.fill('white')
            self.add(circle)
        
        self.stretch()
        self.save()