User:Walter/favoriteslayout.py: Difference between revisions

New page: <pre> # Copyright (C) 2008 One Laptop Per Child # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published...
 
No edit summary
Line 218: Line 218:
     def _calculate_position(self, radius, icon_size, index, children_count):
     def _calculate_position(self, radius, icon_size, index, children_count):
         width, height = self.box.get_allocation()
         width, height = self.box.get_allocation()
 
        # angle decreases as the radius increases
         # go around 2 times, e.g., 4 pi
         inc = 12.0 + index / 6.0
         angle = index * (4 * math.pi / children_count) - math.pi / 2
         angle = index * (2 * math.pi / inc) - math.pi / 2
         x = radius * math.cos(angle) + (width - icon_size) / 2
        # radius is proportional to index/children_count
         y = radius * math.sin(angle) + (height - icon_size -
        myminimum = _MINIMUM_RADIUS * .667
        newradius = ((radius - myminimum) * (index * 1.1) / children_count)
                                        + myminimum
         x = newradius * math.cos(angle) + (width - icon_size) / 2
         y = newradius * math.sin(angle) + (height - icon_size -
                                         style.GRID_CELL_SIZE) / 2
                                         style.GRID_CELL_SIZE) / 2
         return x, y
         return x, y