## Donut.jl

Andy Sloane's rotating donut in Julia
Author mossr
Popularity
26 Stars
Updated Last
1 Year Ago
Started In
April 2021

# Donut.jl

Andy Sloane's `donut` written in Julia.

Copy this into the Julia REPL to watch the 🍩 spin!

```            function donut()
A=B=1;b=Vector(undef,1760)
z=Vector(undef,1760);println(
"\33[2J");print("\e[?25l");while true
A+=0.07;B+=0.03;cA=cos(A);sA=sin(A);cB=
cos(B);sB=sin(B);for k = 1:length(b);b[k]=
k%80==79 ? "\n" : " ";z[k] = 0;end;for j in
range(0, step=            0.07,stop = 6.28);
ct=cos(j);st=              sin(j); for i in
range(0,step=               0.02, stop=6.28);
sp=sin(i); cp=             cos(i);h=ct+2;D=1/
(sp*h*sA+st*cA+           5);t=sp*h*cA-st*sA
x=0|trunc(Int,40+      30*D*(cp*h*cB-t*sB))
y=0|trunc(Int,12+15*D*(cp*h*sB+t*cB));o=x+
80*y;N=0|trunc(Int, 8*((st*sA-sp*ct*cA)*
cB-sp*ct*sA-st*cA-cp*ct*sB));if y<22&&
y>=0&&x>=0&&x<79&&D>z[o];z[o]=D;b[o]=
".,-~:;=!*#\\$@"[N>1 ? N : 1];end
end;end;println("\033[1;1H"*
join(b));sleep(0.03)
end;end;donut()```

View the raw donut at `donut.jl` and an unobfuscated version at `donut-unobfuscated.jl`.

Robert Moss