2
2
import os
3
3
import xml .etree .ElementTree as et
4
4
5
-
6
5
HEADERS = '''<?xml version=\" 1.0\" standalone=\" no\" ?>
7
6
<?xml-stylesheet href="wheel.css" type="text/css"?>
8
7
<!DOCTYPE svg PUBLIC \" -//W3C//DTD SVG 1.1//EN\"
22
21
PADDING = 10
23
22
RADIUS = 180
24
23
CENTER = PADDING + RADIUS
25
- TAU = 2 * math .pi
24
+ TAU = 2 * math .pi
26
25
27
26
28
27
def annular_sector_path (start , stop ):
29
- inner_radius = RADIUS // 2
28
+ inner_radius = RADIUS // 2
30
29
outer_radius = RADIUS
31
30
cos_stop = math .cos (stop )
32
31
cos_start = math .cos (start )
@@ -36,14 +35,14 @@ def annular_sector_path(start, stop):
36
35
points = {
37
36
'inner_radius' : inner_radius ,
38
37
'outer_radius' : outer_radius ,
39
- 'start_outer_x' : CENTER + outer_radius * cos_start ,
40
- 'start_outer_y' : CENTER + outer_radius * sin_start ,
41
- 'end_outer_x' : CENTER + outer_radius * cos_stop ,
42
- 'end_outer_y' : CENTER + outer_radius * sin_stop ,
43
- 'start_inner_x' : CENTER + inner_radius * cos_stop ,
44
- 'start_inner_y' : CENTER + inner_radius * sin_stop ,
45
- 'end_inner_x' : CENTER + inner_radius * cos_start ,
46
- 'end_inner_y' : CENTER + inner_radius * sin_start ,
38
+ 'start_outer_x' : CENTER + outer_radius * cos_start ,
39
+ 'start_outer_y' : CENTER + outer_radius * sin_start ,
40
+ 'end_outer_x' : CENTER + outer_radius * cos_stop ,
41
+ 'end_outer_y' : CENTER + outer_radius * sin_stop ,
42
+ 'start_inner_x' : CENTER + inner_radius * cos_stop ,
43
+ 'start_inner_y' : CENTER + inner_radius * sin_stop ,
44
+ 'end_inner_x' : CENTER + inner_radius * cos_start ,
45
+ 'end_inner_y' : CENTER + inner_radius * sin_start ,
47
46
}
48
47
return PATH_TEMPLATE .format (** points )
49
48
@@ -60,14 +59,14 @@ def angles(index, total):
60
59
start = index * TAU / total
61
60
stop = (index + 1 ) * TAU / total
62
61
63
- return (start - TAU / 4 , stop - TAU / 4 )
62
+ return (start - TAU / 4 , stop - TAU / 4 )
64
63
65
64
66
65
def add_fraction (wheel , packages , total ):
67
66
text_attributes = {
68
67
'text-anchor' : 'middle' ,
69
68
'dominant-baseline' : 'central' ,
70
- 'font-size' : str (2 * OFFSET ),
69
+ 'font-size' : str (2 * OFFSET ),
71
70
'font-family' : '"Helvetica Neue",Helvetica,Arial,sans-serif' ,
72
71
'fill' : '#333333' ,
73
72
}
@@ -85,8 +84,8 @@ def add_fraction(wheel, packages, total):
85
84
# Dividing line
86
85
et .SubElement (
87
86
wheel , 'line' ,
88
- x1 = str (CENTER - FRACTION_LINE // 2 ), y1 = str (CENTER ),
89
- x2 = str (CENTER + FRACTION_LINE // 2 ), y2 = str (CENTER ),
87
+ x1 = str (CENTER - FRACTION_LINE // 2 ), y1 = str (CENTER ),
88
+ x2 = str (CENTER + FRACTION_LINE // 2 ), y2 = str (CENTER ),
90
89
attrib = {'stroke' : '#333333' , 'stroke-width' : '2' },
91
90
)
92
91
@@ -102,7 +101,7 @@ def add_fraction(wheel, packages, total):
102
101
def generate_svg_wheel (packages , total ):
103
102
wheel = et .Element (
104
103
'svg' ,
105
- viewBox = '0 0 {0} {0}' .format (2 * CENTER ),
104
+ viewBox = '0 0 {0} {0}' .format (2 * CENTER ),
106
105
version = '1.1' ,
107
106
xmlns = 'http://www.w3.org/2000/svg' ,
108
107
)
0 commit comments