Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
37
Task/Dragon-curve/Sidef/dragon-curve.sidef
Normal file
37
Task/Dragon-curve/Sidef/dragon-curve.sidef
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
define halfpi = Math.pi/2;
|
||||
|
||||
# Computing the dragon with a L-System
|
||||
var dragon = 'FX';
|
||||
{
|
||||
dragon.gsub!('X', 'x+yF+');
|
||||
dragon.gsub!('Y', '-Fx-y');
|
||||
dragon.tr!('xy', 'XY');
|
||||
} * 10;
|
||||
|
||||
# Drawing the dragon in SVG
|
||||
var (x, y) = (100, 100);
|
||||
var theta = 0;
|
||||
var r = 2;
|
||||
|
||||
print <<'EOT';
|
||||
<?xml version='1.0' encoding='utf-8' standalone='no'?>
|
||||
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN'
|
||||
'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
|
||||
<svg width='100%' height='100%' version='1.1'
|
||||
xmlns='http://www.w3.org/2000/svg'>
|
||||
EOT
|
||||
|
||||
dragon.each { |c|
|
||||
given(c) {
|
||||
when ('F') {
|
||||
printf("<line x1='%.0f' y1='%.0f' ", x, y);
|
||||
printf("x2='%.0f' ", x += r*Math.cos(theta));
|
||||
printf("y2='%.0f' ", y += r*Math.sin(theta));
|
||||
printf("style='stroke:rgb(0,0,0);stroke-width:1'/>\n");
|
||||
}
|
||||
when ('+') { theta += halfpi }
|
||||
when ('-') { theta -= halfpi }
|
||||
}
|
||||
}
|
||||
|
||||
print '</svg>';
|
||||
Loading…
Add table
Add a link
Reference in a new issue