ÎÌÌÌ̈ˆˆ¬ªªª¬ˆˆˆ¬ÌÌ̬ÌÀ̬ÌÀ̬ÌÀÌÌÌìÌÀÀî̬ÀÌÀ¬ÀÀÀ¬ÀÀÀ¬ÀÀÎÌÌÌ̈ˆˆ¬ªªª¬ˆˆˆ¬ÌÌ̬ÌÌ̬ÌÀ̬ÌÀÌÌÌìÌÀÀî̬ÀÌ̬ÀÀÀ¬ÀÀÀ¬ÀÀ¬ÌÌ̬ªªª¬ª¬ª¬ªÊ̬ªªªŒˆˆˆÌÀÌÎÌÌÎ̬̪ªÀ쬪ÀÀÀÌîÀìîÌÌîî¬ÌÌ̬ªªª¬ª¬ª¬ªÊ̬ªªªŒˆˆˆÌÀÌÎÌÌÎ̬̪ªÀ쬪ÀÀÀÌîÀìîÌÌîî >6>ÝÝ ÝÝÝ ÐÝÐÝÝÐÝÝÝÝ Ð ÐÝÝÐÝÐÝÝ Ð ÐÐÐ ÐÝ Ý ÝÝ ÐÐÐÐ ÐÐÝÐÝÝÐ ÐÐ Ð ÐÐÝÝÝ Ð Ð ÐÝ ÐÝ ÐÐÐÐ Ð Ð ÐÐÝ ÝÐ Ð Ð ÐÐ ÝÝ ÐÐ ÐÝ ÐÐÝ ÐÐÝÝÐÐÝÐÐÐ ÐÐ Ð ÐÐÐÐ ÐÐÝÝÝÝÝÝÝÝÝÝ Ð ÝÝ ÐÝ ÐÝ ÝÐÐÐÝ Ý Ð Ý ÐÝ ÐÝÝ ÝÐÝÝÝÝÝÝÝÝ Ð ÐÐÐÝ Ð@@Ð@ÐÐÝÝÝÐÝÝÝÝÝÝÝ ÐÐ ÐÐ ÐÐÝ ÐÝ Ð Ð ÐÐ ÐÐÐ Ý ÝÝÝÐ ÐÝÝÝ Ð ÐÐÐ ÐÝÝÐ Ð Ý Ð ÐÐÝ ÝÐÐ ÐÐ ÐÝ ÝÝÝ Ð ÝÝ Ð ÝÝÐÝÝÐÐ @   Ð Ý@ÐÝÐÐÐ ÐÐ ÐÐ@ ÐÐÐÐ @Ð Ð @Ð Ð Ý ÝÝÝÝÝÐÝÝÝÐÐÝ ÐÝÝ ÝÝ ÐÝ ÐÝÐÐÝÐ ÐÝ ÐÝÐÐÐÐÝÝÝÝÝ Ð ÝÝÝÝ Ð ÐÝÝÝÝÝÝ Ð Ð Ð ÐÝÐ@ÐÐ Ð Ð Ð ÐÝÐÐÐ ÐÐÐ Ý ÐÝÐ Ð Ð ÐÐÐÐÐ Ð Ð @ÐÐ Ý Ð Ð ÐÝ ÐÐÝ Ð ÐÐÝ ÐÐ ÐÐÝ Ð ÝÐÝÝÝÝÝÝÝ Ð Ð Ð ÐÐÐ @ Ý@ÝÐÝÝÝÝ  9 -- title: Moving points -- author: www.crisjr.eng.br -- desc: Something about moving points -- site: www.crisjr.eng.br -- license: MIT License -- version: 0.1 -- script: lua -- ############# -- # VARIABLES # -- ############# local POINT_COUNT=100 local POINTS={} local WIDTH=240 local HEIGHT=136 local T=0 local DT=2 -- ############### -- # MATHEMATICS # -- ############### function out_of_bounds(x,y) return x<0 or x>WIDTH or y<0 or y>HEIGHT end function distance(a,b) return math.sqrt((a.x-b.x)^2 + (a.y-b.y)^2) end -- ################# -- # MOVING POINTS # -- ################# function new_point() -- TODO implement me! local src=math.random(0,3) local x0=0 local y0=0 local vx=0 local vy=0 local r=math.random(2,20) if src==0 then -- up x0=math.random(1,WIDTH-1) y0=1 vx=math.random(0,2)-1 vy=math.random() elseif src==1 then -- right x0=WIDTH y0=math.random(1,HEIGHT-1) vx=-math.random() vy=math.random(0,2)-1 elseif src==2 then -- down x0=math.random(1,WIDTH-1) y0=HEIGHT-1 vx=math.random(0,2)-1 vy=-math.random() else -- left x0=1 y0=math.random(1,HEIGHT-1) vx=math.random() vy=math.random(0,2)-1 end return { x=x0, y=y0, vx=vx, vy=vy, r=r } end function update_point(p) local x1=p.x+p.vx local y1=p.y+p.vy if out_of_bounds(x1,y1) then return new_point() else return { x=x1, y=y1, vx=p.vx, vy=p.vy, r=p.r } end end function update_points() for i=1,POINT_COUNT do local p=update_point(POINTS[i]) POINTS[i]=p end end -- ######################## -- # GRAPHICAL OPERATIONS # -- ######################## function draw_points() for _, p in pairs(POINTS) do pix(p.x,p.y,4) end end function draw_lines_between_points() local rp={} -- reference point local cp={} -- comparison point local d=0 for i=1,POINT_COUNT-1 do rp=POINTS[i] for j=(i+1),POINT_COUNT do cp=POINTS[j] d=distance(rp,cp) if d