function param1() return "interval", 10, 100, 50 end function param2() return "color rnd", 0, 100, 60 end function main( x, y, p ) local w = bs_width_max() * (0.5 + 0.5*p) if w < 5 then w = 5 end if not firstDraw then local distance = bs_distance( lastDrawX - x, lastDrawY - y ) if distance < w * bs_param1()/100 then return 0 end end local dx,dy = bs_dir() local nx,ny = bs_normal() local rnd = 0.5 + math.random()*0.7 bs_bezier_begin( 0, -0.5 ) bs_bezier_c( 0.8, 0.5, -0.8, 0.5, 0, -0.5 ) bs_bezier_mul( rnd*w, rnd*w ) bs_bezier_move( x+bs_grand(0,0.5)*w*1.5, y+bs_grand(0,0.5)*w*1.5 ) local r,g,b = bs_forebg( 1.0 - math.random()*bs_param2()/100 ) bs_fill( r,g,b, 255 ) lastDrawX = x lastDrawY = y firstDraw = false return 1 end lastDrawX = 0 lastDrawY = 0 firstDraw = true