Sierpinski carpet: Difference between revisions

Content added Content deleted
(Added Wren)
Line 4,963: Line 4,963:
###########################
###########################
</pre>
</pre>
Graphical Version using JRubyArt
{{libheader|RubyGems}}
{{libheader|JRubyArt}}
<lang ruby>
attr_reader :limit

def settings
size(540, 540)
end

def setup
sketch_title 'Sierpinski Carpet'
n = 4
@limit = width / 3**(n - 1)
end

def draw
background 0, 0, 200
no_stroke
fill 0
draw_carpet 0, 0, width
end

private

def draw_carpet(x, y, side)
len = side / 3
rect x + len, y + len, len, len # draw hole
return unless len >= limit

draw_carpet x, y, len
draw_carpet x + len, y, len
draw_carpet x + 2 * len, y, len
draw_carpet x, y + len, len
draw_carpet x + 2 * len, y + len, len
draw_carpet x, y + 2 * len, len
draw_carpet x + len, y + 2 * len, len
draw_carpet x + 2 * len, y + 2 * len, len
end

</lang>


=={{header|Rust}}==
=={{header|Rust}}==