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.12, 1.51, 11) !! call dessin_dans_un_fichier () contains ! ----------------------------- !------------------------------------------------------ !- __ __ _ !- \ \/ / __ __ (_) _ __ !- \ / \ \ /\ / / | | | '_ \ !- / \ \ V V / | | | | | | !- /_/\_\ \_/\_/ |_| |_| |_| !- 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.5, 2.5, -2.5, 2.5, 1, 2) amp = 2.06 do i = 1, lg k = real(i)/real(lg) * 6.2832 * 2.0 x(i) = amp * sin((k+sha)) y(i) = amp * cos((k+shb)) 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 = 20 real, parameter :: usz = 15.0 ! univers size 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) = usz * (rand() - 0.5000) y(i) = usz * (rand() - 0.5000) * 0.50 enddo do frame= 0, 119 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) + 1.2 * (rand() - 0.5000) y(i) = y(i) + 1.2 * (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 !------------------------------------------------------ !- _ _ ____ !- | |_ _ __ ___ (_) | _ \ !- | __| | '__| / _ \ | | | | | | !- | |_ | | | (_) | | | | |_| | !- \__| |_| \___/ |_| |____/ !- subroutine dessiner_en_trois_D () integer, parameter :: szgrid = 64 integer :: i, j print *, 'Dessin en 3D (de merde :)' call plsdev ('xwin') call plinit () call plend () end subroutine !------------------------------------------------------ end program