Animated mobius strip (July 2010)
# mobius.kbs # rotation mobius strip - j.m.reneau fastgraphics dim p(8) dim c(3) c = {red, green, blue} w = .20 # width of strip dr = 2 * pi / 100 # size of rotation in frame speed = .01 # pause between frames r = 0 while true clg for t = 0 to 2 x = sin((t - w) * pi * 2 / 3 + r)*graphwidth/2 + graphwidth/2 y = cos((t - w) * pi * 2 / 3 + r)*graphheight/2 + graphheight/2 x1 = sin((t + w) * pi * 2 / 3 + r)*graphwidth/2 + graphwidth/2 y1 = cos((t + w) * pi * 2 / 3 + r)*graphheight/2 + graphheight/2 x2 = sin((t+1 - w) * pi * 2 / 3 + r)*graphwidth/2 + graphwidth/2 y2 = cos((t+1 - w) * pi * 2 / 3 + r)*graphheight/2 + graphheight/2 x3 = sin((t+1 + w) * pi * 2 / 3 + r)*graphwidth/2 + graphwidth/2 y3 = cos((t+1 + w) * pi * 2 / 3+ r)*graphheight/2 + graphheight/2 p = {x,y,x3,y3,x2,y2,x1,y1} color c[t] poly p next t refresh r = r + dr pause speed end while
# morie pattern - j.m.reneau 2010-07-27 # height of pattern h = 500 # width of pattern w = 500 # distance between lines ((w or h)/s) on edge s = .005 fastgraphics graphsize w,h # background color black rect 0,0,w,h x0 = w/2 y0 = h/2 for t = 0 to 1 step s x1 = 0 y1 = t*h gosub drawline x1 = w y1 = h-t*h gosub drawline x1 = w-t*w y1 = 0 gosub drawline x1 = t*w y1 = h gosub drawline next t end drawline: dx = x0 - x1 dy = y0 - y1 # distance along length of line between points (as % of line length) sl = 3 / ((dx ^ 2 + dy ^ 2 ) ^ .5) for d = 0 to 1 step sl # color of pixel along line color 255*d, 255*d, 255*d plot x0 + dx * d, y0 + dy * d next d refresh return