Sierpinski pentagon: Difference between revisions
Content added Content deleted
No edit summary |
Thundergnat (talk | contribs) (Rename Perl 6 -> Raku, alphabetize, minor clean-up) |
||
Line 910:
close $fh;</lang>
[https://github.com/SqrtNegInf/Rosettacode-Perl5-Smoke/blob/master/ref/sierpinski_pentagon.svg Sierpinski pentagon] (offsite image)
=={{header|Perl 6}}==▼
{{works with|rakudo|2018-10}}▼
<lang perl6>constant $sides = 5;▼
constant order = 5;▼
constant $dim = 250;▼
constant scaling-factor = ( 3 - 5**.5 ) / 2;▼
my @orders = ((1 - scaling-factor) * $dim) «*» scaling-factor «**» (^order);▼
my $fh = open('sierpinski_pentagon.svg', :w);▼
$fh.say: qq|<svg height="{$dim*2}" width="{$dim*2}" style="fill:blue" version="1.1" xmlns="http://www.w3.org/2000/svg">|;▼
my @vertices = map { cis( $_ * τ / $sides ) }, ^$sides;▼
for 0 ..^ $sides ** order -> $i {▼
my $vector = [+] @vertices[$i.base($sides).fmt("%{order}d").comb] «*» @orders;▼
$fh.say: pgon ((@orders[*-1] * (1 - scaling-factor)) «*» @vertices «+» $vector)».reals».fmt("%0.3f");▼
};▼
sub pgon (@q) { qq|<polygon points="{@q}" transform="translate({$dim},{$dim}) rotate(-18)"/>| }▼
$fh.say: '</svg>';▼
$fh.close;</lang>▼
See [http://rosettacode.org/mw/images/5/57/Perl6_pentaflake.svg 5th order pentaflake]▼
=={{header|Python}}==
Line 1,078 ⟶ 1,052:
(dc-draw-pentagon 4 120 120)
(dc-draw-pentagon 5 640 640)</lang>
(formerly Perl 6)
▲{{works with|rakudo|2018-10}}
▲<lang perl6>constant $sides = 5;
▲constant order = 5;
▲constant $dim = 250;
▲constant scaling-factor = ( 3 - 5**.5 ) / 2;
▲my @orders = ((1 - scaling-factor) * $dim) «*» scaling-factor «**» (^order);
▲my $fh = open('sierpinski_pentagon.svg', :w);
▲$fh.say: qq|<svg height="{$dim*2}" width="{$dim*2}" style="fill:blue" version="1.1" xmlns="http://www.w3.org/2000/svg">|;
▲my @vertices = map { cis( $_ * τ / $sides ) }, ^$sides;
▲for 0 ..^ $sides ** order -> $i {
▲ my $vector = [+] @vertices[$i.base($sides).fmt("%{order}d").comb] «*» @orders;
▲ $fh.say: pgon ((@orders[*-1] * (1 - scaling-factor)) «*» @vertices «+» $vector)».reals».fmt("%0.3f");
▲};
▲sub pgon (@q) { qq|<polygon points="{@q}" transform="translate({$dim},{$dim}) rotate(-18)"/>| }
▲$fh.say: '</svg>';
▲$fh.close;</lang>
▲See [http://rosettacode.org/mw/images/5/57/Perl6_pentaflake.svg 5th order pentaflake]
=={{header|Scala}}==
Line 1,188 ⟶ 1,189:
}</lang>
=={{header|Sidef}}==
{{trans|Perl 6}}
|