From a95cc178530b740ee5d7e296aa8729eae345443b Mon Sep 17 00:00:00 2001 From: Kevin Lange Date: Mon, 6 Feb 2012 23:34:35 -0600 Subject: [PATCH] Mm, donuts --- userspace/Makefile | 6 ++++++ userspace/donut.c | 22 ++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 userspace/donut.c diff --git a/userspace/Makefile b/userspace/Makefile index 7d814a3d..736fabdb 100644 --- a/userspace/Makefile +++ b/userspace/Makefile @@ -15,6 +15,7 @@ ENDRM = ../util/mk-end-rm FREETYPE_INC = -I ../util/toaru-toolchain/i686-pc-toaru/include/freetype2/ FREETYPE_LIB = ../util/toaru-toolchain/i686-pc-toaru/lib/libfreetype.a +LIBM = ../util/toaru-toolchain/i686-pc-toaru/lib/libm.a .PHONY: all clean @@ -51,6 +52,11 @@ clean: @${CC} ${CFLAGS} -s -o $@ $< lib/list.o ${ERRORS} @${END} "CC" "$< [w/libs]" +../hdd/bin/donut: donut.c + @${BEG} "CC" "$< [w/libs]" + @${CC} ${CFLAGS} -s -o $@ $< ${LIBM} ${ERRORS} + @${END} "CC" "$< [w/libs]" + ../hdd/bin/%: %.cpp @${BEG} "CPP" "$<" @${CPP} ${CPPFLAGS} -s -o $@ $< ${ERRORS} diff --git a/userspace/donut.c b/userspace/donut.c new file mode 100644 index 00000000..e2f1cfee --- /dev/null +++ b/userspace/donut.c @@ -0,0 +1,22 @@ +/* http://a1k0n.net/2011/07/20/donut-math.html */ + k;double sin() + ,cos();main(){float A= + 0,B=0,i,j,z[1760];char b[ + 1760];printf("\x1b[2J");for(;; + ){memset(b,32,1760);memset(z,0,7040) + ;for(j=0;6.28>j;j+=0.07)for(i=0;6.28 + >i;i+=0.02){float c=sin(i),d=cos(j),e= + sin(A),f=sin(j),g=cos(A),h=d+2,D=1/(c* + h*e+f*g+5),l=cos (i),m=cos(B),n=s\ +in(B),t=c*h*g-f* e;int x=40+30*D* +(l*h*m-t*n),y= 12+15*D*(l*h*n ++t*m),o=x+80*y, N=8*((f*e-c*d*g + )*m-c*d*e-f*g-l *d*n);if(22>y&& + y>0&&x>0&&80>x&&D>z[o]){z[o]=D;;;b[o]= + ".,-~:;=!*#$@"[N>0?N:0];}}/*#****!!-*/ + printf("\x1b[H");for(k=0;1761>k;k++) + putchar(k%80?b[k]:10);A+=0.04;B+= + 0.02;}}/*****####*******!!=;:~ + ~::==!!!**********!!!==::- + .,~~;;;========;;;:~-. + ..,--------,*/