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}}== |