Při jednoduchém testu, jak časově náročné je generování dlouhých
sekvencí pohybových příkazů (typických pro generování fraktálů, což je
oblast použití, která mě zajímá) jsem obdržel výsledky, které mě
(nemile) překvapily:

from turtle import *
import time

def stopky(label,funkce):
    Tstart=time.clock(); rtn = funkce()
    Tfinish=time.clock()
    print label % (Tfinish-Tstart)
    return rtn

def LF_repeat(pocet):
    for i in xrange(pocet):
        left(90)
        forward(8)
        
F = lambda x: lambda: LF_repeat(x)

for level in range(6):
    pocet = 256 << level
    reset(); speed("fastest"); tracer(0);
    stopky("Vykresleno:  %4s useku  za %%6.2f s" % pocet,F(pocet))


Vykresleno:   256 useku  za   0.27 s
Vykresleno:   512 useku  za   1.03 s
Vykresleno:  1024 useku  za   3.97 s
Vykresleno:  2048 useku  za  15.75 s
Vykresleno:  4096 useku  za  61.73 s
Vykresleno:  8192 useku  za 242.27 s

Jak vidno, při zdvojnásobení počtu příkazů se doba prodlouží
čtyřnásobně
Není mi jasné proč tomu tak je...

Pokud víte o nějaké py knihovně s rychlými primitivy (drawPoint,
drawLine) byl bych rád

Dále:
Připadá mi, že ve funkci setup je chyba:


def setup(**geometry):
    """ Sets the size and position of the main window.
    Examples:
    >>> setup (width=200, height=200, startx=0, starty=0)

    sets window to 200x200 pixels, in upper left of screen

    >>> setup(width=.75, height=0.5, startx=None, starty=None)

    sets window to 75% of screen by 50% of screen and centers

    >>> setup(width=None)

    forces use of default geometry as in older versions of turtle.py
    """

    global _width, _height, _startx, _starty

    width = geometry.get('width',_width)
    if width >= 0 or width == None:
        _width = width
    else:
        raise ValueError, "width can not be less than 0"

    height = geometry.get('height',_height)
    if height >= 0 or height == None:
        _height = height
    else:
        raise ValueError, "height can not be less than 0"

    startx = geometry.get('startx', _startx)
    if startx >= 0 or startx == None:
        _startx = _startx                        <<<=========== ??????
    else:
        raise ValueError, "startx can not be less than 0"

    starty = geometry.get('starty', _starty)
    if starty >= 0 or starty == None:
        _starty = starty
    else:
        raise ValueError, "startx can not be less than 0"

    ....atd

Je to z instalace Python 2.5


_______________________________________________
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem