TetaTricks/chap/graphisme.tex
2021-10-30 15:54:36 +02:00

126 lines
3.2 KiB
TeX

\chapter{Graphisme}
Quelques notes en vrac sur divers logiciels\dots
% ------------------------------------------------
\section{Flydraw}\index{Flydraw}
Comment faire des dessins en écrivant des lignes de codes ?
\begin{quote}
flydraw is a drawing tool based on an interpreter which parses a
language featuring rich graphic primitives; it uses libgd to output
GIF, JPEG, or PNG\index{PNG} files.
\end{quote}
\lstinputlisting{code/dessiner.fly}
Pour le moment, les résultats ne sont pas encourageants~:
\begin{verbatim}
tth@fubar:~/Documents/TetaTricks/code$ flydraw < dessiner.fly
bad_parms -100000
tth@fubar:~/Documents/TetaTricks/code$
\end{verbatim}
Mais en s'obstinant un peu au \textsl{cargocult}, il
s'avère que la documentation et le code semble ne sont
pas d'accord. Et les messages d'erreur trop
cryptiques pour moi. Donc, on y arrive.
\begin{figure}[h]
\begin{center}
\includegraphics[scale=0.75]{code/flydraw}
\caption{Flydraw}
\end{center}
\end{figure}
Ceci dit, une lecture attentive du code source\footnote{UTSL} permettra
de contourner ces petits désagréments, et de rédiger quelques exemples
d'utilisation amusants.
% package source
% http://deb.debian.org/debian/pool/main/w/wims/wims_4.17b+svn13454~dfsg1.orig.tar.gz
%====================================================================
\section{Povray}\index{POVray}
\textbf{Persistence Of Vision} est un logiciel de raytracing qui
existe depuis plus de trente ans. C'est un lointain descendant
de DKBtrace.
\subsection{Caméra}
Vous avez des problèmes pour caler les mouvement de la caméra ?
Vous avez deux trajectoires (mal) calculées pour la
\texttt{location} et le \texttt{look\_at}, et rien ne tombe
en face de l'objectif ? Voici une approche de solution.
La première étape est l'enregistrerement des paramètres de la caméra
lors du calcul de la séquence~:
\begin{verbatim}
#if (0 = clock)
#fopen CL "cam.log" create
#else
#fopen CL "cam.log" append
#end
#write (CL, clock, " ", CamX, " ", CamY, " ", CamZ,
" ", LatX, " ", LatY, " ", LatZ,"\n")
#fclose CL
\end{verbatim}
Et la seconde, l'exploitation, ou plutôt la visualisation
des données~:
\begin{verbatim}
#!/bin/bash
FILE="cam.log"
TMPF="/dev/shm/cam.data"
IMAGE="graphe.png"
tail -360 ${FILE} | sort -n > ${TMPF}
gnuplot << __EOC__
set term png size 720,720
set output "${IMAGE}"
set ytics 2
set xtics 2
set grid front
set title "Rush Camera"
plot "${TMPF}" using 2:4 title "Cam", \
"${TMPF}" using 5:7 title "Lat" with dots
__EOC__
display "${IMAGE}" &
\end{verbatim}
Dans ce cas, il s'agit d'une animation de 360 images, ce qui explique
la commande\texttt{tail} au début du script. Ensuite les deux clauses
\textsl{using 2:4 / 5:7} permettent de sélectionner les deux
coordonnées X et Z, dans le repère POVray, qui n'est pas le même que
celui de Gnuplot.
% ------------------------------------------------
\subsection{Trucs à voir}
\begin{verbatim}
#declare VIRGINIA =
transform{
matrix < 1, 1, 0,
0, 1, 0,
0, 0, 1,
0, 0, 0 >
}
box{0,1
transform{VIRGINIA}
}
\end{verbatim}
% ------------------------------------------------
% ------------------------------------------------