Advertisement
FartNebuleuse

Triangle Sierpinski

May 28th, 2021
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. --@name Triangle Sierpinski
  2. --@author
  3.  
  4. if CLIENT then
  5. local size = 1024
  6.  
  7. local Ax = size/2
  8. local Ay = 0
  9. local Bx = 0
  10. local By = size-1
  11. local Cx = size-1
  12. local Cy = size-1
  13. local x, y = size/2, 0
  14.  
  15. local scl = 1024 / size
  16.  
  17. render.createRenderTarget("fractal")
  18.  
  19. local function quotaCheck(n)
  20. return math.max(quotaAverage(), quotaUsed()) < quotaMax() * n
  21. end
  22.  
  23. function load()
  24. hook.add("render","",function()
  25. while quotaCheck(0.05) do
  26. render.selectRenderTarget("fractal")
  27.  
  28. local h = math.random(3)
  29.  
  30. if h == 1 then
  31. x = math.lerp(0.5,x,Ax)
  32. y = math.lerp(0.5,y,Ay)
  33. elseif h == 2 then
  34. x = math.lerp(0.5,x,Bx)
  35. y = math.lerp(0.5,y,By)
  36. elseif h == 3 then
  37. x = math.lerp(0.5,x,Cx)
  38. y = math.lerp(0.5,y,Cy)
  39. end
  40.  
  41. render.setColor(Color(((x+y)/size)*360,1,1):hsvToRGB())
  42. render.drawRectFast(math.round(x)*scl, math.round(y)*scl, scl, scl)
  43.  
  44. render.selectRenderTarget(nil)
  45. end
  46.  
  47. render.setColor(Color(255,255,255))
  48. render.setRenderTargetTexture("fractal")
  49. render.drawTexturedRect(0,0,512,512)
  50. end)
  51. end
  52.  
  53. load()
  54. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement