\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} %==================================================================== \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} % ------------------------------------------------ % ------------------------------------------------