Ejemplo n.º 1
0
    def __init__(self, parent, polygon):
        super().__init__(parent, polygon)

        self.inset_radius = self.polygon.radius / self.polygon.n
        self.fork_radius = self.polygon.radius - self.inset_radius
        self.interior_radius = self.polygon.radius - 2 * self.inset_radius
        self.outer_circle = geo.Circle(self.polygon.center,
                                       self.polygon.radius)
        self.inner_circle = geo.Circle(self.polygon.center,
                                       self.interior_radius)
Ejemplo n.º 2
0
class TestCircle:
    circle_default = geo.Circle(geo.Point2(3, 2), 2)
    circle_other = geo.Circle(geo.Point2(-1, 3), 1)

    def test_constructor(self):
        assert self.circle_default.center == geo.Point2(3, 2)
        assert self.circle_default.radius == 2

    def test_copy(self):
        circle = copy(self.circle_default)
        assert circle == self.circle_default
        assert circle is not self.circle_default

    def test_repr(self):
        assert str(self.circle_default) == 'Circle(<3.00, 2.00>, radius=2.00)'

    def test_ne(self):
        assert self.circle_default != self.circle_other
Ejemplo n.º 3
0
def _(circle, pen_thickness, stroke_width):
    approx_num_strokes = stroke_width / pen_thickness
    radius_min = circle.radius - (approx_num_strokes / 2 * pen_thickness)
    radius_max = circle.radius + (approx_num_strokes / 2 * pen_thickness)
    num_strokes = 1 + math.ceil(approx_num_strokes)
    radii = util.linspace(radius_min, radius_max, num_strokes)

    for radius in radii:
        gfx.draw(geo.Circle(circle.center, radius))
Ejemplo n.º 4
0
 def get_rendering_geometry(self):
     forking_circles = [
         geo.Circle(center, self.inset_radius)
         for center in self._forking_polygon().points
     ]
     return forking_circles + [self.outer_circle, self.inner_circle]