Sierpinski pentagon: Difference between revisions
Content deleted Content added
m Added Sidef |
m →{{header|Sidef}}: minor code simplification |
||
Line 215: | Line 215: | ||
<lang ruby>define order = 5 |
<lang ruby>define order = 5 |
||
define sides = 5 |
define sides = 5 |
||
define dim = |
define dim = 500 |
||
define scaling_factor = ((3 - 5**0.5) / 2) |
define scaling_factor = ((3 - 5**0.5) / 2) |
||
var orders = order.of {|i| ((1 |
var orders = order.of {|i| ((1-scaling_factor) * dim) * scaling_factor**(i-1) } |
||
say <<"STOP"; |
say <<"STOP"; |
||
Line 228: | Line 228: | ||
STOP |
STOP |
||
var vertices = sides.of {|i| Complex(0, |
var vertices = sides.of {|i| Complex(0, i * Math::tau / sides).exp } |
||
(sides**order).range.each { |i| |
|||
var vector = ([vertices.@["%#{order}d" % i.base(sides) -> chars]] »*« orders «+») |
var vector = ([vertices.@["%#{order}d" % i.base(sides) -> chars]] »*« orders «+») |
||
var points = (vertices »*» |
var points = (vertices »*» orders[-1]*(1-scaling_factor) »+» vector »reals»() «%« '%0.3f') |
||
say ('<polygon points="' + points.join(' ') + '"/>') |
say ('<polygon points="' + points.join(' ') + '"/>') |
||
} |
} |
||
say |
say '</svg>'</lang> |