ÎÌÌÌ̈ˆˆ¬ªªª¬ˆˆˆ¬ÌÌ̬ÌÀ̬ÌÀ̬ÌÀÌÌÌìÌÀÀî̬ÀÌÀ¬ÀÀÀ¬ÀÀÀ¬ÀÀÎÌÌÌ̈ˆˆ¬ªªª¬ˆˆˆ¬ÌÌ̬ÌÌ̬ÌÀ̬ÌÀÌÌÌìÌÀÀî̬ÀÌ̬ÀÀÀ¬ÀÀÀ¬ÀÀ¬ÌÌ̬ªªª¬ª¬ª¬ªÊ̬ªªªŒˆˆˆÌÀÌÎÌÌÎ̬̪ªÀ쬪ÀÀÀÌîÀìîÌÌîî¬ÌÌ̬ªªª¬ª¬ª¬ªÊ̬ªªªŒˆˆˆÌÀÌÎÌÌÎ̬̪ªÀ쬪ÀÀÀÌîÀìîÌÌîî >¿>330333000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª  îîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîî®êÞÝÝíîîîîîîîîîîîîÿÿïÿÿïîîàîîîîîîáîîîîîî""îîîîîîî33îîîîNDäîî^Uåîîîîîînffæfffwwç~wçî  êÞDDÝÝÝíîîîîîîîîþOOÿODïîîDîîDD!"""âB$î233333C4CDDäNDäDTUDUUUUUîînDDfFDvDDwwDçîÞDÝÔMDîDNîNDîîîþDDôDÿïîîDD@îîDAD$DD"B$.CD3DD3DDDDDDNDDDDTDUTEDTîînfFdDFtwGtGDçî® îÞDÝÔDMäDDäDîäîîþOOÿDDîîD@îîD$B$D"$B$>D34D34CDDDDDNDDDTUDDUDTeîînFDfDttGDwwDçî® îÞDÝÔDäîäääDîäîîþDDôDÿîîD@DîîDD$B$D""B$3D34D33CDDDDDNDDDTUDUTUDdîînDffDwtDwwwDwî® êÞDDÝMDîäääNDþîîþOOÿODîîDDAîîD!BD$Dâî"D4CD3DãîCDDDäîNDTEDTDUTDDfîînDDdFDwDDtGD„îªêÞÝÝíîîîîîîîîïîîîÿÿïÿàîîàADîîáî""""âî.333333ãîNDDDäîNDåUUUUUUUfæîînfffwwwwwwwwˆî  îîîîîîîîîîîîîîîîîîîîîîîîîîîîáîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª ë-- title: sine wave -- author: parlortricks -- desc: draw a moving sine wave -- script: lua -- SPDX-License-Identifier: GPL-3.0-or-later -- Copyright (c) 2021 parlortricks local m = math local sin = m.sin local cos = m.cos local pi = m.pi local tau = 2*pi local floor = m.floor local ceil = m.ceil local rnd = m.random local t = time local angles = {} local angleV = {} local r = 2 local screen_width = 240 local screen_height = 136 local total_circ = screen_width // (r*2) --start footer stuff local rainbow=0 local footer_duration=3 local footer_step=0 local footer_text="Demo #6 by Parlortricks 2021" local footer_y=126 --end footer stuff function mapv(value,start1,stop1,start2,stop2) --https://processing.org/reference/map_.html --https://stackoverflow.com/questions/3451553/value-remapping return start2+(stop2-start2)*((value-start1)/(stop1-start1)) end function init() local step = tau/total_circ for i=0,total_circ do angles[i] = mapv(i,1,total_circ,0,2*tau) angleV[i] = 0.01 + i /100 end end function footer(text) local text = text local x,y=2,footer_y local pxtext=#text*6 local cx=120-pxtext/2 circ(cx,y+2,5,10) circ(cx,y+2,4,14) circ(cx+pxtext-2,y+2,5,10) circ(cx+pxtext-2,y+2,4,14) rect(cx-2,y-3,pxtext+3,11,10) rect(cx-2,y-2,pxtext+3,9,14) for k1=-1,1 do for k2=-1,1 do print(text,cx+k1,y+k2,12,true) end end print(text,cx,y,4,true) for i=cx-1,cx+pxtext do for j=y-1,y+6 do if pix(i,j)==12 then pix(i,j,(i+j+rainbow)/16) end end end end init() function TIC() cls() for i=1,#angles do local y = mapv(sin(angles[i]),-1,1,0+r,136-r) local x = mapv(i,0,#angles,0,240) if i==1 then line(x,y,x,y,3) else line(oldx,oldy,x,y,3) end oldx=x oldy=y angles[i] = angles[i] - 0.02 end --start footer stuff if footer_step < 180 then footer(footer_text) footer_step=footer_step+1 rainbow = rainbow + 1 elseif footer_y < 146 then footer(footer_text) footer_y=footer_y+1 rainbow = rainbow + 1 else end --end footer stuff end