Switch to edit mode.
Name(s): area1: "Copied from Terra (#1000):area by Hacker (#60) Aug 31 08:21:02 2002"
2: ":area(x) => {{0, 0}, {0, 1}, {0, -1}, ...}"
3: "Returns a list of all x/y tuples that fall within a circle of radius x"
4: {radius} = args
5: quarter = {}
6: for y in [1..radius]
7: arc = cos($pi / 2.0 / tofloat(radius) * tofloat(y)) * tofloat(radius)
8: for x in [1..toint(arc + 0.5)]
9: quarter = {@quarter, {x, y}}
10: endfor
11: endfor
12: area = {{0, 0}}
13: for z in [1..radius]
14: area = {@area, {0, z}, {0, -z}, {z, 0}, {-z, 0}}
15: endfor
16: for z in (quarter)
17: area = setadd(area, {z[1], z[2]})
18: area = setadd(area, {z[2], z[1]})
19: area = setadd(area, {-z[1], z[2]})
20: area = setadd(area, {-z[2], z[1]})
21: area = setadd(area, {-z[1], -z[2]})
22: area = setadd(area, {-z[2], -z[1]})
23: area = setadd(area, {z[1], -z[2]})
24: area = setadd(area, {z[2], -z[1]})
25: endfor
26: "area = $list_utils:remove_duplicates(area)"
27: return area