File:FermatSpiral.png

def _calculate_position(self, radius, icon_size, index, children_count): width, height = self.box.get_allocation # include an offset (8) to the index # so that the center of the spiral is left blank # angle = n * 137.5 degree or 2.4 radians angle = (index + 8) * 2.4

# radius = constant * sqrt(n) radius = (_MINIMUM_RADIUS / 5) * math.sqrt(index + 8)

x = radius * math.cos(angle) + (width - icon_size) / 2 y = radius * math.sin(angle) + (height - icon_size -                                       style.GRID_CELL_SIZE) / 2

return x, y