Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
38
Task/Fractal-tree/Jq/fractal-tree.jq
Normal file
38
Task/Fractal-tree/Jq/fractal-tree.jq
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
# width and height define the outer dimensions;
|
||||
# len defines the trunk size;
|
||||
# scale defines the branch length relative to the trunk;
|
||||
def main(width; height; len; scale):
|
||||
|
||||
def PI: (1|atan)*4;
|
||||
|
||||
def precision(n):
|
||||
def pow(k): . as $in | reduce range(0;k) as $i (1; .*$in);
|
||||
if . < 0 then - (-. | precision(n))
|
||||
else
|
||||
(10|pow(n)) as $power
|
||||
| (. * 10 * $power) | floor as $x | ($x % 10) as $r
|
||||
| ((if $r < 5 then $x else $x + 5 end) / 10 | floor) / $power
|
||||
end;
|
||||
|
||||
def p2: precision(2);
|
||||
|
||||
def tree(x; y; len; angle):
|
||||
if len < 1 then empty
|
||||
else
|
||||
(x + len * (angle|cos)) as $x2
|
||||
| (y + len * (angle|sin)) as $y2
|
||||
| (if len < 10 then 1 else 2 end) as $swidth
|
||||
| (if len < 10 then "blue" else "black" end) as $stroke
|
||||
| "<line x1='\(x|p2)' y1='\(y|p2)' x2='\($x2|p2)' y2='\($y2|p2)' style='stroke:\($stroke); stroke-width:\($swidth)'/>",
|
||||
tree($x2; $y2; len * scale; angle + PI / 5),
|
||||
tree($x2; $y2; len * scale; angle - PI / 5)
|
||||
end
|
||||
;
|
||||
|
||||
"<svg width='100%' height='100%' version='1.1'
|
||||
xmlns='http://www.w3.org/2000/svg'>",
|
||||
tree(width / 2; height; len; 3 * PI / 2),
|
||||
"</svg>"
|
||||
;
|
||||
|
||||
main(1000; 1000; 400; 6/10)
|
||||
Loading…
Add table
Add a link
Reference in a new issue