Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import appuifw as A
- import graphics as G
- lock,run=A.e32.Ao_lock(),1
- w,h=G.sysinfo.display_pixels()
- img=G.Image.new((w,h))
- def exit():
- lock.signal()
- def draw(x):
- if img:canvas.blit(img)
- A.app.screen='full'
- canvas=A.Canvas(redraw_callback=draw)
- A.app.body=canvas
- A.app.exit_key_handler=exit
- def h2r(h,s,v):
- ''' HSV > RGB '''
- if s==0.0: return v,v,v
- i=int(h*6.0)
- f=(h*6.0)-i
- p=v*(1.0-s)
- q=v*(1.0-s*f)
- t=v*(1.0-s*(1.0-f))
- if i%6==0:return v,t,p
- if i==1:return q,v,p
- if i==2:return p,v,t
- if i==3:return p,q,v
- if i==4:return t,p,v
- if i==5:return v,p,q
- def gen_color(n=256):
- hsv=[(x*0.9/n,0.9,0.9) for x in xrange(n)]
- rgb=map(lambda x: tuple(map(lambda x:int(x*255), h2r(*x))),hsv)
- return rgb
- def ssf(x,y,a,c):
- img.line((x,y,x+a,y),c)
- img.line((x,y,x,y+a),c)
- img.line((x,y+a,x+a,y+a),c)
- img.line((x+a,y,x+a,y+a),c)
- canvas.blit(img)
- a=float(a)/3
- if a<1:return
- for i in range(9):
- if i!=4:
- ssf(x+a*(i%3),y+a*(i/3),a,c)
- A.e32.ao_sleep(1e-08)
- iter,colstep=0,9
- color=gen_color(colstep)
- size=160
- n=size/3
- px=(w-size)/2
- img.clear(0)
- for i in range(9):
- ssf(px+((i%3)*n),5+((i/3)*n),n,color[iter])
- iter+=1
- img.save(u'e:\\sierpinski.png')
- lock.wait()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement