18 Ocak 2009 Pazar

Erime efekti.

Malum sınav zamanı yazacak hiç vaktim yok fekat şu spor olsun diye yaptığım çalışmayı yayınlamadan edemedim. Kod çok kısa ve çok açık. Sıkı bir inceleme ile ne yaptığı anlaşılabilir. Hatta bu bulmacamsı bir yazı olsun, siz çözün nasıl çalıştığını :)


reverse melting effect made with python and pygame - 2 from Mirat Can Bayrak on Vimeo.

from pygame import surfarray, display, image
from random import choice
from os.path import join
class Screen:
def __init__(self,name,resolution):
display.set_mode(resolution,0,24)
display.set_caption(name)
self.surface = display.get_surface()
self.width, self.height = resolution

def blurize(surfarray):
for y in range(2,len(surfarray)-2):
for x in range(2,len(surfarray[y])-2):
surfarray[x][y] = surfarray[x + choice((-1,0,+1))][y + choice((-1,0,+1))]
res = (440,440) # it must be same as image size
screen = Screen('Rendering...',res) # i want a screen
img = image.load("melt.jpg") # load image
screen.surface.blit(img,(0,0))
array = surfarray.pixels3d(screen.surface) # create array from it
display.update() # update my view
frames = 400 # num of frames to render
for frame in range(frames):
image.save(surfarray.make_surface(array), join("output/" ,str(frames-frame) + ".png"))
if frame > 25 :
# do not blurize on first 25 frames
blurize(array)
display.update()
print frame ,"th frame rendered"

3 yorum:

  1. çok ilginç bir çalışma olmuş, teşekkürler...

    YanıtlaSil
  2. http://www.python.org/dev/peps/pep-0008/

    YanıtlaSil
  3. Sevgili Adsız, güzel bir yorum olmuş. Özellikle link verip yanına uzun bir sessizlik eklemeniz beni çok etkiledi :) kodun temiz olmadığının bende farkındayım zaten final döneminde stres atmak için yazmıştım. :) Belki python'da yakışıklı kod nasıl yazılır başlıklı bir yazı alırız sizden?

    YanıtlaSil