Jump to content

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]]
Creates a PNG image.
<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.range.each { |i|
rangefor j in RangeNum(i * scale, i * scale + scale).each { |j|
var row = self[i];
img.moveTo(0, j);
loopvar {len = row.len
ifwhile ((var sp = row.count(/^\s+/)) > 0len) {
row.substrgsub!(sp/^\s+/);
var color = img.fgcolor(bgcolor);
if (len == imgrow.line(scalelen) * sp);{
} row.gsub!(/^\S+/)
elsif ((var nspcolor = row.count(/^\S+/)) > 0) {fgcolor
row.substr!(nsp);
img.fgcolor(fgcolor);
img.line(scale * nsp);
}
else {
break;
}
img.fgcolor(fgcolorcolor);
var p = break;len-row.len
len = row.substr!(nsp);len
img.line(scale * nspp);
}
}
}
return img.png;
 
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', \var fh, \var err)
fh.print(raw_png);
|| die "Can't write to file '#{file}': #{err}";
fh.close;</lang>
fh.print(raw_png);
fh.close;</lang>
 
=={{header|Tcl}}==
2,756

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.