-- -- grid.lua -- -- require "gd" imgX = 950; imgY = 550; im = gd.createTrueColor( imgX, imgY ) color = im:colorAllocateAlpha( 255, 255, 255, 64) color2 = im:colorAllocateAlpha( 255, 255, 255, 32) im:filledRectangle( 0,0, imgX,imgY, color2 ) --[==[ im:filledRectangle( 10,10,95,95,color2 ) im:filledRectangle( 105,105,190,190,color ) im:line(100,10,100,190,color) im:line(10,100,190,100,color2) im:rectangle( 5,5,195,195,color2 ) ]==] --[==[ == == grid draws horizontal and vertical lines. == It adds minor ticks inside each edge and in the middle ]==] function grid( minx,miny,maxx,maxy,incx,incy,incmx,incmy ) if incx > 0 then midy = (maxy+miny)/2 ofsx = minx while( ofsx < maxx+1 ) do im:line(ofsx,miny,ofsx,maxy,color) ofsx = ofsx + incx end im:line(minx,midy,maxx,midy,color) ofsx = minx while( ofsx < maxx+1 ) do im:line(ofsx,miny,ofsx,miny+5,color) im:line(ofsx,midy-5,ofsx,midy+5,color) im:line(ofsx,maxy-5,ofsx,maxy,color) ofsx = ofsx + incmx end end if incy > 0 then midx = (maxx+minx)/2 ofsy = miny while( ofsy < maxy+1 ) do im:line(minx,ofsy,maxx,ofsy,color) ofsy = ofsy + incy end im:line(midx,miny,midx,maxy,color) ofsy = miny while( ofsy < maxy+1 ) do im:line(minx,ofsy,minx+5,ofsy,color) im:line(midx-5,ofsy,midx+5,ofsy,color) im:line(maxx-5,ofsy,maxx,ofsy,color) ofsy = ofsy + incmy end end end grid(25,25,imgX-25,imgY-25,50,50,10,10) im:jpeg( "grid.jpg",90 ) im:png( "grid.png",90 )