Sierpinski triangle/Graphical: Difference between revisions
m
→{{header|Sidef}}: code simplifications and performance improvements
m (Typo) |
m (→{{header|Sidef}}: code simplifications and performance improvements) |
||
Line 1,436:
=={{header|Sidef}}==
[[File:Sierpinski_triangle_sidef.png|200px|thumb|right]]
<lang ruby>func sierpinski_triangle(n) -> Array {
var triangle = ['*']
{ |i|
var sp = (' ' * Math.pow(2, i-1));
triangle = (triangle.map {|x| sp + x + sp} +
triangle.map {|x| x + ' ' + x})
} * n
triangle
}
Line 1,452:
var gd = (
try { require('GD::Simple') }
catch { warn "GD::Simple is not installed!"; return }
);
var width = self.max_by{.len}.len
self.map!{|r| "%-#{width}s" % r}
var img = gd.new(width * scale, self.len * scale)
for i in ^self
var row = self[i]
img.moveTo(0, j)
var color =
if (len ==
row.substr!(nsp);▼
img.fgcolor(fgcolor);▼
img.line(scale * nsp);▼
break;▼
}
}
}
}
▲ return img.png;
}
}
var triangle = sierpinski_triangle(8)
var raw_png = triangle.to_png(bgcolor:'black', fgcolor:'red')
var file = %f'triangle.png'
var fh = file.open('>:raw'
▲fh.print(raw_png);
▲fh.close;</lang>
=={{header|Tcl}}==
|