See below code which moves 10,000 small disks (6x6 pixels)
around a canvas 1000x1000 pixels, without regard to stacking order
(no z axis for disk positions), and moving disks randomly +-1 in
the x and y axis each iteration:
Takes about 1 second per iteration on my old slow windoze box:
from Tkinter import *
from random import randint
class MyCanv(Canvas):
def setup(self, diskCount):
self.wgts=[]
for i in range(diskCount):
x=randint(0,1000)
y=randint(0,1000)
wid=canv.create_oval(x, y, x+6, y+6, fill="blue")
self.wgts.append((wid, x, y))
while True:
self.update1()
def update1(self):
newItems=[]
for item,x,y in self.wgts:
xdiff=randint(-1,1)
ydiff=randint(-1,1)
newx=x+xdiff
newy=y+ydiff
if newx<0 or newx>1000:
xdiff=0
newx=x
if newy<0 or newy>1000:
ydiff=0
newy=y
self.move(item, xdiff, ydiff)
newItems.append((item,newx, newy))
self.wgts=newItems
self.update()
main=Tk()
canv=MyCanv(main, bg="white", height=1000, width=1000)
Button(main, text="Start", command=lambda c=canv: c.setup(10000)).pack()
canv.pack(side=TOP)
main.mainloop()
2009/5/14 Protosssword <[email protected]>:
> Dear Colleagues,
>
> I am considering using python to write a simulation program to display the
> motions of about 10,000 2d disks. The program doesn't need to calculate the
> positions of disks. It just reads the result file and displays disks on the
> screen. I wonder whether Tkinter has this ability for rendering so many
> disks in time.
>
> Thanks!
>
>
> Shengxu Xia
>
> ________________________________
> 使用新一代 Windows Live Messenger 轻松交流和共享! 立刻下载!
> _______________________________________________
> Tkinter-discuss mailing list
> [email protected]
> http://mail.python.org/mailman/listinfo/tkinter-discuss
>
>
_______________________________________________
Tkinter-discuss mailing list
[email protected]
http://mail.python.org/mailman/listinfo/tkinter-discuss