premier dessin avec plplot
This commit is contained in:
parent
04eeae6de9
commit
aa4f0664cb
@ -243,19 +243,61 @@ ou un \textsc{HelloWorld}~:
|
|||||||
|
|
||||||
\lstinputlisting{code/fortran/plplotting.f90}
|
\lstinputlisting{code/fortran/plplotting.f90}
|
||||||
|
|
||||||
Il ne se passe pas grand chose, sauf la proposition de choisir
|
Il ne se passe pas grand chose, sauf qu'on a une proposition de
|
||||||
le type de sortie.
|
choisir le type de sortie.
|
||||||
Dans la version que j'ai (XXX\index{XXX}), on a le choix entre
|
Dans la version que j'ai (XXX\index{XXX}), on a le choix entre
|
||||||
X-Window, PostScript mono ou couleur, Xfig, Null, UserMemory et SVG.
|
X-Window, PostScript mono ou couleur, Xfig, PNG, SVG, et bien
|
||||||
C'est intriguant de ne pas avoir au moins \textbf{un} format
|
d'autres dont certains, pour moi, assez ésotériques.
|
||||||
pixmap\index{pixmap}.
|
D'autre part, avec cette méthode, il est impossible de
|
||||||
|
préciser la taille de l'image.
|
||||||
|
|
||||||
Laissons cette question en suspens, et commençons à dessiner.
|
Laissons cette question en suspens, et commençons à dessiner.
|
||||||
D'accord, mais dessiner quoi ?
|
|
||||||
|
Première étape, démarrer automatiquement dans une fenètre X11,
|
||||||
|
en gardant tous les autres paramètres à leur valeur par défaut.
|
||||||
|
Il suffit de rajouter \texttt{call plsdev('xwin')} juste avant
|
||||||
|
l'appel à \texttt{plinit}, et d'utiliser la touche \textsl{<enter>}
|
||||||
|
pour sortir.
|
||||||
|
|
||||||
|
Ensuite nous allons choisir une couleur pour l'encre (qui est d'un
|
||||||
|
rouge du meilleur effet par défaut en mode "xwin"),
|
||||||
|
puis écrire quelques légendes canoniques, donc inutiles, .
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
call plcol0 (15) ! pure white
|
||||||
|
call pllab ("Fuzzfactor", "Yoyodines", "Some nice plots")
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
Il est maintenant temps de poser un premier trait de crayon numérique
|
||||||
|
sur notre feuille blanche numérique\footnote{Actuellement noire, mais
|
||||||
|
nous trouverons bien comment changer ça}.
|
||||||
|
La forme de ce tracé sera donnée par une suite de coordonnées
|
||||||
|
flottantes \textsl{x/y}
|
||||||
|
stockées dans deux tableaux parallèles~:
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
integer, parameter :: lg = 500
|
||||||
|
real :: x(lg), y(lg)
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
Tableaux que nous allons immédiatement garnir de données pertinentes~:
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
real :: k
|
||||||
|
integer :: i
|
||||||
|
k = 0.1
|
||||||
|
do i = 1, lg
|
||||||
|
x(i) = k * sin(real(i)/3.0)
|
||||||
|
y(i) = k * cos(real(i)/3.0)
|
||||||
|
k = k * 1.006021
|
||||||
|
enddo
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
Wesh gro !
|
||||||
|
|
||||||
% --------------------------------------------------------
|
% --------------------------------------------------------
|
||||||
|
|
||||||
\section{Questions}
|
\section{Questions en attente}
|
||||||
|
|
||||||
\index{XXX}
|
\index{XXX}
|
||||||
|
|
||||||
@ -265,7 +307,7 @@ D'accord, mais dessiner quoi ?
|
|||||||
\item Est-il possible de causer à \texttt{libsndfile} ?
|
\item Est-il possible de causer à \texttt{libsndfile} ?
|
||||||
\item Comment caler une chaine à gauche avec un \textsc{format} ?
|
\item Comment caler une chaine à gauche avec un \textsc{format} ?
|
||||||
\item Is there a \texttt{-fortran} option for making comments with
|
\item Is there a \texttt{-fortran} option for making comments with
|
||||||
\texttt{figlet}\index{figlet} ?
|
\texttt{boxes} + \texttt{figlet}\index{figlet} ?
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
% --------------------------------------------------------
|
% --------------------------------------------------------
|
||||||
@ -273,6 +315,7 @@ D'accord, mais dessiner quoi ?
|
|||||||
|
|
||||||
\textsl{<Pas de réponse>}
|
\textsl{<Pas de réponse>}
|
||||||
|
|
||||||
|
Voilà, c'est tout pour le moment\dots
|
||||||
|
|
||||||
|
|
||||||
% ========================================
|
% ========================================
|
||||||
|
6
code/fortran/.gitignore
vendored
Normal file
6
code/fortran/.gitignore
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
|
||||||
|
plplotting
|
||||||
|
dessiner
|
||||||
|
|
||||||
|
*.png
|
||||||
|
|
@ -3,3 +3,6 @@ INCS = -I/usr/include/plplot -I/usr/lib/x86_64-linux-gnu/fortran/modules/plplot
|
|||||||
|
|
||||||
plplotting: plplotting.f90 Makefile
|
plplotting: plplotting.f90 Makefile
|
||||||
gfortran -g $< $(INCS) -lplplotfortran -o $@
|
gfortran -g $< $(INCS) -lplplotfortran -o $@
|
||||||
|
|
||||||
|
dessiner: dessiner.f90 Makefile
|
||||||
|
gfortran -g $< $(INCS) -lplplotfortran -o $@
|
||||||
|
41
code/fortran/dessiner.f90
Normal file
41
code/fortran/dessiner.f90
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
program dessiner
|
||||||
|
use plplot
|
||||||
|
implicit none
|
||||||
|
|
||||||
|
character(len=80) :: version
|
||||||
|
call plgver(version)
|
||||||
|
write (*,'(a,a)') 'plplot version: ', trim(version)
|
||||||
|
|
||||||
|
call plsdev('xwin')
|
||||||
|
call plinit ()
|
||||||
|
|
||||||
|
call plenv(-2.2, 2.2, -2.2, 2.2, 0, 1)
|
||||||
|
|
||||||
|
call dessin_1 ()
|
||||||
|
|
||||||
|
call plend
|
||||||
|
contains ! -----------------------------
|
||||||
|
|
||||||
|
subroutine dessin_1 ()
|
||||||
|
|
||||||
|
integer, parameter :: lg = 500
|
||||||
|
real :: x(lg), y(lg)
|
||||||
|
real :: k
|
||||||
|
integer :: i
|
||||||
|
|
||||||
|
k = 0.1
|
||||||
|
do i = 1, lg
|
||||||
|
x(i) = k * sin(real(i)/3.0)
|
||||||
|
y(i) = k * cos(real(i)/3.0)
|
||||||
|
k = k * 1.0060
|
||||||
|
enddo
|
||||||
|
print *, i, k, x(i), y(i)
|
||||||
|
|
||||||
|
call plcol0 (15) ! pure white
|
||||||
|
call pllab ("Fuzzfactor", "Yoyodines", "Some nice plots from tTh")
|
||||||
|
call plcol0 (12)
|
||||||
|
call plline (x, y)
|
||||||
|
|
||||||
|
end subroutine
|
||||||
|
|
||||||
|
end program
|
@ -5,7 +5,7 @@
|
|||||||
% Décembre, ça n'avance pas beaucoup...
|
% Décembre, ça n'avance pas beaucoup...
|
||||||
%
|
%
|
||||||
|
|
||||||
\usepackage[francais]{babel}
|
\usepackage[french]{babel}
|
||||||
\usepackage[utf8]{inputenc}
|
\usepackage[utf8]{inputenc}
|
||||||
\usepackage{xspace}
|
\usepackage{xspace}
|
||||||
\usepackage{makeidx}
|
\usepackage{makeidx}
|
||||||
|
Loading…
Reference in New Issue
Block a user