In this example the ( x, y) coordinates of grid points are created by adding sinusoidal terms to the coordinates of the point above or to the left, for the two axes.
You also get great effects by colouring points based on some function of x, y.
nomainwin
dim dxy$( 50, 50)
for x =0 to 50: dxy$( x, 0) =str$( x *20); ",0": next x
for y =0 to 50: dxy$( 0, y) ="0,"; str$( y *20): next y
for x =1 to 50
for y =1 to 50
dx =25 +2 *sin( y /3)
dy =25 +2 *sin( x /3 )
newx =val( word$( dxy$( x -1, y), 1, ",")) +dx
newy =val( word$( dxy$( x, y -1), 2, ",")) +dy
dxy$( x, y) =str$( newx); ","; str$( newy)
next y
print
next x
WindowWidth =1100
WindowHeight =1080
UpperLeftX = 20
UpperLeftY = 20
open "Patterns" for graphics_nsb_nf as #w
#w "trapclose [quit]"
#w "down ; size 1 ; fill black ; color white"
for x =1 to 49
for y =1 to 49
xs =val( word$( dxy$( x, y), 1, ","))
ys =val( word$( dxy$( x, y), 2, ","))
#w "size 1 ; color yellow"
#w "place "; xs; " "; ys
xs2 =val( word$( dxy$( x+1, y), 1, ","))
ys2 =val( word$( dxy$( x+1, y), 2, ","))
#w "goto "; xs2; " "; ys2
xs3 =val( word$( dxy$( x, y+1), 1, ","))
ys3 =val( word$( dxy$( x, y+1), 2, ","))
#w "place "; xs; " "; ys
#w "goto "; xs3; " "; ys3
#w "size 10 ; color "; x *y /10; " 0 "; 255 -x *y /10
#w "place "; xs; " "; ys
#w "set "; xs; " "; ys
next y
print
next x
#w "getbmp screen 0 0 1100 1050"
bmpsave "screen", "R:\screen.bmp"
unloadbmp "screen"
wait
[quit]
close #w
end
nomainwin
dim dxy$( 50, 50)
for x =0 to 50
for y =0 to 50
dx =40 *cos( y /3)
dy =10 *sin( x /1.5 )
newx =x *20 +dx
newy =y *20 +dy
dxy$( x, y) =str$( newx); ","; str$( newy)
next y
print
next x
WindowWidth =1100
WindowHeight =1080
UpperLeftX = 20
UpperLeftY = 20
open "Patterns" for graphics_nsb_nf as #w
#w "trapclose [quit]"
#w "down ; size 1 ; fill black ; color white"
for x =1 to 49
for y =1 to 49
xs =val( word$( dxy$( x, y), 1, ","))
ys =val( word$( dxy$( x, y), 2, ","))
#w "size 1 ; color yellow"
#w "place "; xs; " "; ys
xs2 =val( word$( dxy$( x+1, y), 1, ","))
ys2 =val( word$( dxy$( x+1, y), 2, ","))
#w "goto "; xs2; " "; ys2
xs3 =val( word$( dxy$( x, y+1), 1, ","))
ys3 =val( word$( dxy$( x, y+1), 2, ","))
#w "place "; xs; " "; ys
#w "goto "; xs3; " "; ys3
#w "size 12 ; color "; x *y /10; " 0 "; 255 -x *y /10
#w "place "; xs; " "; ys
#w "set "; xs; " "; ys
next y
print
next x
#w "flush"
#w "getbmp screen 0 0 1100 1050"
filedialog "Save image as", "*.bmp", fn$
bmpsave "screen", fn$
unloadbmp "screen"
wait
[quit]
close #w
end