diff --git a/.gitignore b/.gitignore index 06a2bc3..ab8ba5b 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,5 @@ spirale starfield randomwalk oscilloscope +lissajous + diff --git a/Makefile b/Makefile index c8f01ba..e928dcc 100644 --- a/Makefile +++ b/Makefile @@ -47,3 +47,13 @@ spirale.png: spirale Makefile convert a.tga $@ # ----------------------------------------------- + +lissajous: lissajous.f90 Makefile genplotting.o + gfortran -Wall $< genplotting.o -o $@ + +lissajous.png: lissajous Makefile + ./lissajous + genplot2 -s 512x512 WS/lissajous.scratch a.tga + convert a.tga $@ + +# ----------------------------------------------- diff --git a/lissajous.f90 b/lissajous.f90 new file mode 100644 index 0000000..3bfe86c --- /dev/null +++ b/lissajous.f90 @@ -0,0 +1,41 @@ +program sinwaves + use genplotting + implicit none + + integer foo, c + real phase + call genp_init (0, 'WS/lissajous.scratch') + + do foo=1, 22 + phase = real(foo) * 0.314159 + c = 3 + mod(foo, 2) + call do_lissajous (2000, phase, c) + enddo + + call genp_end (0) + +contains +! --------------------------------------------------------- +subroutine do_lissajous (nbpass, phy, col) + integer, intent(in) :: nbpass, col + real, intent(in) :: phy + + integer :: idx + real :: ridx, x, y + + do idx=0, nbpass + ridx = 6.28318 * (real(idx) / real(nbpass)) + x = sin(ridx*7 + phy) + y = cos(ridx*3) + + if (idx .eq. 0) then + call genp_move(x, y) + else + call genp_draw(x, y, col) + endif + + enddo + +end subroutine +! --------------------------------------------------------- +end program