commit 32612e6c65e67f33436e6178c1c18a51dd92e5f0
parent eaabe98257aa18331c0c3880a8909e3e0c2dcf7b
Author: gduperon <gduperon@5d9ba3ac-444b-4713-9fb3-0b58e79229a2>
Date: Sun, 11 Apr 2010 18:03:55 +0000
Affichage de blocs dataflow avec LaTeX
git-svn-id: https://projetud.info-ufr.univ-montp2.fr/svn/flin607-2009-gduperon@4 5d9ba3ac-444b-4713-9fb3-0b58e79229a2
Diffstat:
2 files changed, 28 insertions(+), 85 deletions(-)
diff --git a/rapport/rapport.pdf b/rapport/rapport.pdf
Binary files differ.
diff --git a/rapport/rapport.tex b/rapport/rapport.tex
@@ -7,7 +7,7 @@
\usepackage{ifthen}
\usepackage{tikz}
-\usetikzlibrary{matrix,fit}
+\usetikzlibrary{matrix,fit,calc}
\usepackage{rapport}
@@ -27,90 +27,33 @@ Le but de ce projet est de mettre au point un langage de programmation utilisant
Examinons un programme simple exprimé dans le paradigme du dataflow~:
-\tikzset{
- bloc/.style={
- rectangle,
- rounded corners,
- draw=black,
- very thick,
- },
- bloc-label/.style={
- bloc-label-pos,
- },
- bloc-label-pos/.style={
- color=blue,
- inner sep=0,
- },
- ports/.style={
- },
- in-ports/.style={
- ports,
- anchor=east,
- },
- out-ports/.style={
- ports,
- anchor=west,
- },
- dot/.style={
- coordinate,
- circle,
- inner sep=0pt,
- minimum size=2pt,
- fill=black,
- },
- port-dot/.style={
- dot,
- },
- port-label/.style={
- port-label-pos,
- },
- port-label-pos/.style={
- color=black!66!white,
- },
- in-port-dot/.style={
- port-dot,
- },
- in-port-label/.style={
- port-label,
- },
- in-port-label-pos/.style={
- port-label-pos,
- },
- out-port-dot/.style={
- port-dot,
- },
- out-port-label/.style={
- port-label,
- },
- out-port-label-pos/.style={
- port-label-pos,
- },
-}
-\shorthandoff{:}
-\begin{tikzpicture}
- \node[bloc-label] (+1) {$+$};
- \matrix[in-ports] at (+1.west) (+1In) {
- \node[in-port-label,in-port-dot] (+1A) [label=right:$A$] {};\\
- \node[in-port-label,in-port-dot] (+1B) [label=right:$B$] {};\\
- \node[in-port-label,in-port-dot] (+1C) [label=right:$C$] {};\\
- };
- \matrix[out-ports] at (+1.east) (+1Out) {
- \node[out-port-label,out-port-dot] (+1A) [label=left:$D$] {};\\
- \node[out-port-label,out-port-dot] (+1B) [label=left:$E$] {};\\
- };
- \node[bloc, fit = (+1) (+1In) (+1Out)] {};
-\end{tikzpicture}
-\shorthandon{:}
-
-\begin{tikzpicture}
- \bloc[t]{b1/+}{{a}{b}{c}}{{d}{e}}
- \tikzset{b2/.style={right of=b1-out-d,matrix anchor=b2-in-x.west}}
- \bloc[t]{b2/\frac{x\times y}{z}}{{x}{y}{z}}{{t}}
- \draw (b1-out-d) -- (b2-in-x);
- \draw (b1-out-e) -- (b2-in-y);
- \draw (b1-out-e) ++(0.5,0) node[dot] {} |- (b2-in-z);
-\end{tikzpicture}
-
+\begin{figure}[h]
+ \centering
+ \begin{tikzpicture}
+ \bloc[t]{b1/+}{{a}{b}{c}}{{d}{e}}
+ \tikzset{b2/.style={right of=b1-out-d,matrix anchor=b2-in-x.center}}
+ \bloc[t]{b2/\frac{x\times y}{z}}{{x}{y}{z}}{{t}}
+ \draw (b1-out-d) -- (b2-in-x);
+ \draw (b1-out-e) -- (b2-in-y);
+ \draw ($ .5*(b1-out-e)+.5*(intersection of b1-out-e--b2-in-y and b2-in-y--b2-in-z) $) node[dot] {} |- (b2-in-z);
+
+ \tikzset{e1/.style={left of=b1-in-a,matrix anchor=e1-out-val.center}}
+ \bloc[t]{e1/1}{}{{val/}}
+ \draw (e1-out-val) -- (b1-in-a);
+
+ \tikzset{e2/.style={left of=b1-in-b,matrix anchor=e2-out-val.center}}
+ \bloc[t]{e2/2}{}{{val/}}
+ \draw (e2-out-val) -- (b1-in-b);
+
+ \tikzset{e3/.style={left of=b1-in-c,matrix anchor=e3-out-val.center}}
+ \bloc[t]{e3/3}{}{{val/}}
+ \draw (e3-out-val) -- (b1-in-c);
+
+ \draw[thick,->] (b2-out-t) -- ++(1,0);
+ \end{tikzpicture}
+ \caption{Un programme simple en dataflow.}
+\label{fig:simple-dataflow}
+\end{figure}
\end{document}