From Wikipedia, the free encyclopedia
[edit] Summary
Gosper curve of degree 4. Created by me as a vector replacement for .
[edit] Source
The SVG file is produced by the following Perl script, which is based on the Logo implementation at de:Gosper-Kurve.
#!/bin/perl
# SVG Gosper curve generator by Blotwell
# Released under GFDL
BEGIN{ print <<HEREDOC
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"
width="320px" height="320px"
viewBox="0 0 6400 6400">
HEREDOC
;}
my $x=500, $y=2500, $a=90;
printf "<polyline points=\"%i,%i,",$x,$y;
$PI=3.1415926535897932384264338;
sub p {printf "%i,%i,",$x,$y;}
sub fd {my $n=shift; $x+=$n*cos($a*$PI/180); $y-=$n*sin($a*$PI/180); p();}
sub tl {$a+=shift;}
sub rt {$a-=shift;}
my $ln=100;
rg(4);
sub gl
{my $st=-1+shift;
if ($st<0) {fd($ln);}
else {tl(60); rg($st); rt(60); gl($st); gl($st); rt(120);
gl($st); rt(60); rg($st); tl(120); rg($st); tl(60); gl($st);}}
sub rg
{my $st=-1+shift;
if ($st<0) {fd($ln);}
else {rg($st); rt(60); gl($st); rt(120); gl($st); tl(60);
rg($st); tl(120); rg($st); rg($st); tl(60); gl($st); rt(60);}}
END{print '" stroke="black" stroke-width="30" stroke-linejoin="round" fill-opacity="0" />',"\n</svg>\n";}
[edit] Licensing
File history
Click on a date/time to view the file as it appeared at that time.
| Date/Time | Dimensions | User | Comment |
current | 19:10, 17 March 2007 | 320×320 (24 KB) | Blotwell | |
| 06:20, 17 March 2007 | 320×320 (19 KB) | Blotwell | |
File links
The following pages on the English Wikipedia link to this file (pages on other projects are not listed):