Sierpinski triangle/Graphical: Difference between revisions
Content added Content deleted
m (Added Sidef language) |
m (→{{header|Sidef}}: code improvement: Array.to_png() now will automatically transform the self input to a fixed-width format) |
||
Line 1,138: | Line 1,138: | ||
class Array { |
class Array { |
||
method to_png(scale=1) { |
method to_png(scale=1, bgcolor='white', fgcolor='black') { |
||
var gd = ( |
var gd = ( |
||
Line 1,145: | Line 1,145: | ||
); |
); |
||
var |
var width = self.max_by{.len}.len; |
||
self.map!{|r| "%-#{width}s" % r}; |
|||
var img = gd.new(width * scale, self.len * scale); |
|||
self.range.each { |i| |
self.range.each { |i| |
||
Line 1,153: | Line 1,156: | ||
loop { |
loop { |
||
if (row.sub!(/^(\s+)/); $1.len?) { |
if (row.sub!(/^(\s+)/); $1.len?) { |
||
img.fgcolor( |
img.fgcolor(bgcolor); |
||
img.line(scale * $1.len); |
img.line(scale * $1.len); |
||
} elsif (row.sub!(/^(\S+)/); $1.len?) { |
} elsif (row.sub!(/^(\S+)/); $1.len?) { |
||
img.fgcolor( |
img.fgcolor(fgcolor); |
||
img.line(scale * $1.len); |
img.line(scale * $1.len); |
||
} else { break } |
} else { break } |
||
Line 1,168: | Line 1,171: | ||
var triangle = sierpinski_triangle(8); |
var triangle = sierpinski_triangle(8); |
||
var raw_png = triangle.to_png; |
var raw_png = triangle.to_png(bgcolor:'black', fgcolor:'red'); |
||
var file = %f'triangle.png'; |
var file = %f'triangle.png'; |