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
[email protected]
http://www.py.cz/mailman/listinfo/python