Babylonian spiral: Difference between revisions
Content added Content deleted
m (priority queue) |
m (cleanup) |
||
Line 174: | Line 174: | ||
function babylonian_spiral(N) |
function babylonian_spiral(N) |
||
dx, dy, points = 0, 1, [(0, 0)] |
|||
for xys in SquareSums() |
|||
for xys in sqsums |
|||
for i in 1:length(xys) |
for i in 1:length(xys) |
||
a, b = xys[i] |
a, b = xys[i] |
||
Line 187: | Line 186: | ||
_, idx = findmax(p -> p[1] * dx + p[2] * dy, xys) |
_, idx = findmax(p -> p[1] * dx + p[2] * dy, xys) |
||
dx, dy = xys[idx] |
dx, dy = xys[idx] |
||
push!( |
push!(points, (points[end][1] + dx, points[end][2] + dy)) |
||
length( |
length(points) >= N && break |
||
end |
end |
||
return |
return @view points[begin:N] |
||
end |
end |
||