Sierpinski pentagon: Difference between revisions

Content deleted Content added
Trizen (talk | contribs)
m Added Sidef
Trizen (talk | contribs)
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 = 250
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 - scaling_factor) * dim) * scaling_factor**(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, (sides-i) * Math::tau / sides).exp }
var vertices = sides.of {|i| Complex(0, i * Math::tau / sides).exp }


0.to(sides ** order - 1).each { |i|
(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 »*» (orders[-1]*(1-scaling_factor)) »+» vector »reals»() «%« "%0.3f")
var points = (vertices »*» orders[-1]*(1-scaling_factor) »+» vector »reals»() «%« '%0.3f')
say ('<polygon points="' + points.join(' ') + '"/>')
say ('<polygon points="' + points.join(' ') + '"/>')
}
}


say "</svg>"</lang>
say '</svg>'</lang>