File:Spiral.png

def _calculate_position(self, radius, icon_size, index, children_count): width, height = self.box.get_allocation # angle decreases as the radius increases inc = 12.0 + index / 6.0 angle = index * (2 * math.pi / inc) - math.pi / 2 # radius is proportional to index/children_count 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 return x, y