Subversion Repositories Kolibri OS

Rev

Rev 1913 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1913 jaeger 1
# center: 10043
8535 superturbo 2
import pygame, sys
3
if not "tinypy" in sys.version:
1913 jaeger 4
    import pygame.locals
5
 
6
SW,SH = 120,120
7
 
8
def julia(s,ca,cb):
9
    pal = [((min(255,v)),(min(255,v*3/2)),(min(255,v*2))) for v in range(0,256)]
10
    for y in range(0,SH):
11
        for x in range(0,SW):
12
            i=0
13
            a=((float(x)/SW) * 4.0 - 2.0)
14
            b=((float(y)/SH) * 4.0 - 2.0)
15
            while i < 15 and (a*a)+(b*b)<4.0:
16
                na=(a*a)-(b*b)+ca
17
                nb=(2.0*a*b)+cb
18
                a=na
19
                b=nb
20
                i = i +1
21
            s.set_at((x,y),pal[i*16])
22
 
23
def main():
24
    pygame.init()
25
    s = pygame.display.set_mode((SW,SH),0,32)
26
    _quit = False
27
    while not _quit:
28
        for e in pygame.event.get():
29
            if e.type in (pygame.locals.QUIT,pygame.locals.KEYDOWN):
30
                _quit = True
31
 
32
        x,y = pygame.mouse.get_pos()
33
        ca=((float(x)/SW) * 2.0 - 1.0)
34
        cb=((float(y)/SH) * 2.0 - 1.0)
35
        ticks = pygame.time.get_ticks()
36
        julia(s,ca,cb)
37
        print(pygame.time.get_ticks()-ticks)
38
        pygame.display.flip()
39
 
40
 
41
if __name__ == '__main__':
42
    main()