Changes

Jump to navigation Jump to search
1,364 bytes added ,  19:19, 9 September 2008
Line 29: Line 29:  
* [[User:Walter/sandbox]]
 
* [[User:Walter/sandbox]]
 
* [[User:Walter/favoritelayout.py]]
 
* [[User:Walter/favoritelayout.py]]
[[Image:Spiral.png|thumb|left]]
+
[[Image:Spiral.png|thumb|left|<pre>
[[Image:FermatSpiral.png|thumb|left]]
+
    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
 +
</pre>]]
 +
[[Image:FermatSpiral.png|thumb|left|<pre>
 +
    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
 +
</pre>]]

Navigation menu