42 lines
838 B
Fortran
42 lines
838 B
Fortran
program sinwaves
|
|
use genplotting
|
|
implicit none
|
|
|
|
integer foo, c
|
|
real phase
|
|
call genp_init (0, 'WS/lissajous.scratch')
|
|
|
|
do foo=1, 20
|
|
phase = real(foo) * 0.314159
|
|
c = 3 + mod(foo, 2)
|
|
call do_lissajous (400, 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 + 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
|