Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. --PICTURE: Pattern - Sierpinsky triangle v1.0
  2. --by Richard Fhager
  3. --http://hem.fyristorg.com/dawnbringer/
  4. -- Email: dawnbringer@hem.utfors.se
  5. -- MSN:   annassar@hotmail.com
  6. --
  7. -- Copyright 2010 Richard Fhager
  8. --
  9. -- This program is free software; you can redistribute it and/or
  10. -- modify it under the terms of the GNU General Public License
  11. -- as published by the Free Software Foundation; version 2
  12. -- of the License. See <http://www.gnu.org/licenses/>
  13.  
  14. -- This script was adopted from Evalion, a Javascript codecrafting/imageprocessing project
  15. -- http://goto.glocalnet.net/richard_fhager/evalion/evalion.html
  16. --
  17.  
  18. frac = {{1,1},{1,0}}
  19.  
  20. iter = 15
  21.  
  22. --
  23. function pattern(x,y,p,n,i) -- Fractal Pattern V1.0 by Richard Fhager (mod allows for wrapping)
  24.  py = #p
  25.  px = #p[1]
  26.  while ((p[1+math.abs(math.floor(y*py))%py][1+math.abs(math.floor(x*px))%px]) == 1 and n<i) do
  27.   x=x*px-math.floor(x*px);
  28.   y=y*py-math.floor(y*py);
  29.   n = n+1
  30.  end
  31.  return 1 - n/i;
  32. end
  33. --
  34.  
  35. w, h = getpicturesize()
  36.  
  37. rp,gp,bp = getcolor(getforecolor())
  38.  
  39. for y = 0, h - 1, 1 do
  40.   for x = 0, w - 1, 1 do
  41.  
  42.     ox = x / w;
  43.     oy = y / h;
  44.  
  45.     f = pattern(ox,oy,frac,0,iter);
  46.  
  47.     c = matchcolor(rp*f,gp*f,bp*f)
  48.  
  49.     putpicturepixel(x, y, c);
  50.  
  51.   end
  52.   updatescreen()
  53.   if (waitbreak(0)==1) then
  54.     return
  55.   end
  56. end
  57.  
  58.