From: Antonio Ospite Date: Thu, 18 Jun 2015 10:34:16 +0000 (+0200) Subject: Diagram.py: add a draw_star() wrapper, don't open-code apothem calculation X-Git-Url: https://git.ao2.it/experiments/RadialSymmetry.git/commitdiff_plain/b1560e48352bc9862c8c250717532d6fc03db740?ds=sidebyside;hp=6f91eff6a3d5b807880f2ced0200cf95b6c694fb Diagram.py: add a draw_star() wrapper, don't open-code apothem calculation --- diff --git a/Diagram.py b/Diagram.py index cb4bde1..e2d85d5 100755 --- a/Diagram.py +++ b/Diagram.py @@ -125,7 +125,7 @@ class Diagram(object): verts = self.get_regular_polygon(cx, cy, sides, r, theta) self.draw_polygon_by_verts(verts, fill_color, stroke_color) - def draw_star(self, cx, cy, verts, stroke_color=[0, 0, 0]): + def draw_star_by_verts(self, cx, cy, verts, stroke_color=[0, 0, 0]): cr = self.cr for v in verts: @@ -136,6 +136,13 @@ class Diagram(object): cr.set_source_rgba(r, g, b, a) cr.stroke() + def draw_star(self, cx, cy, sides, r, theta=0.0, stroke_color=[0, 0, 0]): + apothem = r * cos(pi / sides) + apothem_angle = theta + pi / sides + + verts = self.get_regular_polygon(cx, cy, sides, apothem, apothem_angle) + self.draw_star_by_verts(cx, cy, verts, stroke_color) + def draw_circle(self, cx, cy, size=10.0, fill_color=[0, 0, 0, 0.5], stroke_color=None): cr = self.cr diff --git a/RadialSymmetryDiagram.py b/RadialSymmetryDiagram.py index 09a3638..ba0a716 100755 --- a/RadialSymmetryDiagram.py +++ b/RadialSymmetryDiagram.py @@ -99,12 +99,8 @@ class RadialSymmetryDiagram(Diagram.Diagram): theta, None, color) if model.show_stars: - apothem = model.element_radius * cos(pi / model.element_sides) - apothem_angle = theta + pi / model.element_sides - - sverts = self.get_regular_polygon(x, y, model.element_sides, apothem, - apothem_angle) - self.draw_star(x, y, sverts, color) + self.draw_star(x, y, model.element_sides, model.element_radius, + theta, color) if __name__ == '__main__':