program dessiner use plplot implicit none integer :: i character(len=80) :: version call plgver(version) write (*,'(a,a)') 'plPlot version: ', trim(version) ! call dessin_X11 (0.00, 1.51, 11) call dessin_dans_un_fichier () contains ! ----------------------------- !------------------------------------------------------ subroutine dessin_X11 (sha, shb, color) real, intent(in) :: sha, shb integer, intent(in) :: color integer, parameter :: lg = 2000 real :: x(lg), y(lg) real :: k, amp integer :: i print *, 'dessin X11:', sha, shb, color call plsdev('xwin') call plinit () call plenv (-2.1, 2.1, -2.1, 2.1, 1, 2) amp = 2.16 do i = 1, lg k = real(i)/real(lg) * 6.2832 * 4.0 x(i) = amp * sin((k+sha)*5) y(i) = amp * cos((k+shb)*3) enddo ! print *, k, x(i), y(i) call plcol0 (15) ! pure white call pllab ("Fuzzfactor", "Yoyodines", "Some nice plots from tTh") call plcol0 (color) call plline (x, y) call plend end subroutine !------------------------------------------------------ !- _ __ ___ ___ ___ !- __ _ (_) / _| ( _ ) / _ \ __ _ |__ \ !- / _` | | | | |_ / _ \ | (_) | / _` | / / !- | (_| | | | | _| | (_) | \__, | | (_| | |_| !- \__, | |_| |_| \___/ /_/ \__,_| (_) !- |___/ subroutine dessin_dans_un_fichier () integer, parameter :: nbpts = 40 real :: x(nbpts), y(nbpts) integer :: frame, i character(len=89) :: filename character(len=89) :: buffer character(len=3) :: str print *, 'Dessin dans un fichier' do i=1, nbpts x(i) = 8.50 * (rand() - 0.5000) y(i) = 8.50 * (rand() - 0.5000) enddo do frame= 0, 149 write (filename, "(a, i4.4, a)") "WS/A", frame, ".png" print *, frame, ' => ', trim(filename) call plsdev ('pngcairo') call plsfnam (trim(filename)) call plinit () call plenv (-10., 10., -10., 10., 0, 1) call plcol0 (3) do i=1, nbpts x(i) = x(i) + (rand() - 0.5000) y(i) = y(i) + (rand() - 0.5000) call plline (x, y) enddo write(buffer, "(i3.3)") frame str = trim(buffer) call plcol0 (15) call plstring (x, y, buffer) call plend enddo end subroutine !------------------------------------------------------ end program