Пример #1
0
    def _make_wedge_bar(self, nsegments):
        ''' Create a wedged-shaped bar with n segments '''
        s = 3.5  # add provision for stroke width
        svg = svg_header(self._width, BAR_HEIGHT * self._scale + s, 1.0)
        dx = self._width / float(nsegments)
        dy = (BAR_HEIGHT * self._scale) / float(nsegments)
        for i in range(int(nsegments) // 2):
            svg += svg_wedge(dx, BAR_HEIGHT * self._scale + s,
                             i * 2 * dx + s,
                             i * 2 * dy + s, (i * 2 + 1) * dy + s,
                             '#000000', '#FFFFFF')
            svg += svg_wedge(dx, BAR_HEIGHT * self._scale + s,
                             (i * 2 + 1) * dx + s,
                             (i * 2 + 1) * dy + s, (i * 2 + 2) * dy + s,
                             '#000000', '#FFFFFF')
        if int(nsegments) % 2 == 1:  # odd
            svg += svg_wedge(dx, BAR_HEIGHT * self._scale + s,
                             (i * 2 + 2) * dx + s,
                             (i * 2 + 2) * dy + s,
                             BAR_HEIGHT * self._scale + s,
                             '#000000', '#FFFFFF')
        svg += svg_footer()

        self.bars[nsegments] = Sprite(self._sprites, 0, 0,
                                      svg_str_to_pixbuf(svg))
        self.bars[nsegments].set_layer(2)
        self.bars[nsegments].set_label_attributes(18, horiz_align="left", i=0)
        self.bars[nsegments].set_label_attributes(18, horiz_align="right", i=1)
        self.bars[nsegments].set_label_color('black', i=0)
        self.bars[nsegments].set_label_color('white', i=1)
        self.bars[nsegments].set_label(' 0', i=0)
        self.bars[nsegments].set_label('1 ', i=1)
        self.bars[nsegments].move(
            (0, self._height - BAR_HEIGHT * self._scale))
Пример #2
0
    def _make_wedge_bar(self, nsegments):
        ''' Create a wedged-shaped bar with n segments '''
        s = 3.5  # add provision for stroke width
        svg = svg_header(self._width, BAR_HEIGHT * self._scale + s, 1.0)
        dx = self._width / float(nsegments)
        dy = (BAR_HEIGHT * self._scale) / float(nsegments)
        for i in range(int(nsegments) / 2):
            svg += svg_wedge(dx, BAR_HEIGHT * self._scale + s,
                             i * 2 * dx + s,
                             i * 2 * dy + s, (i * 2 + 1) * dy + s,
                             '#000000', '#FFFFFF')
            svg += svg_wedge(dx, BAR_HEIGHT * self._scale + s,
                             (i * 2 + 1) * dx + s,
                             (i * 2 + 1) * dy + s, (i * 2 + 2) * dy + s,
                             '#000000', '#FFFFFF')
        if int(nsegments) % 2 == 1:  # odd
            svg += svg_wedge(dx, BAR_HEIGHT * self._scale + s,
                             (i * 2 + 2) * dx + s,
                             (i * 2 + 2) * dy + s,
                             BAR_HEIGHT * self._scale + s,
                             '#000000', '#FFFFFF')
        svg += svg_footer()

        self.bars[nsegments] = Sprite(self._sprites, 0, 0,
                                      svg_str_to_pixbuf(svg))
        self.bars[nsegments].set_layer(2)
        self.bars[nsegments].set_label_attributes(18, horiz_align="left", i=0)
        self.bars[nsegments].set_label_attributes(18, horiz_align="right", i=1)
        self.bars[nsegments].set_label_color('black', i=0)
        self.bars[nsegments].set_label_color('white', i=1)
        self.bars[nsegments].set_label(' 0', i=0)
        self.bars[nsegments].set_label('1 ', i=1)
        self.bars[nsegments].move(
            (0, self._height - BAR_HEIGHT * self._scale))
Пример #3
0
 def _make_wedge_mark(self):
     ''' Make a mark to show the fraction position on the bar. '''
     dx = self._ball_size / 2.
     n = (self._width - self._ball_size) / dx
     dy = (BAR_HEIGHT * self._scale) / n
     s = 3.5
     i = int(n / 2) - 1
     mark = svg_header(self._ball_size, BAR_HEIGHT * self._scale + s, 1.0)
     mark += svg_wedge(dx, BAR_HEIGHT * self._scale + s, s, i * 2 * dy + s,
                       (i * 2 + 1) * dy + s, '#FF0000', '#FFFFFF')
     mark += svg_wedge(dx, BAR_HEIGHT * self._scale + s, dx + s,
                       (i * 2 + 1) * dy + s, (i * 2 + 2) * dy + s,
                       '#FF0000', '#FFFFFF')
     mark += svg_footer()
     self.mark = Sprite(
         self._sprites,
         0,
         self._height,  # hide off bottom of screen
         svg_str_to_pixbuf(mark))
     self.mark.set_layer(1)
Пример #4
0
 def _make_wedge_mark(self):
     ''' Make a mark to show the fraction position on the bar. '''
     dx = self._ball_size / 2.
     n = (self._width - self._ball_size) / dx
     dy = (BAR_HEIGHT * self._scale) / n
     s = 3.5
     i = int(n / 2) - 1
     mark = svg_header(self._ball_size,
                       BAR_HEIGHT * self._scale + s, 1.0)
     mark += svg_wedge(dx, BAR_HEIGHT * self._scale + s,
                       s,
                       i * 2 * dy + s, (i * 2 + 1) * dy + s,
                       '#FF0000', '#FFFFFF')
     mark += svg_wedge(dx, BAR_HEIGHT * self._scale + s,
                       dx + s,
                       (i * 2 + 1) * dy + s, (i * 2 + 2) * dy + s,
                       '#FF0000', '#FFFFFF')
     mark += svg_footer()
     self.mark = Sprite(self._sprites, 0,
                        self._height,  # hide off bottom of screen
                        svg_str_to_pixbuf(mark))
     self.mark.set_layer(1)