20 lines
578 B
Text
20 lines
578 B
Text
require "bitmap"
|
|
|
|
local bmp
|
|
|
|
local function sierpinski_triangle(level, x, y, size)
|
|
if level > 0 then
|
|
local col = color.black
|
|
bmp:triangle(x, y, x + size, y, x, y + size, col, 1)
|
|
local size2 = size // 2
|
|
sierpinski_triangle(level - 1, x, y, size2)
|
|
sierpinski_triangle(level - 1, x + size2, y, size2)
|
|
sierpinski_triangle(level - 1, x, y + size2, size2)
|
|
end
|
|
end
|
|
|
|
local size <const> = 800
|
|
local level = 8
|
|
bmp = bitmap.of(size, size, color.white, "Sierpinski Triangle")
|
|
sierpinski_triangle(level, 20, 20, size - 40)
|
|
bmp:view()
|