123 lines
3.3 KiB
Fortran
123 lines
3.3 KiB
Fortran
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
|