diff options
Diffstat (limited to 'src/fringlib/fringrenderer.py')
-rw-r--r-- | src/fringlib/fringrenderer.py | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/src/fringlib/fringrenderer.py b/src/fringlib/fringrenderer.py index 63b719b..2c6825b 100644 --- a/src/fringlib/fringrenderer.py +++ b/src/fringlib/fringrenderer.py @@ -75,12 +75,12 @@ class FringRenderer: ctx.move_to(CENTERX, CENTERY) n = len(data.children) - i = 0 accumulated = 0 last = start_angle - for entry in data.children: + for i in range(len(data.children)): + entry = data.children[i] hasContents = entry.has_children() @@ -88,14 +88,16 @@ class FringRenderer: accumulated += entry.size if data.size == 0: continue - end = start_angle+(end_angle - start_angle)*1.0*accumulated/data.size - + end = start_angle+(end_angle - start_angle)*1.0*accumulated/data.size + if end-start >= .005: p = previouspath+os.sep+entry.name self.lookup_data[ring].append( Segment(hasContents , p, entry, start, end) ) - color = self._choose_color(start_hue + (end_hue-start_hue)*1.0*i/n, ring) + #c = start_hue + (end_hue-start_hue)*1.0*i/n # old implementation + c = start_hue + (end_hue-start_hue)*start + color = self._choose_color(c, ring) r = self.INNER_RADIUS + ring * (self.RING_RADIUS + self.RING_SPACE) ctx.move_to(CENTERX+r*cos(start*2*pi), CENTERY+r*sin(start*2*pi)) @@ -112,8 +114,12 @@ class FringRenderer: if hasContents and ring+1 < self.RINGS_MAX: self.draw_segment(ctx, ring+1, start, end, - start_hue + (end_hue-start_hue)*1.0*i/n, - start_hue + (end_hue-start_hue)*1.0*(i+1)/n, entry, + #start_hue + (end_hue-start_hue)*1.0*i/n, + #start_hue + (end_hue-start_hue)*1.0*(i+1)/n, entry, + + start_hue + (end_hue-start_hue)*start, + start_hue + (end_hue-start_hue)*end, + entry, previouspath+os.sep+entry.name) r += self.RING_RADIUS/2 @@ -192,7 +198,7 @@ class FringRenderer: self._draw_centered_text(ctx, "%.0f%%" %percent) last = end - i += 1 + if ring == 0: ctx.set_source_rgb(.3,.3,.3) |