Compare commits
No commits in common. "d96238bca40aaac5cb12629e9c0766550e8e1b91" and "0ee9005885e4a124a6f345214bba35e9b4bdd41f" have entirely different histories.
d96238bca4
...
0ee9005885
20
chap/R.tex
20
chap/R.tex
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
Je n'ai certainement pas la prétention de vous enseigner
|
Je n'ai certainement pas la prétention de vous enseigner
|
||||||
les arcanes du \textsl{R project},
|
les arcanes du \textsl{R project},
|
||||||
je suis (octobre 2023) en pleine période de découverte.
|
je suis (octobre 2023) en pleine périoe de découverte.
|
||||||
Mais j'ai déja un projet concret en tête, et ce chapitre sera,
|
Mais j'ai déja un projet concret en tête, et ce chapitre sera,
|
||||||
dans un premier temps, composé de mes notes de voyage.
|
dans un premier temps, composé de mes notes de voyage.
|
||||||
|
|
||||||
@ -29,17 +29,16 @@ Le caractère \texttt{>} est le prompt de R, il vous invite à taper
|
|||||||
des commandes afin qu'il vous explique le sens de la vie.
|
des commandes afin qu'il vous explique le sens de la vie.
|
||||||
On peut définir des variables, leur donner une valeur et faire des calculs
|
On peut définir des variables, leur donner une valeur et faire des calculs
|
||||||
avec ces variables,
|
avec ces variables,
|
||||||
ce qui est bien suffisant pour commencer.
|
ce qui est bien suffisant pour commencer. Démonstration~:
|
||||||
Une rapide démonstration~:
|
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
> a <- 22
|
> a <- 22
|
||||||
> b <- 7
|
> b <- 7
|
||||||
> a ; b
|
> a ; b
|
||||||
[1] 22
|
[1] 22
|
||||||
[1] 7
|
[1] 7
|
||||||
> a / b
|
> a / b
|
||||||
[1] 3.142857
|
[1] 3.142857
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
Les choses semblent simples, nous avons approximé $\pi$.
|
Les choses semblent simples, nous avons approximé $\pi$.
|
||||||
@ -227,7 +226,6 @@ vers \LaTeX, peut-on faire de la 3D\index{3D}, \dots
|
|||||||
|
|
||||||
hist(datas\$V3, breaks=50)
|
hist(datas\$V3, breaks=50)
|
||||||
|
|
||||||
|
|
||||||
% ======================================================================
|
% ======================================================================
|
||||||
|
|
||||||
\section{Interface avec l'OS}
|
\section{Interface avec l'OS}
|
||||||
|
@ -1,71 +1,7 @@
|
|||||||
\chapter{Graphisme}
|
\chapter{Graphisme}
|
||||||
\label{chap:graphisme}
|
|
||||||
|
|
||||||
Voici quelques notes en vrac sur divers logiciels
|
Voici quelques notes en vrac sur divers logiciels qui permettent
|
||||||
ou bibliothèques de fonctions qui permettent
|
de faire des dessins et des images.\dots
|
||||||
de faire des dessins et des images\dots
|
|
||||||
|
|
||||||
Nous verrons ici (dans le désordre) SDL, Povray, Flydraw, Fortran,
|
|
||||||
et peut-être d'autres dans un avenir incertain.
|
|
||||||
Mais il en existe d'autres~:
|
|
||||||
Gnuplot (page \pageref{chap:gnuplot}),
|
|
||||||
\texttt{gif89a} (page \pageref{chap:gif89a}),
|
|
||||||
le dessin (page \pageref{chap:dessin}),
|
|
||||||
les images (page \pageref{chap:image}) et
|
|
||||||
les photos (page \pageref{chap:photos})\dots
|
|
||||||
|
|
||||||
Le sujet est vaste, en fait.
|
|
||||||
|
|
||||||
% ------------------------------------------------
|
|
||||||
% nouveau : Tue Sep 3 11:14:13 UTC 2024
|
|
||||||
|
|
||||||
\section{SDL2} \index{SDL} \label{sdl}
|
|
||||||
|
|
||||||
\begin{quote}
|
|
||||||
Simple DirectMedia Layer est une bibliothèque de développement multiplateforme conçue pour fournir un accès de bas niveau à l'audio, au clavier, à la souris,
|
|
||||||
aux joysticks et à la vidéo (via OpenGL/Direct3D/Metal/Vulkan).
|
|
||||||
\end{quote}
|
|
||||||
|
|
||||||
\textbf{Attention}, à l'heure\footnote{Wed Sep 4 00:40:42 UTC 2024} qu'il est,
|
|
||||||
j'utilise une version assez ancienne\footnote{Mais je vais me soigner\dots},
|
|
||||||
donc
|
|
||||||
ce que vous allez lire à propos de SDL doit être pris avec des pincettes.
|
|
||||||
D'autre part, la version \textbf{3} est sortie depuis un certain temps,
|
|
||||||
mais beaucoup de logiciels n'ont pas encore fait la transition.
|
|
||||||
Nous allons rester pour le moment avec la version 2.
|
|
||||||
|
|
||||||
\subsection{Afficher la version}
|
|
||||||
|
|
||||||
Et puisque on parle de version, ils ont pris une approche vraiment
|
|
||||||
interessante (dont je devrais d'ailleurs m'inspirer) dans le cas de
|
|
||||||
l'édition de lien dynamique.
|
|
||||||
|
|
||||||
\begin{verbatim}
|
|
||||||
SDL_version compiled;
|
|
||||||
SDL_version linked;
|
|
||||||
SDL_VERSION(&compiled);
|
|
||||||
SDL_GetVersion(&linked);
|
|
||||||
printf("We compiled against SDL version %d.%d.%d ...\n",
|
|
||||||
compiled.major, compiled.minor, compiled.patch);
|
|
||||||
printf("But we linked against SDL version %d.%d.%d.\n",
|
|
||||||
linked.major, linked.minor, linked.patch);
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% ------------------------------------------------
|
|
||||||
|
|
||||||
\subsection{Mon premier "bug"}
|
|
||||||
|
|
||||||
C'est en essayant quelques fonctions de la SDL dans le but de faire
|
|
||||||
un dégradé\footnote{On a toujours besoin de dégrader...} de couleurs
|
|
||||||
que je suis tombé sur une anomalie que je n'arrive pas (encore)
|
|
||||||
a m'expliquer.
|
|
||||||
|
|
||||||
\lstinputlisting[language=c]{code/SDL2/strangebug.c}
|
|
||||||
|
|
||||||
Mias c'est peut-être ma totale méconnaissance du sujet qui m'a
|
|
||||||
fait faire une bêtise àlc\dots
|
|
||||||
|
|
||||||
% ------------------------------------------------
|
% ------------------------------------------------
|
||||||
|
|
||||||
@ -270,7 +206,7 @@ material {
|
|||||||
|
|
||||||
\section{Avec Fortran}
|
\section{Avec Fortran}
|
||||||
|
|
||||||
plplot\index{plplot} est une des pistes à explorer.
|
plplot\index{plplot} est la piste à explorer.
|
||||||
|
|
||||||
|
|
||||||
% ------------------------------------------------
|
% ------------------------------------------------
|
||||||
|
@ -9,12 +9,9 @@ par Aho, Kernighan, and Weinberger%
|
|||||||
\footnote{The AWK Programming Language, Alfred V. Aho,
|
\footnote{The AWK Programming Language, Alfred V. Aho,
|
||||||
Brian W. Kernighan, Peter J. Weinberger, Addison-Wesley, 1988.
|
Brian W. Kernighan, Peter J. Weinberger, Addison-Wesley, 1988.
|
||||||
ISBN 0-201-07981-X. }.
|
ISBN 0-201-07981-X. }.
|
||||||
Son originalité vient du fait qu'il a été conçu principalement
|
|
||||||
pour traiter ligne par ligne des fichiers tabulés.
|
|
||||||
C'est son domaine de prédilection, autant en profiter.
|
|
||||||
|
|
||||||
Quelques \textsl{oneliners} de bon aloi pour vous donner
|
Quelques \textsl{oneliners} de bon aloi pour vous donner
|
||||||
une idée des possibilités du langage\dots
|
une idée du langage\dots
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
cat { print $0 } or just 1
|
cat { print $0 } or just 1
|
||||||
@ -35,17 +32,15 @@ on va procéder en quelque sorte « demi-dalle par demi-dalle ».
|
|||||||
\subsection{Un exemple simple}
|
\subsection{Un exemple simple}
|
||||||
|
|
||||||
À partir d'un jeu de données structurées, nous allons générer un
|
À partir d'un jeu de données structurées, nous allons générer un
|
||||||
fichier \texttt{.inc} contenant la description en
|
fichier \texttt{.inc} contenant un objet pour Povray\index{Povray}.
|
||||||
SDL\index{SDL}\footnote{SDL: Scene Description Language}
|
|
||||||
d'un objet pour Povray\index{Povray}.
|
|
||||||
Un cas d'école : un élément par ligne, les valeurs sont séparées par
|
Un cas d'école : un élément par ligne, les valeurs sont séparées par
|
||||||
des espaces et/ou des tabulations.
|
des espaces.
|
||||||
|
|
||||||
\lstinputlisting[]{code/awk/dataset}
|
\lstinputlisting[]{code/awk/dataset}
|
||||||
|
|
||||||
Ces données sont les coordonnées \textsc{x,y,z} et le rayon d'une
|
Ces données sont les coordonnées \textsc{x,y,z} et le rayon d'une
|
||||||
petite collection de bubulles. Pratiquement, une représentation
|
petite collection de bubulles. Pratiquement, une représentation
|
||||||
sommaire d'une sphère de povray\footnote{SDL keyword: \texttt{sphere}}.
|
sommaire d'une sphère de povray\footnote{SDL keyword: \texttt{Sphere}}.
|
||||||
|
|
||||||
Le fichier à générer est en trois partie : l'en-tête, la liste
|
Le fichier à générer est en trois partie : l'en-tête, la liste
|
||||||
des bubulles\index{bubulle} et l'en-pied, ce qui est bien raccord
|
des bubulles\index{bubulle} et l'en-pied, ce qui est bien raccord
|
||||||
@ -54,45 +49,7 @@ le voir ici-même~:
|
|||||||
|
|
||||||
\lstinputlisting[]{code/awk/mkunion.awk}
|
\lstinputlisting[]{code/awk/mkunion.awk}
|
||||||
|
|
||||||
La première ligne est pour le traditionnel
|
|
||||||
\textsl{shebang}\index{shebang},
|
|
||||||
avec l'option \texttt{-f} pour que le contenu du script soit lu
|
|
||||||
par l'interpréteur Awk dès son lancement.
|
|
||||||
Ensuite, nous trouvons trois blocs délimités par des accolades,
|
|
||||||
deux d'entre eux étant précédés d'une « instruction ».
|
|
||||||
|
|
||||||
Le premier bloc, avec le mot-clef \textsc{BEGIN}, est exécuté
|
|
||||||
avant la lecture de la première ligne des données en entrée.
|
|
||||||
Nous l'utilisons pour créer l'en-tête d'un descripteur
|
|
||||||
d'objet pour Povray.
|
|
||||||
|
|
||||||
Le second bloc (sans label) est exécuté pour chaque ligne lue.
|
|
||||||
Et c'est ici que nous trouverons la magie.
|
|
||||||
|
|
||||||
Et le troisième bloc (\textsc{END}) sera exécuté à la fin, après
|
|
||||||
la lecture et le traitement du dernier enregistrement,
|
|
||||||
qui sera dans notre cas la dernière ligne.
|
|
||||||
|
|
||||||
Et à l'exécution~:
|
|
||||||
|
|
||||||
\begin{verbatim}
|
|
||||||
tth@redlady:~/Devel/TetaTricks/code/awk$ ./mkunion.awk < dataset
|
|
||||||
#declare Bubules = object
|
|
||||||
{
|
|
||||||
union {
|
|
||||||
sphere { <17.000000, 9.000000, 4.000000>, 1.500000 }
|
|
||||||
sphere { <11.000000, 0.800000, 2.300000>, 0.989000 }
|
|
||||||
sphere { <0.000000, 0.000000, 0.000000>, 1.000000 }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
|
|
||||||
% XXX to be continued XXX
|
% XXX to be continued XXX
|
||||||
|
|
||||||
% ===============================================================
|
% ===============================================================
|
||||||
\subsection{Définir une fonction}
|
|
||||||
|
|
||||||
% ===============================================================
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,18 +1,15 @@
|
|||||||
#!/usr/bin/awk -f
|
#!/usr/bin/awk -f
|
||||||
|
|
||||||
# create the sdl object: an union of sphere
|
|
||||||
BEGIN {
|
BEGIN {
|
||||||
print "#declare Bubules = object"
|
print "#declare Bubules = object"
|
||||||
print "{ \nunion { "
|
print "{ \nunion { "
|
||||||
}
|
}
|
||||||
|
|
||||||
# active portion of the code
|
|
||||||
{
|
{
|
||||||
printf(" sphere { <%f, %f, %f>, %f }\n", \
|
printf(" sphere { <%f, %f, %f>, %f }\n", \
|
||||||
$1, $2, $3, $4 )
|
$1, $2, $3, $4 )
|
||||||
}
|
}
|
||||||
|
|
||||||
# closing sdl structure
|
|
||||||
END {
|
END {
|
||||||
print " }\n}\n"
|
|
||||||
}
|
}
|
||||||
|
1
code/fortran/.gitignore
vendored
1
code/fortran/.gitignore
vendored
@ -1,7 +1,6 @@
|
|||||||
|
|
||||||
plplotting
|
plplotting
|
||||||
dessiner
|
dessiner
|
||||||
printty
|
|
||||||
|
|
||||||
*.png
|
*.png
|
||||||
*.gif
|
*.gif
|
||||||
|
@ -1,14 +1,6 @@
|
|||||||
|
|
||||||
INCS = -I/usr/include/plplot -I/usr/lib/x86_64-linux-gnu/fortran/modules/plplot
|
INCS = -I/usr/include/plplot -I/usr/lib/x86_64-linux-gnu/fortran/modules/plplot
|
||||||
|
|
||||||
# sinple examples
|
|
||||||
|
|
||||||
printty: printty.f90 Makefile
|
|
||||||
gfortran -g $< $(INCS) -o $@
|
|
||||||
|
|
||||||
|
|
||||||
# more complex garbage
|
|
||||||
|
|
||||||
plplotting: plplotting.f90 Makefile
|
plplotting: plplotting.f90 Makefile
|
||||||
gfortran -g $< $(INCS) -lplplotfortran -o $@
|
gfortran -g $< $(INCS) -lplplotfortran -o $@
|
||||||
|
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
! new: Sun Sep 15 05:04:37 UTC 2024
|
|
||||||
program hello
|
|
||||||
implicit none
|
|
||||||
|
|
||||||
print *, "This is the 'printty' program"
|
|
||||||
|
|
||||||
end
|
|
Loading…
Reference in New Issue
Block a user