Académique Documents
Professionnel Documents
Culture Documents
pour l'impatient
Gerard Tisseau et Jacques Duma
in
ss
De
X
LATE
er
ceva
vec
a
t
Fa i
ik Z
T
t
Xe
TE
A
L
Jacques Duma
3 juillet 2015
ruo
limpatient
\def\arete{3}
\def\epaisseur{5}
Z
k
i
T
\def\rayon{2}
\newcommand{\ruban}{(0,0)
++(0:0.57735*\arete-0.57735*\epaisseur+2*\rayon)
++(-30:\epaisseur-1.73205*\rayon)
arc (60:0:\rayon)
-- ++(90:\epaisseur)
arc (0:60:\rayon)
-- ++(150:\arete)
arc (60:120:\rayon) -- ++(210:\epaisseur)
arc (120:60:\rayon) -- cycle}
\begin{tikzpicture}[very thick,top color=white,bottom color=gray]
\shadedraw \ruban;
\shadedraw [rotate=120] \ruban;
\shadedraw [rotate=-120] \ruban;
\draw (-60:4) node[scale=5,rotate=30]{Ti{\color{orange}\textit{k}}Z};
\draw (180:4) node[scale=3,rotate=-90]{limpatient};
\clip (0,-6) rectangle (6,6); % pour croiser
\shadedraw \ruban;
\draw (60:4) node [gray,xscale=-3,yscale=3,rotate=30]{pour};
\end{tikzpicture}
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1 Premires figures
1.1 Utilisation de Tik Z dans LATEX . . . . . . . . . . . . . . . . . .
1.1.1 Tik Z est un package : \usepackage{tikz} . . . . . . .
1.1.2 Insrer une figure Tik Z : \begin{tikzpicture} . . . .
1.2 Le reprage des points . . . . . . . . . . . . . . . . . . . . . . .
1.2.1 Coordonnes cartsiennes : (x,y) . . . . . . . . . . . . .
1.2.2 Coordonnes polaires : (a:r) . . . . . . . . . . . . . . .
1.2.3 chelle : [scale=k] . . . . . . . . . . . . . . . . . . . .
1.3 Exemple : tracer un segment ou un cercle . . . . . . . . . . . .
1.3.1 nonc : deux segments, un cercle . . . . . . . . . . . .
1.3.2 Solution la main . . . . . . . . . . . . . . . . . . . . .
1.3.3 Solution Tik Z : (a,b) -- (c,d) et (a,b) circle (r)
1.3.4 crire des textes : (x,y) node [position] {texte} .
1.3.5 Arc de cercle : (x,y) arc (a:b:r) . . . . . . . . . . .
1.3.6 Annotations : angle droit, segments gaux . . . . . . . .
1.4 Figure gomtrique : mthodes de base . . . . . . . . . . . . . .
1.4.1 Problme principal : calculer les coordonnes . . . . . .
1.4.2 Exemple : triangle de cts 3, 4 et 5 . . . . . . . . . . .
1.4.3 Prparer la figure avec GeoGebra . . . . . . . . . . . . .
1.4.4 Faire engendrer le code Tik Z par GeoGebra . . . . . . .
1.5 Exercices : figures gomtriques . . . . . . . . . . . . . . . . . .
1.5.1 Thorme de Thals . . . . . . . . . . . . . . . . . . . .
1.5.2 Paralllogramme . . . . . . . . . . . . . . . . . . . . . .
1.5.3 Losange . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.4 Centre de gravit . . . . . . . . . . . . . . . . . . . . . .
1.5.5 Cercle circonscrit . . . . . . . . . . . . . . . . . . . . . .
1.5.6 Orthocentre . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.7 Centre du cercle inscrit . . . . . . . . . . . . . . . . . .
1.6 Rsum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9
9
9
9
9
9
10
10
10
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
11
11
12
13
13
13
14
14
14
14
15
15
16
17
19
19
19
21
22
22
23
23
23
24
24
25
25
26
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
27
27
27
28
29
29
30
30
32
32
32
32
33
33
34
34
35
36
36
36
37
38
38
38
39
39
39
39
40
3 Courbes
3.1 Tracer une courbe : plot (...) . . . . . . . . . . . . . . . . .
3.1.1 Domaine : [domain=a:b] . . . . . . . . . . . . . . . . .
Le problme de babel franais et de : . . . . . . . .
Dsactiver : avec \shorthandoff{:} . . . . . . . . .
Introduire une autre option [domaine={a}{b}] . . . . .
Utiliser le package microtype . . . . . . . . . . . . . .
Exemples de domaines . . . . . . . . . . . . . . . . . . .
3.1.2 Formules mathmatiques disponibles . . . . . . . . . . .
Oprations . . . . . . . . . . . . . . . . . . . . . . . . .
Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . .
Fonctions trigonomtriques . . . . . . . . . . . . . . . .
Nombres alatoires . . . . . . . . . . . . . . . . . . . . .
Oprations boolennes . . . . . . . . . . . . . . . . . . .
3.2 Aspect du graphe . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 Nombre de points : samples . . . . . . . . . . . . . . . .
3.2.2 Lissage : smooth, tension . . . . . . . . . . . . . . . .
3.2.3 Discontinuits : on peut sparer les intervalles . . . . . .
3.2.4 Grandes valeurs : scale, \clip . . . . . . . . . . . . .
3.3 Rgions limites par des courbes . . . . . . . . . . . . . . . . .
3.3.1 Une courbe et des segments : cycle, \fill, \filldraw
3.3.2 Rgion entre deux courbes . . . . . . . . . . . . . . . . .
3.3.3 Rgion non convexe : interior rules . . . . . . . . . . . .
3.4 Complments techniques . . . . . . . . . . . . . . . . . . . . . .
3.4.1 Utilisation de Gnuplot : plot function . . . . . . . . .
3.4.2 Automatisation de certaines configurations . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
41
41
42
42
43
43
43
43
44
44
44
44
45
45
45
45
46
46
47
48
48
49
49
50
50
51
3.6
Exercices . . . . . . . . . . . . . . . . . . . . . .
3.5.1 Ellipse. Angles avec circle et \clip . . .
3.5.2 ab = ba . xscale, yscale . . . . . . . . .
3.5.3 Fonction priodique : \foreach . . . . . .
3.5.4 Fonctions rciproques, aires : pattern . .
3.5.5 Lemniscate de Gerono. \scope, xshift,
Rsum . . . . . . . . . . . . . . . . . . . . . . .
5
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
\filldraw
. . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
52
52
52
53
54
55
56
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
59
59
59
60
60
60
61
61
62
62
63
64
64
64
64
5 Reprsentation de donnes
5.1 Notions de base . . . . . . . . . . . . . . . . . . . . . . . .
5.1.1 Diagramme deectifs : plot coordinates . . . .
5.1.2 Amliorer la lisibilit : grid, node, \foreach . . .
5.1.3 Marquer les points, tiqueter : mark, node, rotate
5.1.4 Diagramme barres : xcomb, ycomb, polar comb
5.1.5 Histogramme : xcomb, ycomb, line width . . . .
5.1.6 Achage des donnes dun fichier : plot file . .
5.2 Diagramme barres horizontales . . . . . . . . . . . . . .
5.2.1 Le bl dans le monde : utilisation dun tableur . .
5.2.2 Barres horizontales : plot file, xcomb . . . . . .
5.2.3 Installation dune grille : grid, xstep, ystep . . .
5.2.4 tiquetage du repre : \foreach, node . . . . . .
5.2.5 Deux sries plus une lgende : plot, shift, node
5.3 Courbe des variations de donnes . . . . . . . . . . . . . .
5.3.1 Production annuelle de riz : pr-traitement . . . .
5.3.2 Courbe des variations : plot file . . . . . . . . .
5.3.3 Quadrillage : grid, step . . . . . . . . . . . . . .
5.3.4 Annotations, dcorations : \foreach, node, mark
5.4 Diagramme secteurs . . . . . . . . . . . . . . . . . . . .
5.4.1 Rpartition par catgories socioprofessionnelles . .
5.4.2 Calcul des angles : pr-traitement avec un tableur
5.4.3 Dessiner les secteurs : \draw, arc, cycle, fill, $
5.4.4 Diagramme complet : \foreach . . . . . . . . . .
5.5 Rsum . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
65
65
65
66
67
68
69
69
70
70
71
73
73
74
75
75
76
77
78
79
79
79
80
81
82
6 Graphes : Introduction
6.1 Notions de base . . . . . . . . . . . . . . . . . . . . . .
6.1.1 Nuds et Arcs : \draw, --, node, et \node . .
6.1.2 Chemin annot : \draw avec opration node .
6.1.3 Graphe : \node puis \draw avec nom de nud
6.2 Styles des nuds et des arcs . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
83
83
83
84
84
84
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
84
86
86
87
88
89
90
90
90
91
91
91
93
94
95
95
95
96
96
97
98
98
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
99
99
99
99
102
103
103
103
104
106
107
107
107
108
109
109
110
111
112
113
114
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
115
115
116
116
118
120
120
121
121
121
122
6.3
6.4
6.5
7 Graphes : Exemples
7.1 Graphe dune relation . . . . . . . . . . . . . . . . . . . . . .
7.1.1 Relations entre quadrilatres . . . . . . . . . . . . . .
7.1.2 Des nuds et des flches : node et -> . . . . . . . . .
7.1.3 Graphe final : courbure bend, ancrage P.east . . . .
7.2 Organigramme informatique . . . . . . . . . . . . . . . . . . .
7.2.1 Somme des N premiers nombres entiers . . . . . . . .
7.2.2 Style des nuds : draw, ellipse, fill, text . . . . .
7.2.3 Forme des flches : >=, rounded corners, |- . . . . .
7.2.4 Organigramme final . . . . . . . . . . . . . . . . . . .
7.3 Diagrammes syntaxiques . . . . . . . . . . . . . . . . . . . . .
7.3.1 Grammaire des expressions mathmatiques . . . . . .
7.3.2 Alignement des nuds, tiquetage . . . . . . . . . . .
7.3.3 Regroupement de figures : scope et yshift . . . . . .
7.4 Graphe de preuve . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.1 Rsolution dune quation : 2x + 3 = 7 . . . . . . . .
7.4.2 Placement des nuds : \node (a) at (x,y), below
7.4.3 Placement et tiquetage des flches : ->, midway . .
7.4.4 Flches courbes : bend, to . . . . . . . . . . . . . . .
7.4.5 Exercice damlioration . . . . . . . . . . . . . . . . .
7.5 Rsum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2.4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
123
124
125
126
126
127
127
127
129
130
130
130
9 Complments techniques
9.1 Transformations avec scope . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.1.1 Translations : xshift, yshift ou shift . . . . . . . . . . . . . . . .
9.1.2 Combinaison de translation et rotation : [xshift=6cm,rotate=45]]
9.1.3 Translation et changement dchelle : [xshift=6cm,scale=0.5] . . .
9.1.4 paisseur des traits : \draw et line width . . . . . . . . . . . . . . .
9.1.5 Taille et inclinaison de textes : transform shape . . . . . . . . . . .
9.1.6 Exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2 Au sujet des arbres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2.1 Dfinition : \node node et child . . . . . . . . . . . . . . . . . . . . .
9.2.2 Espacement des frres : sibling distance . . . . . . . . . . . . . .
9.2.3 Forme globale : level distance et grow . . . . . . . . . . . . . . .
9.2.4 tiquetage des arcs : edge from parent . . . . . . . . . . . . . . . .
9.2.5 Style des arcs : edge from parent path . . . . . . . . . . . . . . . .
9.3 Liaisons entre figures : overlay . . . . . . . . . . . . . . . . . . . . . . . . .
9.3.1 Dfinitions globales des noms : remember picture . . . . . . . . . . .
9.3.2 Dessiner dune figure lautre : overlay . . . . . . . . . . . . . . . .
9.3.3 La page courante est un nud : current page . . . . . . . . . . . . .
9.4 Rsum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
131
131
131
132
133
134
136
137
137
138
139
140
140
141
141
142
142
143
143
A La syntaxe de Tik Z
A.1 Les environnements : {tikzpicture}, {scope} . . . .
A.2 Les commandes . . . . . . . . . . . . . . . . . . . . . .
A.3 Les coordonnes . . . . . . . . . . . . . . . . . . . . .
A.3.1 Forme gnrale : (...) . . . . . . . . . . . . .
A.3.2 Calculs sur les nombres : package pgfmath . . .
A.3.3 Calculs sur les coordonnes : bibliothque calc
A.4 Les oprations de chemin . . . . . . . . . . . . . . . .
A.5 Les options . . . . . . . . . . . . . . . . . . . . . . . .
A.6 Utiliser des commandes LATEX dans Tik Z . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
145
145
145
146
146
146
147
147
148
150
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
151
151
151
151
152
8.3
8.4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
C O trouver de laide ?
153
D Glossaire
155
Avant-propos
Vous avez des documents publier, avec des figures
Vous avez rgulirement des documents publier. Vous avez choisi LATEX pour sa grande qualit
typographique, son ouverture et sa portabilit. Vous souhaiteriez maintenant inclure des figures et
illustrations dans vos documents, mais sans avoir sortir de lenvironnement LATEX, et de manire
pouvoir produire directement des documents au format PDF, qui devient un format dchange
et de publication standard.
10
Par exemple : chelle : [scale=k], tiquetage des arcs : sloped, midway, pos, etc. Dun seul
coup doeil, on devrait pouvoir retrouver une information utile et la situer dans le contexte dun
exemple.
Le site compagnon
Un site Internet, cr par les auteurs, accompagne ce livre. On y trouvera le code de tous les
exemples prsents ici, plus quelques complments.
partir du site, il est aussi possible de contacter les auteurs : Toutes les questions, toutes les
critiques et toutes les suggestions sont les bienvenues.
http://math.et.info.free.fr/TikZ/index.html
La version papier de ce document est en noir et blanc, seule la version PDF disponible sur ce
site est en couleurs.
Remerciements
Merci Emmanuel Collinet pour sa lecture trs attentive de Tik Z pour limpatient et pour
ses nombreuses remarques pertinentes. Ainsi, nous avons pu amliorer la qualit de ce document.
Chapitre 1
Premires figures
1.1
1.1.1
Tik Z tant un package pour LATEX, il sutilise comme tout autre package, en dclarant
\usepackage{tikz} dans le prambule.
Pour savoir quelle est la version de Tik Z dont vous disposez, vous pouvez faire acher le numro
de version par la commande \pgfversion (PGF est le nom du moteur de Tik Z).
Par exemple, ce document a t compos le 3 juillet 2015 avec la version 3.0.0 de Tik Z, mais
la premire version a t rdige en fvrier 2008 avec la version 2.00.
Si vous ne disposez pas de Tik Z ou si vous avez une version plus ancienne que la version 2.00,
le plus simple est sans doute de charger entirement la plus rcente version de la distribution TEX
(Tik Z est fourni avec les principales distributions de TEX).
Dans ce cas il faudra consulter la documentation de lauteur si quelques dirences apparaissent
dans la composition des exemples.
Version la plus rcente de Tik Z & PGF Manual
Le document minimal utilisant Tik Z est donc :
\documentclass{article}
\usepackage{tikz}
\begin{document}
La version de TikZ est : \pgfversion
\end{document}
Les standards sont TeX Live pour les systmes Unix (y compris MacOS X, o elle est prsente
dans MacTeX) et MiKTeX pour les systmes Windows. Ces distributions TEX sont assez souvent
mises jour (une fois par an environ).
La version 2 de Tik Z est incluse dans la distribution TeX Live version 10.2 de 2008.
Pour Windows : http://miktex.org
Pour Mac : http://www.tug.org/mactex/
Pour Unix, Linux : http://www.tug.org/texlive/
ventuellement, vous pouvez obtenir directement le package pgf et lui seul, mais il faut une
certaine expertise pour linstaller correctement la main . Cependant MikTeX dispose dun
utilitaire pour cela, accessible par un menu, et il existe une commande tlmgr sous Unix (TeX Live
manager).
Package pgf : http://sourceforge.net/projects/pgf/
ou http://www.ctan.org/tex-archive/graphics/pgf/
Comme dans toute utilisation de package, il faut tre prudent : il peut exister des conflits avec
dautres packages. Le plus notable pour Tik Z est le conflit avec xcolor, car Tik Z redfinit certaines
des fonctions de xcolor. Cependant les deux packages peuvent rester compatibles si on dclare
xcolor avant tikz.
11
12
1.1.2
Llment de base que permet de crer Tik Z dans un document LATEX est une figure (picture).
Elle se matrialise dans le document LATEX par un environnement tikzpicture :
\begin{tikzpicture}
...
\end{tikzpicture}
lintrieur de cet environnement se trouve une zone de texte dans laquelle on crit suivant la
syntaxe spciale de Tik Z. Voici par exemple comment on trace un cercle de rayon 1 dont le centre
a pour coordonnes cartsiennes (0, 0) (dans le systme de reprage de Tik Z) :
\begin{tikzpicture}
\draw (0,0) circle (1) ;
\end{tikzpicture}
Ce qui donne :
La syntaxe \draw (0,0) circle (1) ; est analyse par Tik Z suivant ses propres conventions,
qui ne sont pas celles du LATEX standard, et que nous dtaillerons par la suite.
Comment une figure Tik Z est-elle place dans le document final ? Tik Z calcule dabord lencombrement total de la figure et fait en sorte que LATEX considre cette figure comme un bloc
rectangulaire. LATEX insre alors ce bloc dans le flot normal, suivant les rgles applicables aux
blocs de type mbox.
Dans lexemple qui suit, on a insr une figure Tik Z dans du texte et on la encadre avec
\fbox :
Voici une premire ligne ...
... et de rayon 1
\fbox{
\begin{tikzpicture}
...
\end{tikzpicture}
}
insr dans une ligne ...
Voici une premire ligne de texte LATEX. pour montrer linsertion dune figure. Voici le cercle de
1.2
1.2.1
13
Dans le systme par dfaut, les points sont reprs laide de deux axes perpendiculaires :
laxe des abscisses, horizontal et dirig vers la droite et laxe des ordonnes, vertical et dirig vers
le haut. Les vecteurs de base ont exactement pour longueur 1 cm (et quand on imprime, cest trs
prcisment 1 cm). La position dun point est repre par un couple de nombres (x,y)
(x, y)
y
1
On peut se demander o est place lorigine dans la figure engendre. En fait, elle na pas de
position prdfinie. La figure occupe seulement la place minimale pour que tous les lments tracs
explicitement soient visibles. La position de lorigine par rapport la figure dpend donc des points
tracs. Si on trace juste un cercle de centre (2, 0) et de rayon 1, lorigine ne sera pas dans le cadre
de la figure, qui ne montrera que les abscisses x entre 1 et 3 et les ordonnes y entre 1 et 1.
Tik Z possde dautres systmes de reprage que nous verrons au fur et mesure. Signalons
tout de suite les coordonnes polaires (a:r) o a est langle polaire en degrs et r le rayon polaire.
1.2.2
On peut reprer la position dun point M dans un systme de coordonnes polaires, avec la
syntaxe ( : r), o est langle orient (en degrs) entre le vecteur de base des abscisses et le
!
vecteur OM et r est la distance OM .
( : r)
M
14
2
1
(45 : 2.82)
8
45
Dans la version de base, on doit spcifier les coordonnes sous forme numrique approche.
Cependant une extension de Tik Z permet dintroduire quelques calculs formels. Nous verrons cela
dans la suite, mais pour linstant nous utiliserons uniquement les valeurs numriques.
1.2.3
chelle : [scale=k]
Il peut arriver que la figure, telle quelle est dfinie avec les coordonnes, soit trop petite ou trop
grande. On peut alors utiliser loption [scale=k], quon crit juste aprs \begin{tikzpicture}.
Elle signifie que toutes les dimensions seront multiplies par k.
Pour avoir une figure deux fois plus grande, crire
\begin{tikzpicture}[scale=2] ... \end{tikzpicture}
Le point de coordonnes (1,0) sera alors dessin 2 cm de lorigine au lieu de 1 cm.
1.3
1.3.1
Dans un repre orthonormal dunit 1 cm, tracer les deux segments reliant lorigine aux points
units de coordonnes (1, 0) et (0, 1), ainsi que le cercle trigonomtrique.
1.3.2
Solution la main
1.3.3
15
1.3.4
Pour que la figure soit plus parlante, on veut maintenant crire le nom des points ct des
points : O pour lorigine, A pour (1, 0), B pour (0, 1)
B
16
\begin{tikzpicture}
\draw (0,0) -- (1,0) ;
\draw (0,0) -- (0,1) ;
\draw (0,0) circle (1) ;
\draw (0,0) node[below]{$O$} ;
\draw (1,0) node[right]{$A$} ;
\draw (0,1) node[above]{$B$} ;
\end{tikzpicture}
On peut ne pas spcifier du tout de position. Le centre du texte est alors plac au point de
rfrence :
Par exemple, pour placer la lettre O prcisment lorigine, on peut crire :
\draw (0,0) node{$O$};
Les positions possibles sont (avec les significations des mots anglais) :
above, below, right, left,
above left, above right, below left, below right
au-dessus, en-dessous, droite, gauche
au-dessus gauche, au-dessus droite, en-dessous gauche, en-dessous droite
Parfois ces indications qualitatives ne sont pas assez prcises. Le plus simple est souvent alors
de placer le centre du nud explicitement un autre point proche du point principal, en contrlant
exactement les coordonnes. Il y a dautres mthodes, mais elles introduisent de nouveaux concepts
techniques que nous aborderons plus tard.
O
1.3.5
Pour spcifier mathmatiquement un arc de cercle, on peut donner le centre du cercle, son
rayon, langle polaire du point origine et langle polaire du point extrmit (le vecteur de rfrence
!
des angles polaires tant comme dhabitude le vecteur (1, 0), ici OA).
Par exemple, ici, on pourrait dire : tracer larc de cercle de centre (0, 0) et de rayon 1 dont
lorigine a pour angle polaire 0 et donc lextrmit a pour angle polaire 90.
Malheureusement, Tik Z na pas choisi cette faon de sexprimer. Il faut dire quelque chose
comme : tracer larc de cercle qui commence en A, de telle manire que A se trouve sur ce cercle
avec un angle polaire de 0, jusquau point dangle polaire 90 sur le mme cercle, sachant que le
rayon du cercle vaut 1.
\draw (1,0) arc (0:90:1) ;
17
Bien sr, ces informations susent pour retrouver le centre et pour reconstituer la figure, mais
ce nest sans doute pas la convention la plus naturelle possible (sauriez-vous construire gomtriquement le centre ?). Lavantage quon peut lui trouver, cest justement de ne pas avoir prciser
le centre. Mais existe-t-il des cas o on trace un arc de cercle sans avoir aucune ide du centre ?
Une application frquente de cette construction est de marquer un angle sur une figure.
Soit le triangle OAB avec O(0, 0), A(2, 0), B(2, 2). Marquer sur le dessin langle en O.
B
O
\begin{tikzpicture}
\draw (0,0) node[below] {$O$};
\draw (2,0) node[right] {$A$};
\draw (2,2) node[right] {$B$};
\draw (0,0) -- (2,0) ;
\draw (0,0) -- (2,2);
\draw (1,0) arc (0:45:1) ;
\end{tikzpicture}
Et ensuite, on peut utiliser le concept de node pour crire la valeur de langle ct. Il faut
alors placer la bote de texte au bon endroit, prs de larc. Ici on peut utiliser les coordonnes
polaires, puisque langle en O est connu : 45. Le nud est alors plac dans la direction de langle
moiti : 22.5, une distance un peu plus grande que le rayon de larc : 1.3. En fait, on ne peut
indiquer quun nombre entier de degrs, donc on arrondit par exemple 22.
\draw (22:1.3) node {$\dfrac{\pi}{4}$};
1.3.6
Annotons maintenant le triangle avec les signes habituels indiquant que cest un triangle isocle
rectangle.
On marque langle droit avec deux petits segments perpendiculaires, lgalit des cts avec
deux petits segments coupant les cts. Bien que ces signes ne fassent pas vraiment partie de la
figure et quils ne vont pas faire lobjet dune tude gomtrique, il sagit, aprs tout, quand mme,
dlments gomtriques : des segments. On peut les tracer avec les outils vus jusqu maintenant,
mais cela ncessite de calculer les coordonnes de leurs extrmits.
Cela peut paratre inhabituel, car on trace souvent ce genre de signes sans trop y faire attention
et sans avoir rsoudre de nouveaux problmes gomtriques.
Ici les traits de la marque dangle droit sont horizontaux et verticaux, donc il nest pas dicile
dimaginer des coordonnes (leur longueur exacte rsulte dun choix arbitraire, disons 0.3).
Donc les nouveaux points introduire sont (1.7, 0), (1.7, 0.3) et (1.7, 0.3), (2, 0.3)
18
0) -- (1.7,
0.3) -- (2,
0.3) ;
0.3) ;
Les marques de segments gaux peuvent galement tre choisis horizontaux et verticaux, disons
de longueur 0.2
Donc les nouveaux points introduire sont (1.9, 1), (2.1, 1) et (1, 0.1), (1, 0.1).
....
\draw (1.9,1) -- (2.1,1);
\draw (1,-0.1) -- (1,0.1);
Et si on voulait marquer les points avec des points plus gros, comme ?
Eh bien, un gros point de ce type est simplement un caractre LATEX : $\bullet$
Il sut dintroduire un nud (node), centr sur le point (il sut de ne donner aucune option
de position) et dont le contenu est $\bullet$ :
\draw (0,0) node {$\bullet$} ;
\draw (2,0) node {$\bullet$} ;
\draw (0,2) node {$\bullet$} ;
On peut prolonger cette ide : un noeud de texte peut tre rempli avec un symbole LATEX,
et un symbole nest rien dautre aprs tout quun dessin. crire un symbole, cest dessiner, et
LATEX est bien fourni en symboles divers. On peut utiliser cette ide ici pour tracer les petits traits
indiquant lgalit des cts : on peut utiliser les symboles $|$ (barre verticale |), --- (tiret ),
$\backslash$ (barre oblique \), $/$ (barre oblique /), $\times$ (multiplication ).
|
$|$
$\backslash$ \
$\times$
$\times$
1.4
19
Nous venons de voir les lments de base qui constituent une figure gomtrique comme on en
rencontre au collge et au lyce, et comment ils se traduisent en Tik Z :
des segments : (a,b) -- (c,d)
des cercles : (a,b) circle (r)
des arcs de cercle : (a,b) arc (u:v:r)
des annotations de texte : (a,b) node[position] {texte}
Nous allons voir maintenant comment on peut crer de nombreuses figures de gomtrie uniquement
laide de ces lments de base. Autrement dit, vous pouvez tre oprationnels ds maintenant
avec les techniques vues jusquici.
Tik Z propose bien dautres possibilits (son manuel comporte 560 pages), mais il est essentiel
de se familiariser avec les bases pour comprendre lintrt des extensions et savoir quand les utiliser
de manire pertinente. Et encore une fois, les bases peuvent vous sure pour la plupart de vos
figures.
Cela peut paratre surprenant de pouvoir se contenter de ces constructions, mais aprs tout,
si vous observez une figure de gomtrie usuelle, mme complique, vous verrez bien quelle nest
forme que de ces lments, du moins en ce qui concerne sa structure. Les figures usuelles sont bien
de ce type : points, segments, triangles, paralllogrammes, polygones, cercles, droites parallles et
perpendiculaires, etc.
1.4.1
Construire une figure avec les techniques de base seulement suppose que vous devez calculer
dabord par vos propres moyens les coordonnes (cartsiennes ou polaires) de tous les points.
Ce nest pas ce quon fait dhabitude quand on trace une figure la main : on dispose doutils
de dessin (rgle, compas, rapporteur, papier quadrill) et doutils de calcul (calculatrice, logiciel
mathmatique).
La dicult du calcul dpend de la figure que vous avez construire et des contraintes sur cette
figure. Si les positions des points sont imposes par un nonc et si les points ne sont pas placs
de manire pratique pour le dessin, alors il peut y avoir beaucoup de calculs. Mais souvent, vous
avez une certaine marge de manuvre : si votre but est dillustrer une proprit gomtrique, vous
pouvez dcider de placer certains points de telle manire que les calculs soient facilits.
Voici quelques stratgies, qui sont en fait dj bien connues pour les tracs la main :
privilgier les points coordonnes entires
privilgier les directions verticales et horizontales
privilgier les directions dangles polaires simples et connus, ce qui permettra dutiliser plus
facilement les coordonnes polaires
commencer par la fin : si on veut illustrer le cercle circonscrit un triangle, commencer par
placer le cercle
1.4.2
Voici un exemple : tracer un segment [AB] horizontal de longueur 5, puis tracer le triangle
ABC direct tel que BC = 4 et AC = 3.
On choisit des coordonnes simples pour A et B : A(0, 0) et B(5, 0).
Il faut calculer les coordonnes de C, en traduisant AC = 3 et BC = 4, soit x2 + y 2 = 32 ,
(x 5)2 + y 2 = 42 .
9
= 1.8, puis, en
On rsout ensuite le systme par dirence : 10x 25 = 7, soit x =
5
12
remplaant, y =
= 2.4
5
On peut alors crire le code Tik Z, quon peut annoter avec des commentaires LATEXpour plus
de lisibilit :
20
\begin{tikzpicture}
\draw (0,0) -- (5,0);
\draw (0,0) -- (1.8,2.4);
\draw (5,0) -- (1.8,2.4);
\end{tikzpicture}
% AB = 5
% AC = 3
% BC = 4
On peut rajouter des nuds de texte pour montrer les noms Des points :
\draw (0,0) node [below] {$A$}; etc.
C
Et finalement, on peut indiquer les longueurs des cts. Pour cela, il faut trois noeuds de
texte,
5
placs aux alentours des milieux des segments, milieux dont on calcule les coordonnes :
,0 ,
2
17 6
9 6
,
,
,
.
5 5
10 5
Donc, par exemple \draw (3.4,1.2) node [above right] {$4$} ; etc.
C
3
G
I
! 1 1 !
! 1 1 !
!
!
!
On pose CG = CA, CH = CB, puis CI = CG + CH.
2 3
2 4
On trouve G (1.5, 2), H(2.2, 2.1) et I(1.9, 1.7).
Sur le dessin on trace [GI] et [IH] : \draw (1.5,2) -- (2.2,2.1) ; etc.
21
C
3
Il faut quand mme un certain temps pour concevoir tout cela, faire les calculs et raliser la
figure, et cela pour un simple triangle. Le plus long nest dailleurs pas de tracer le triangle, mais
de bien placer les annotations (noms des points, longueurs des cts, marque dangle droit). On
conoit alors que la ralisation dune figure plus complexe peut demander beaucoup de temps et
de calculs.
Une possibilit est alors de les faire excuter dabord par un autre logiciel spcialis en gomtrie
et en mathmatiques. Un exemple dun tel logiciel est GeoGebra. Nous allons voir comment lutiliser
pour prparer cette figure.
1.4.3
C
H
G
D
A
E
F
22
1.4.4
Au lieu de lire les coordonnes et de les utiliser pour crire le code Tik Z, vous pouvez laisser
GeoGebra le faire pour vous ! En eet, depuis la prversion de dveloppement 3.1 de septembre
2008, on trouve un menu "Fichier ! Exporter ! Export PGF/TikZ". Lorsquon demande un
export, on obtient le code dun document LATEX contenant une figure Tik Z. Si votre seul but
est de produire un document avec juste une figure, cela sut. La figure reproduit lidentique
(quasiment) celle que vous avez construite avec GeoGebra, avec la qualit Tik Z. Autrement dit,
dans ce cas, vous navez mme pas apprendre Tik Z !
Il se peut que vous souhaitiez inclure cette figure dans un document LATEX, ce que vous pouvez
faire par copier-coller. Il se peut aussi que vous ne souhaitiez pas conserver tous les lments de la
figure (en particulier ce qui concerne les dclarations des couleurs, la grille, les axes). Il faut alors
analyser prcisment le code produit par GeoGebra pour extraire juste ce qui vous intresse, par
exemple les segments entre les points (il est prfrable de cacher dabord sous GeoGebra tout ce
quon ne souhaite pas voir). En gnral, le code correspondant est identifiable et bien group.
Par exemple, aprs avoir trac un triangle quilatral avec la commande GeoGebra polygone
rgulier , on peut extraire juste les lignes qui tracent le triangle :
\draw [color=zzttqq] (2,1)-- (4,2);
\draw [color=zzttqq] (4,2)-- (2.13,3.23);
\draw [color=zzttqq] (2.13,3.23)-- (2,1);
puis supprimer les indications de couleur. On obtient alors un trac simple :
\begin{tikzpicture}
\draw (2,1)-- (4,2);
\draw (4,2)-- (2.13,3.23);
\draw (2.13,3.23)-- (2,1);
\end{tikzpicture}
1.5
Dans chaque exercice, on demande de raliser la figure spcifie. Toutes ces figures peuvent tre
construites en Tik Z uniquement partir des lments de base : coordonnes, segments, cercles,
arcs, nuds. Pour certaines figures, les coordonnes ont t obtenues laide du logiciel GeoGebra.
Comme lments de solution, nous donnons les coordonnes utilises (il est recommand dutiliser GeoGebra ou au minimum un papier quadrill).
Il est parois tonnant de sapercevoir que, mme pour des figures aussi classiques et relativement
simples, le nombre de points peut tre lev (une vingtaine de points). Cest d en partie aux points
auxiliaires utiliss pour les annotations.
1.5.1
23
Thorme de Thals
Aide :
droites obliques (0,0)--(1,3) et (4,0)--(2,3)
droites parallles (0,1)--(4,1) (0,1.5)--(4,1.5) et
(0,2.5)--(4,2.5)
1.5.2
Paralllogramme
||
Aide :
Centre : $\bullet$ (0,0)
Diagonales : (-2,0)--(2,0) et (1,1)--(-1,-1)
Marques $||$ : ( 1, 0) et (1, 0)
Marques $\backslash$ : ( 0.5, 0.5) et (0.5, 0.5) ;
1.5.3
Losange
Aide :
Losange : (0, 0), (2, 0), (3, 1.73), (1, 1.73)
Diagonales (0,0) -- (3,1.73) ; (1,1.73) -- (2,0)
Marques $/$ : (2, 1.73), (1, 0)
Marques --- : (2.5, 0.87), (0.5, 0.87)
Angle droit : (1.38, 1.07), (1.59, 1.19), (1.7, 0.99)
24
1.5.4
Centre de gravit
3 4
3 1
3 1
A
,
,B
,
,C
,
5 5
2
2
2
2
A
\
\
B
||
||
Aide :
chelle : 2.
Triangle : A(0.6, 0.8), B( 0.87, 0.5), C(0.87, 0.5)
Milieux : (0, 0.5), (0.74, 0.15), ( 0.13, 0.15)
Centre de gravit G(0.2, 0.07)
Marques $\backslash$ : (0.24, 0.47), ( 0.5, 0.18)
Marques $||$ : ( 0.44, 0.5), (0.44, 0.5)
1.5.5
Cercle circonscrit
3 4
3 1
3 1
A
,
,B
,
,C
,
5 5
2
2
2
2
A
\
\
B
||
O
||
Aide :
chelle : 2.
Triangle : A(0.6, 0.8), B( 0.87, 0.5), C(0.87, 0.5)
Milieux : (0, 0.5), (0.74, 0.15), ( 0.13, 0.15)
Cercle : centre O(0, 0), rayon : 1 (tout a pour a !)
Marques $\backslash$ : (0.24, 0.47), ( 0.5, 0.18)
Marques $||$ : ( 0.44, 0.5), (0.44, 0.5)
Angle droit sur [BC] : (0.1, 0.5), (0.1, 0.4), (0, 0.4)
Angle droit sur [AB] : ( 0.08, 0.09), ( 0.02, 0.14), ( 0.07, 0.2)
1.5.6
25
Orthocentre
C
Aide :
Triangle : A(0, 0), B(2, 2), C(3, 2)
Pieds des hauteurs :
sur [AC] : (0.46, 0.31), sur [BC] : (2.35, 0.59), sur [AB] : (0.5, 0.5)
Orthocentre : H(0.8, 0.2)
Angles droits :
sur [AC] : (0.8, 0.53), (1.02, 0.2), (0.68, 0.03)
sur [BC] : (1.96, 0.49), (2.06, 0.1), (2.45, 0.2)
1.5.7
I
A
Aide :
Triangle : A(0, 0), B(4, 0), C(3, 3)
Cercle : centre I(2.54, 1.05), rayon : 1, 05
Points de contact :
sur [AB] : (2.54, 0), sur [AC] : (1.8, 1.8), sur [BC] : (3.54, 1.38)
Marques dangles (en A, langle est simple : 45) :
BAI : (1,0) arc(0:22:1), IAC : (1.11,0.46) arc (23:45:1.2)
Angle droit sur [AB] : (2.34, 0), (2.34, 0.2), (2.54, 0.2)
26
1.6
Rsum
Chapitre 2
2.1
Toutes les figures prcdentes taient construites point par point, trait par trait, et partir de
coordonnes qui devaient toutes tre calcules au pralable. On peut trouver cela un peu fastidieux.
Tik Z fournit direntes facilits pour simplifier les choses. Mais qui dit simplification dit nouveaux outils, nouvelle syntaxe, nouveaux concepts. Ces nouveauts ont un avantage et un inconvnient : lavantage, cest que le code crire sera un peu plus simple ou de plus haut niveau,
linconvnient cest que cela rajoute une charge mentale de mmoire, de comprhension, de dcision. Il faut apprendre et comprendre les nouveauts et il faudra se demander lors de chaque
figure quel va tre le choix de loutil le plus appropri. Ces nouveauts pourront mme embrouiller
rtrospectivement ce quon pensait avoir compris. Donc prudence : il nest pas ncessaire de se
prcipiter sur toutes les nouveauts. Il faut que lacquisition soit progressive.
2.1.1
Pour concevoir et vrifier une figure, il est plus agrable de pouvoir dsigner les points par des
noms plutt que par des coordonnes.
Il y a plusieurs variantes syntaxiques. Nous conseillons la suivante, qui joue le rle de dclaration,
un peu comme dans un texte mathmatique : Soit A le point de coordonnes (1, 0) . Cela scrit
\coordinate (A) at (1,0) ;
\coordinate (nom) at (x,y) ;
Le nom peut tre choisi librement, mais il ne doit pas contenir de signes de ponctuation ou de
symboles spciaux.
Si on reprend la figure du dbut, on peut dclarer les noms des points puis utiliser ensuite ces
noms pour le trac :
\begin{tikzpicture}
\coordinate (O) at (0,0) ;
\coordinate (A) at (1,0) ;
\coordinate (B) at (0,1) ;
\draw (O) -- (A) ;
27
28
2.1.2
Jusqu maintenant, nous avons trac les traits un par un, chacun dans une instruction \draw.
Cest un peu fastidieux quand il faut tracer des successions de traits qui senchanent (des lignes
brises et polygones) car on est oblig dcrire deux fois ou plus les points intermdiaires. Tik Z
introduit un raccourci pour cela : plutt que dcrire
\draw (0,0) -- (1,0) ;
\draw (1,0) -- (1,1) ;
On peut crire en enchanant les traits dans une mme instruction :
\draw (0,0)
-- (1,0) -- (1,1) ;
Cela sappelle un chemin (path). Cette notion est introduite ici propos dune suite de segments, mais elle est beaucoup plus gnrale et forme une des bases de Tik Z.
Syntaxiquement, elle se prsente comme une suite doprations de chemin (path operations).
Ici, il y en a trois : (0,0), qui est une opration de positionnement explicite, puis -- (1,0) et
-- (1,1) , qui sont des oprations de trac de segment.
Ces dernires oprations ont un double rle : un rle de trac dabord, mais aussi un rle
de positionnement implicite aprs le trac. En eet, le long dun chemin, Tik Z maintient une
position courante : cest la position qui rsulte du trac prcdent et qui servira de rfrence
(point de dpart) pour le trac suivant. Dune manire image, cest la position du crayon.
Dans le cas dun segment, cette position implicite est naturelle : aprs linstruction de trac
-- (x,y) , la position courante devient (x, y). Mais il y a dautres instructions pour lesquelles la
convention est moins vidente, ce qui peut tre source de confusions.
Par exemple, aprs le trac dun cercle par circle (r), la position courante devient le centre du
cercle.
Aprs le trac dun arc, la position courante devient lextrmit de larc. Cette dirence entre
arc et cercle explique peut-tre la convention inhabituelle choisie pour dcrire un arc. Un arc peut
tre inclus dans une succession de lignes pour former une ligne continue :
\draw (0,0) -- (1,1) arc (180:0:1) -- (4,0);
(1, 1) 180
(0, 0)
(4, 0)
Les indications donnes en gris ont t rajoutes pour bien montrer linfluence des paramtres,
mais elles ne font pas partie du dessin proprement dit.
Si on remplace larc par un cercle, on obtient :
\draw (0,0) -- (1,1) circle(1) -- (4,0);
29
(1, 1)
(0, 0)
(4, 0)
Aprs le trac du cercle, le crayon est en son centre (1, 1) et on repart de l pour joindre le
point suivant (4, 0).
2.1.3
Il est frquent davoir tracer un rectangle dont les cts sont parallles aux axes. Tik Z fournit
une opration pour cela : rectangle, utilise sous la forme (a,b) rectangle (c,d), o (a, b) et
(c, d) sont deux coins opposs du rectangle.
Exemple : (0,0) rectangle (2,1);
(2,1)
(0,0)
Autre exemple : (0,2) rectangle (2,0);
(0,2)
(2,0)
2.1.4
Le principal intrt de la notion de chemin ne rside pas tellement dans lconomie dcriture
quelle permet (on conomise quelques instructions \draw), mais dans cette possibilit de dfinir
des chemins ferms pour linstruction \fill. Elle a un autre avantage : elle permet de regrouper
en un seul endroit les options graphiques qui sappliquent sur tout le chemin (voir plus loin).
Nous allons voir plus loin comment remplir la figure avec des couleurs et des motifs.
30
2.1.5
Dans ce qui prcde, nous avons vu lopration node, qui permet de placer une bote de texte
une position donne, avec ventuellement une option de positionnement :
\draw (0,0) node[below right] {$O$} node{$\bullet$};
On peut aussi placer un nud pour annoter un trait, et non plus un point : pour cela on
place lopration node aprs lextrmit du trait, avec une option de position relative au trait
(midway, near start, near end). Tik Z comprendra alors grce cette option que le nud se
rapporte au trait plutt quau point.
\draw (0,0) -- (4,0) node[midway] {$M$}
node[near start] {$NS$}
node[near end] {$NE$};
NS
NE
On peut ajouter les options usuelles de placement : above, below, etc. (ici : above), et ajouter
dautres nuds (ici les points qui marquent les positions exactes) :
node[midway,above] {$M$} node[midway] {$\bullet$}
Cela permet par exemple de tracer rapidement le milieu M dun segment.
NS
NE
On peut aussi indiquer que le texte doit suivre lorientation du trait : option sloped
node[midway,above,sloped] {$M$}
M
N
Cette dernire possibilit est pratique pour noter des segments gaux par de petits traits.
Au lieu de tracer ces petits traits explicitement laide de coordonnes, on peut les considrer
comme des nuds associs aux segments (option midway), avec un contenu symbolique comme $|$
(un trait vertical |) et loption sloped pour que le petit trait reste perpendiculaire au segment :
node[midway, sloped]{$|$}
|
|
2.1.6
Il peut tre pratique de dsigner un point non pas par ses coordonnes absolues mais par un
dplacement partir du point courant.
La notation \draw (a,b) -- ++(x,y); est un raccourci qui remplace \draw (a,b) -- (c,d)
par c = a + x et d = b + y.
31
Autrement dit, on joint le point (a, b) au point qui sen dduit par la translation de vecteur
(x, y).
Ainsi, \draw (1,2) -- ++(1,1); quivalent \draw (1,2)--(2,3);
++(x,y)
!
v (x, y)
(a,b)
Ici encore, les annotations en gris ne font pas partie de la figure proprement dite.
Cette opration est intressante pour dcrire un chemin par tapes locales : pour trouver le
trsor, partez du grand chne en (1, 2), puis faites 2 pas vers le nord, puis 3 pas vers lest.
\draw (1,2) -- ++(0,2) -- ++ (3,0);
Cest quivalent \draw (1,2) -- (1,4) -- (4,4);
++(3,0)
(1, 4)
(4, 4)
++(0,2)
(1, 2)
Cela peut tre pratique pour tracer des polygones dont on connat les vecteurs des cts, par
exemple un carr OABC :
\draw (0,0) -- ++(1,1) -- ++(-1,1) --++ (-1,-1) -- cycle;
!
!
!
Les coordonnes des vecteurs sont : OA(1, 1), AB( 1, 1), BC( 1, 1)
B
O
Cette dernire technique est particulirement intressante en utilisant les coordonnes polaires,
par exemple pour tracer un pentagone rgulier. Langle entre deux cts successifs dun pentagone
rgulier est 72, et les cts ont tous la mme longueur, prenons 1 par exemple.
Le premier ct est (0,0) -- (1,0).
Pour tracer le deuxime ct, on peut crire : \draw -- ++(72:1). Cela revient dire : tracer
un segment dans la direction dangle polaire 72, sur une distance 1. Pour le troisime ct, il sura
de dire -- ++ (144:1), sachant que 144 est le double de 72, cest langle polaire du troisime ct.
Et ainsi de suite avec les multiples de 72 :
\draw (0,0) -- (1,0)
-- ++(72:1) -- ++(144:1) -- ++(216:1) -- cycle;
144
72
(0, 0) (1, 0)
32
2.2
2.2.1
Une figure nest pas constitue que de traits pleins entre des points. Il devient trs vite ncessaire
de modifier laspect des lignes : pointills au lieu de traits pleins, couleur, paisseur des traits,
pointes de flches, etc. Non pas pour le simple plaisir de faire joli, mais pour communiquer des
informations propos de la figure.
Tik Z permet cela par lintermdiaire doptions graphiques. Le concept et la syntaxe des options
est analogue ce quon trouve dans LATEX : les options scrivent entre crochets, spares par des
virgules. Par exemple [thick, red] signifiera quon veut des traits pais et rouges. Remarquez
quon a dj utilis cette syntaxe pour le positionnement des noeuds :
dans lexpression node[below]{}, below tait une option au sens indiqu ici.
Les questions qui se posent propos de cette nouvelle construction syntaxique sont les suivantes :
o peut-on (doit-on) crire ces options ?
quelles sont les options disponibles, avec quelle syntaxe ?
quels sont les lments de la figure aects par loption ?
Nous ne pouvons pas rpondre dun seul coup ni compltement toutes ces questions. En gros,
les options scrivent immdiatement aprs les direntes commandes comme \tikzpicture (pour
une option sappliquant toute la figure), \draw (pour une option sappliquant uniquement au
chemin), et dans les oprations de chemin, comme node. Elles sont . . . optionnelles, cest--dire
quon peut ne pas les faire figurer (dans ce cas Tik Z choisira alors automatiquement des valeurs
par dfaut). En fait, chaque fois que nous introduirons une nouvelle possibilit de Tik Z, nous
indiquerons les principales options associes.
2.2.2
chaque opration draw, on peut spcifier lpaisseur des traits, avec les options suivantes (fin
ou pais) :
thin, very thin, ultra thin
thick, very thick, ultra thick
Par exemple \draw [very thick] (0,0) -- (1,0);
Remarquez que Tik Z permet de sexprimer de manire qualitative (en anglais), sans trop se
proccuper de prcision absolue. Cest souvent susant, mais si on veut on peut aussi spcifier la
largeur exacte du trait, avec des units de longueur :
[line width=5pt]
On peut remarquer deux choses dans cette syntaxe : dabord les noms des options peuvent
contenir des espaces, et ensuite il y a deux formes possibles, lune courte, comme [thin], et lautre
longue comme [line width=5pt]. On direncie en fait le nom de loption (line width) et la
valeur de loption (5pt). La plupart du temps, Tik Z se dbrouille tout seul pour trouver de quelle
option on parle quand on donne une valeur seulement (quand on donne [red], Tik Z reconstitue
la syntaxe complte [color=red]). En cas dambigut il faut prciser le nom de loption.
2.2.3
33
2.2.4
On peut spcifier que lextrmit dun trait doit tre une pointe de flche avec loption [->].
Si la flche doit tre lorigine plutt qu lextrmit : [<-].
Et on peut combiner les deux : [<->].
Pour un chemin form de traits contigus dans une mme instruction \draw, la flche sapplique
tout le chemin considr comme un seul trait.
Exemple : \draw [<->] (0,0) -- (1,0) -- (1,1);
Les pointes de flches par dfaut sont un peu petites, et on peut en prfrer dautres. On peut alors
spcifier le type de pointe quon veut avec loption >, par exemple : [>=stealth]. Rappelons que
les options saccumulent entre crochets, spares par des virgules : [>=stealth,->]
Le mot stealth voque la forme de lavion furtif appel stealth-fighter (stealth = ruse).
Une extension de Tik Z permet davoir des pointes de flches varies (library arrows)
2.2.5
On peut indiquer quun trait ou une rgion doit tre dune couleur donne en indiquant seulement le nom de la couleur comme option : [red] ou avec le nom doption : [color=red].
On peut spcifier une couleur pour toute la figure :
\begin{tikzpicture}[red] ... ou juste un trait \draw[red]...
Les noms de couleur autoriss sont les noms de couleur standard en LATEX. Les couleurs de base
sont :
red, green, blue, cyan, yellow, magenta, black, white, gray
On peut de plus ajouter une nuance la couleur, le procd consistant suxer le nom de
couleur par un point dexclamation suivi dun nombre de 0 100.
Exemple : [color=gray!20], signifie que la couleur est grise 20% (plus le nombre est petit,
plus la couleur est claire). Mais attention, syntaxiquement il faut alors indiquer obligatoirement le
nom de loption : color=gray!20
gray!20
gray!40
gray!60
gray!80
gray!100
34
2.3
Dans les figures de gomtrie la position prcise des points est importante, et il est pratique de
lindiquer visuellement en traant les axes ainsi quun quadrillage (en anglais grid, souvent traduit
par grille).
2.3.1
Axes
Tik Z ne possde pas dinstruction particulire pour tracer les axes. Un axe nest rien dautre
quun segment quon trace entre deux points, comme tous les autres segments, en lui appliquant
ventuellement des options graphiques (flches, paisseur, pointills, couleur) et en ajoutant des
annotations :
\begin{center}
\begin{tikzpicture}
\draw[->] (-1,0) -- (1,0);
\draw (1,0) node[right] {$x$};
\draw [->] (0,-1) -- (0,1);
\draw (0,1) node[above] {$y$};
\end{tikzpicture}
\end{center}
y
Une figure classique consiste indiquer les coordonnes dun point dans les axes.
Par exemple, pour le point A(2, 1), il faut joindre le point A ses projets sur les axes (2, 0) et
(0, 1), et indiquer ct de ces projets labscisse 2 et lordonne 1.
\draw [dashed] (2,1) -- (2,0) node[below] {$2$};
\draw [dashed] (2,1) -- (0,1) node[left] {$1$};
A(2, 1)
Plutt que de tracer sparment les deux segments, il est possible de faire le dessin en une seule
opration. On veut joindre le point (0, 1) au point (2, 0) par une ligne dabord horizontale, puis
verticale. Tik Z possde une opration pour cela, note -| :
\draw [dashed] (0,1) -| (2,0);
Ou, dans lautre sens, on joint le point (2, 0) au point (0, 1) par une ligne dabord verticale puis
horizontale : \draw [dashed] (2,0) |- (0,1);
2.3.2
35
Pour rendre les coordonnes directement lisibles, il est souvent pratique dacher un quadrillage
(une grille). Tik Z fournit linstruction grid pour cela.
La syntaxe est \draw (a,b) grid (c,d);
Cela dessine un quadrillage dont les points sont les points de coordonnes entires lintrieur
du rectangle dfini par deux coins opposs (a, b) et (c, d).
Par dfaut, les traits sont espacs de 1 cm.
Par exemple \draw (0,0) grid (3,2);
(3, 2)
(0, 0)
Le problme dun quadrillage, cest quil risque dembrouiller la figure. Il vaut donc mieux le
dessiner discrtement. Pour cela, on peut utiliser les options very thin et gray (trait trs fin et
gris).
\draw [very thin, gray] (0,0) grid (3,2);
\draw (1,0) -- (3,2);
Cela peut ne pas sure pour les nuds de texte. On peut alors aecter ces noeuds loption
fill=white. Cela colorie le fond du nud en blanc (non transparent). Il faut alors tracer le noeud
aprs la grille.
grid puis node[fill=white]
node
(AB)
(AB)
La distance par dfaut de 1 cm peut parfois tre insusante. On peut alors utiliser loption
step applique lopration grid.
Par exemple, il est possible dobtenir un quadrillage de cahier dcolier avec : grid [step=0.5],
et pour un papier millimtr : grid [step=0.1]. Et si on veut renforcer les traits des units, on
peut tracer une autre grille standard par-dessus, avec des traits un peu plus gros.
grid[step=0.5]
deux grilles
grid[step=0.1]
36
2.3.3
Il se peut que, pour direntes raisons, on doive rduire la fentre dachage, cest--dire la
rgion qui sera eectivement ache. On utilise alors linstruction \clip.
La syntaxe est \clip (a,b) rectangle (c,d);
La rgion eectivement ache sera seulement lintrieur du rectangle dont les coins opposs
sont (a, b) et (c, d). Cela aectera uniquement les dessins placs aprs linstruction \clip.
Les pointills ont t rajouts pour lexemple, ils ne font pas partie de linstruction \clip.
5
(a,b)
4
3
(c,d)
4
3
(c,d)
2
En fait, la fentre na pas forcment toujours une forme de rectangle. Elle a la forme quon
dfinit lintrieur de linstruction \clip. En particulier,
elle peut avoir une forme circulaire.
1
\clip (a,b) circle (r);
5
4
3
(a,b)
5
\clip (a,b) circle (r);
4
3
2
2
(c,d)
2.4
2.4.1
Dans une figure, les traits se superposent dans lordre du trac. Or certains tracs sont transparents et dautres pas. Donc les tracs non transparents vont cacher les traits qui ont t tracs
avant.
Cest le cas en particulier avec la grille grid et des commandes \fill.
La grille est transparente, mais un triangle rempli avec \fill ne lest pas :
grid, puis \fill
Autre exemple, dans loption double, qui trace un trait double, en fait le trait est un rectangle et
la rgion entre les deux traits nest pas transparente. Il faut ventuellement y penser pour lordre
de trac des traits, sachant que les dirents traits se dessinent lun aprs lautre, cest--dire lun
sur lautre. Dans lexemple suivant, le trait vertical de gauche est trac avant le trait horizontal
double, et le trait vertical de droite est trac aprs. Le trait horizontal en traitill est trac aprs,
et montre comment le trait double saligne : il est centr sur la ligne du trait simple.
37
Il existe une option pour grer la transparence ou plutt lopacit : opacity, avec des valeurs
allant de 0 (transparent) 1 (opaque).
On peut reprendre le premier dessin (la grille suivie dun triangle rempli de gris) en appliquant
[gray,opacity = 0.5] au triangle. On obtient :
grid, puis \fill[gray,opacity=0.5]
opacity=0.2
Le triangle est bien trac par-dessus la grille, mais il est en partie transparent. Plus prcisment,
on peut distinguer draw opacity lopacit pour le contour et fill opacity lopacit pour le
remplissage, sachant que opacity fixe les deux la fois.
2.4.2
Si on veut disposer de noms de couleur plus varis quen LATEX standard, on peut charger le
package xcolor. Il est dclar par \usepackage[usenames, dvipsnames]{xcolor}.
Attention, il faut le dclarer avant \usepackage{tikz}, sinon il y a incompatibilit.
On dispose alors des couleurs suivantes :
De jaune orange : GreenYellow, Yellow, Goldenrod, Dandelion, Apricot, Peach, Melon,
YellowOrange ;
De orange rouge : Orange, BurntOrange, Bittersweet, RedOrange, Mahogany, Maroon,
BrickRed, Red ;
De rouge rose : OrangeRed, RubineRed, WildStrawberry, Salmon, CarnationPink, Magenta, VioletRed, Rhodamine ;
De rose violet : Mulberry, RedViolet, Fuchsia, Lavender, Thistle, Orchid, DarkOrchid,
Purple ;
De violet bleu : Plum, Violet, RoyalPurple, BlueViolet, Periwinkle, CadetBlue, CornflowerBlue, MidnightBlue ;
De bleu bleu clair : NavyBlue, RoyalBlue, Blue, Cerulean, Cyan, ProcessBlue, SkyBlue,
Turquoise ;
De bleu clair vert : TealBlue, Aquamarine, BlueGreen, Emerald, JungleGreen, SeaGreen,
Green, ForestGreen ;
De vert brun : PineGreen, LimeGreen, YellowGreen, SpringGreen, OliveGreen, RawSienna, Sepia, Brown, Tan.
Sinon, on peut fabriquer soi-mme ses propres couleurs en faisant des mlanges :
[color=blue!30!red] dsigne une couleur avec 30 % de bleu et 70 % de rouge. Cest donc
une couleur plutt rouge, lgrement violette.
De mme [color=blue!30!red!40!green] dsigne le mlange de la couleur prcdente en
proportion de 40 %, avec 60 % de vert. Cela donne une dfinition globale dans le systme RVB,
avec des valeurs de 0 255 : R = 31, B = 71, V = 153 (calcul de barycentres). Le rsultat est
plutt vert.
Cela donne une grande libert, mais il nest peut-tre pas trs raisonnable de vouloir tout
prix inventer ses propres couleurs. Cest un exercice dicile, et les coloristes ont tabli des palettes
soigneusement talonnes quil est prfrable dutiliser. Les 64 couleurs de xcolor plus les couleurs
standard devraient sure.
38
2.4.3
Il est frquent que plusieurs lments dune figure aient les mmes options graphiques, et que
ces options soient associes une convention particulire de reprsentation, quon appelle un style.
Il est alors pratique de sparer la dfinition du style, qui est commune, et ses applications aux
divers lments.
Par exemple, pour que les traits soient en pointills pais et que la couleur de remplissage soit
en gris, on crit habituellement :
\draw[thick, dashed, fill=gray] ...
On peut alors dsigner ce style par un nom, par exemple grisEncadre. On dclare alors ce
nom Tik Z de la faon suivante :
\tikzstyle{grisEncadre}=[thick, dashed, fill=gray!20]
On peut crire cette commande nimporte o dans le document LATEX, avant la figure.
Ensuite, on peut utiliser ce nom dans la figure de la manire suivante, en crivant seulement le
nom comme option, et cela jouera le rle dune abrviation :
\draw [grisEncadre] (0,0) circle (1);
Et on peut utiliser ce mme style plusieurs fois :
\tikzstyle{grisEncadre}=[thick, dashed, fill=gray!20]
\begin{tikzpicture}
\draw [grisEncadre] (0,0) circle (1);
\draw [grisEncadre] (2,0) circle(0.5);
\end{tikzpicture}
Cette faon de faire augmente la lisibilit et facilite les corrections : en corrigeant seulement la
dfinition du style, toutes les figures utilisant ce style seront modifies automatiquement.
En fait, la commande \tikzstyle semble tombe en dsutude dans la version 2 (mme si elle
est toujours correcte et utilisable).
La mthode utilise par la version 2 utilise la commande \tikzset pour dfinir un style, avec
une syntaxe un peu plus complique :
\tikzset{grisEncadre/.style={thick, dashed, fill=gray!20}}
Cette lgre complication permet de profiter des possibilits du package pgfkeys, que nous ne
dtaillons pas dans cet ouvrage.
2.5
Voici des exercices raliser avec Tik Z. Pour chacun deux, on donne une figure et il faut crire
le code Tik Z qui trace cette figure. On donne comme indications les techniques utilises, cest--dire
les mots-cls Tik Z utiliss.
Les figures sont des figures classiques de gomtrie.
2.5.1
!
u +!
v
!
v
!
u
!
v
!
u +!
v
39
Techniques utilises :
->, >= stealth, --, node, above
below right, dashed, midway
2.5.2
Tout triangle rectangle est inscrit dans un demi-cercle dont le diamtre est lhypotnuse.
|
Techniques utilises :
2.5.3
Techniques utilises :
double distance, thick, arc,
color=gray!20, circle, --, densely dotted
2.5.4
Deux triangles, de bases gales et de hauteurs gales, ont des aires gales.
Techniques utilises :
color=gray!20, --, cycle, node, \fill
2.5.5
40
M2
!
v
||
||
I2
M1
Techniques utilises :
>=latex, node, below, midway, --,
above, dashed, left, below right, ->
2.5.6
Suite gomtrique
n
X 1
1 1 1
+ + + = lim
=1
n!+1
2 4 8
2k
k=1
Le triangle OAB est isocle rectangle en B, direct. partir de B, on eectue une suite de
projections orthogonales : sur [OA] dabord, puis sur [AB], puis sur [OA], puis sur [AB], etc.
1
Les longueurs des segments sur [OA] forment une suite gomtrique de raison
2
B
A
1
2
1
4
1
Techniques utilises :
>=latex, <->, node, left, above, --,
right, midway, below, densely dashed
1
8
Chapitre 3
Courbes
3.1
Dans ce chapitre, nous allons voir comment tracer des courbes dfinies laide dquations
mathmatiques, comme lquation
cartsienne y = sin(x), lquation polaire r = f () ou les
x = cos(t)
quations paramtriques
.
y = sin(t)
Lopration principale pour cela est plot, insrer dans une commande \draw par exemple :
\draw plot ... ;
Nous dcrivons ici la syntaxe de cette opration dans la version 2 de Tik Z.
Cette opration permet de tracer des courbes paramtres, le nom du paramtre par dfaut
tant \x.
Aprs le mot plot, on crit :
ou bien (X, Y ), o X et Y sont les formules de labscisse et de lordonne en fonction du
paramtre, Si ces formules contiennent des parenthses ou des virgules, il faut les crire
entre accolades. Cest trs souvent le cas pour Y. Par exemple, on crit (\x,{exp(\x)}) ;
ou bien ( : r), o et r sont les formules de langle polaire (en degrs) et du rayon en
fonction du paramtre (rayon algbrique, qui peut tre ngatif). Les accolades peuvent tre
ncessaires galement.
x
Par exemple, pour tracer la courbe de la fonction dquation cartsienne y = , il faut dabord
4
(
x=x
x , et on crit :
la traduire en quations paramtriques :
y=
4
\draw plot (\x, \x/4);
ce qui donne :
y=
x
4
(5, 1.25)
(0, 0)
( 5, 1.25)
On a ajout des annotations en gris pour montrer comment la figure se place.
Ici, Tik Z a utilis ses options par dfaut pour choisir le domaine du paramtre :
5 6 x 6 5.
42
CHAPITRE 3. COURBES
La courbe part du point ( = 100 : r = 5) et arrive au point
( = 100 : r = 5) car \x varie par dfaut de 5 5. On obtient :
(100 : 5)
( 45 :
( 100 :
5)
(45 : 2.25)
2.25)
|
(0 : 0)
Si on ne souhaite pas conserver le nom par dfaut \x pour le paramtre, on peut lui attribuer
un nom, par exemple \t, avec loption [variable=\t] applique lopration plot.
Exemple : \draw plot [variable=\t] (\t,2*\t);
Il reste direntes questions, que nous allons tudier dans la suite :
Comment dfinir le domaine du paramtre ?
Quelles sont les formules mathmatiques disponibles ?
Comment spcifier le nombre de points calculs, le lissage ?
Comment sont traits les points singuliers (discontinuits, valeurs trop grandes) ?
3.1.1
Domaine : [domain=a:b]
Pour dire que le paramtre (\x par dfaut) varie de a b, Tik Z a prvu la syntaxe [domain=a:b].
Malheureusement, cette syntaxe pose un problme pour les utilisateurs franais qui ont dclar
le package babel avec une option french, frenchb ou francais.
Le problme de babel franais et de :
Remarque : Dans la dernire version de Tik Z & PGF (la version 2.10), qui est actuellement
fournie avec la distribution TEXlive 2011, ce problme de babel du : est corrig.
Si on dispose dune version plus ancienne, lire la suite.
Avec le package babel franais (french, frenchb ou francais), le code interne TEX du caractre : (son catcode) est modifi pour permettre un traitement spcial adapt aux rgles
typographiques de la langue franaise. Cela ne pose pas de problmes en gnral dans LATEX, mais
comme Tik Z utilise une syntaxe spciale et donc une procdure de lecture spciale, cela interfre
avec ses rgles syntaxiques et provoque une erreur, en particulier dans loption [domain=a:b]. On
obtient en gnral dans la fentre de console le message suivant, dicile comprendre, mais qui
peut servir dindice pour reprer lerreur :
Paragraph ended before \tikz@plot@samples@recalc was complete
Nous proposons deux solutions direntes :
dire LATEX de ne plus considrer le caractre : comme un caractre spcial dans les
passages o il doit tre interprt par Tik Z, en utilisant la commande fournie par babel
franais : \shorthandoff{:} ;
configurer Tik Z pour modifier la syntaxe de loption domain=a:b, ou plutt introduire une
autre option quivalente domaine={a}{b} qui nutilise pas les deux-points.
Aucune des deux solutions nest parfaite, nous les dveloppons dans ce qui suit.
43
(90 : 4.5)
= 20 r
(45 : 2.25)
(180 : 9)
(0 : 0)
44
CHAPITRE 3. COURBES
Le bon rglage du domaine est important pour les fonctions qui prennent de trs grandes
valeurs, par exemple lexponentielle.
Avec \draw plot(\x,{exp(\x)});, on obtient un trait quasiment vertical qui prend toute la
page, car e5 148.
Il vaut mieux crire \draw [domain=-3:1.5] plot(\x,{exp(\x)});
y = ex
3.1.2
(0, 0)
Depuis la version 2, Tik Z permet dcrire des formules mathmatiques avec une syntaxe usuelle
analogue celle des calculatrices, des logiciels mathmatiques ou des langages de programmation.
Cependant, la gamme de fonctions disponibles nest pas trs grande. Tik Z nest pas un logiciel
de calcul, et il ne faut pas lui en demander trop.
Si les fonctions disponibles ne susent pas, il y a deux grandes solutions :
utiliser lopration plot function qui fait appel (de manire transparente) au logiciel libre
Gnuplot, quil faut avoir pralablement install et connect Tik Z. Voir plus loin complments techniques pour des prcisions sur Gnuplot ;
prparer les donnes (coordonnes des points de la courbe) laide dun logiciel extrieur,
les sauvegarder sur fichier sous un format convenable, puis utiliser lopration plot file
(voir chapitre suivant).
Oprations
Addition, soustraction, multiplication, division, lvation une puissance :
x+y, x-y, x*y, x/y, x^y
Modulo, maximum, minimum :
mod(x,y), max(x,y), min(x,y)
Fonctions
Valeur absolue, exponentielle, logarithme nprien, racine carre :
abs(x), exp(x), ln(x), sqrt(x)
Arrondi, partie entire (plancher), entier immdiatement suprieur (plafond) :
round(x), floor(x), ceil(x)
Fonctions trigonomtriques
Les angles sont en degrs.
sin(x), cos(x), tan(x), cot(x), sec(x), cosec(x)
Fonctions rciproques :
asin(x), acos(x), atan(x)
Constante , conversions
pi, x r, deg(x), rad(x)
45
En Tik Z, les fonctions trigonomtriques attendent des angles en degrs. Pour retrouver les fonctions mathmatiques habituelles qui attendent des angles en radians, il faut convertir les radians
en degrs.
Appelons s la fonction note en Tik Z par sin et continuons appeler sin la fonction mathmatique habituelle
enradians. On a alors les relations :
180
sin(x) = s
x et s(x) = sin
x
180
180
Multiplier x par
(cest--dire convertir les radians en degrs) peut se faire de deux faons
en Tik Z : deg(x) ou x r.
Par exemple sin(pi/2 r) vaut 1, ainsi que sin(deg(pi/2))
Mais attention au niveau de priorit de la notation r : elle est de mme priorit quune multi180
plication. Elle reprsente en eet la multiplication par
180
180
Autrement dit a*b r reprsente ab
mais a+b r reprsente a + b
(0, 0)
3.2
3.2.1
Aspect du graphe
Nombre de points : samples
Par dfaut, lorsquon demande Tik Z de tracer une courbe avec plot, il calcule un certain
nombre de points de la courbe (25 points) puis il les joint par des segments. On peut changer ces
choix par des options.
On peut changer le nombre de points avec loption samples.
Par exemple, pour la courbe dont la formule Tik Z est (\x,{sin(5*\x r)}, cest--dire la courbe
de la fonction mathmatique x 7! sin(5x)
Avec la valeur de samples par dfaut (25) :
46
CHAPITRE 3. COURBES
Avec [samples=200] :
3.2.2
On peut demander Tik Z de ne pas joindre les points par des segments mais par des courbes
(calcules avec un algorithme de lissage). On obtient alors une courbe lisse.
La courbe de la fonction prcedente x 7! sin(5x) avec 25 points, mais lisse avec loption
[smooth] est moins cahotique, mais ne compense pas leet d au faible nombre de points :
Le degr de lissage (la courbure des arcs de courbes) peut tre configur avec loption tension.
Une valeur de 0 donne un segment (comme si on navait pas mis loption smooth), la valeur par
dfaut est 0.55, et le maximum est la valeur 1 (plus la valeur est grande, plus les arcs sont courbs).
Avec [smooth, tension=1] :
On voit que, de toutes faons, le meilleur eet de lissage est obtenu en augmentant le nombre de
points avec samples. Cependant, loption smooth peut quand mme tre ecace pour des courbes
simples et rgulires.
3.2.3
x
La fonction nest pas dfinie en 0, et pas
|x|
non plus prolongeable par continuit en 0. La courbe est forme de deux demi-droites : y = 1
pour x < 0 et y = 1 pour x > 0.
Quand on crit lquation directement, Tik Z ne donne pas un rsultat correct (contrairement
par exemple GeoGebra) :
\draw[domain=-3:3] plot(\x,{\x/abs(\x)});
Exemple : tracer la courbe de la fonction x 7!
47
\draw[domain=-3:-0.01] plot(\x,{\x/abs(\x)});
\draw[domain=0.01:3] plot(\x,{\x/abs(\x)});
3.2.4
1
, trace lchelle 0.5, avec le nombre de points par
x
dfaut (25).
\draw [scale=0.5] plot (\x, {1/\x});
Le dernier point gauche de 0 ne devrait pas tre reli au premier point droite de 0
parce que le domaine de dfinition de la fonction nest pas connexe.
Si on voulait augmenter le nombre de points ([samples=100]), ce serait encore pire : on obtiendrait un message derreur : Dimension too large. Les valeurs au voisinage de 0 sont en eet
trop grandes pour les capacits de calcul de Tik Z (sans compter le problme de la valeur en 0).
La seule faon de rsoudre le problme est dtudier la fonction avant, danalyser les problmes
de discontinuit et de valeurs trop grandes, et de tracer sparment deux morceaux de courbe sur
des domaines dirents, en prenant soin dviter les abscisses trop proches de 0.
On peut alors essayer [domain=-3:-0.2] pour lune et [domain=0.2:3] pour lautre. Les
courbes se tracent mais les valeurs extrmes des ordonnes restent un peu grandes ( 5 et 5), ce
qui donne une image de 10 cm de hauteur.
Il y a deux sortes de solutions cela : loption scale ou la commande \clip.
Avec scale, on peut rduire lchelle, par exemple [scale=0.5].
Avec \clip, on garde lchelle mais on peut rduire la fentre dachage, par exemple :
\clip (-3,-2) rectangle (3,2); (commande placer au dbut de la figure).
[scale=0.5]
\clip (-3,-2) rectangle (3,2);
Il peut paratre un peu dcevant que Tik Z ne prenne pas en charge ces problmes de discontinuit et de valeurs trop grandes, contrairement certaines calculatrices ou logiciels. Mais encore
48
CHAPITRE 3. COURBES
une fois, ce nest quun module pour TEX, qui nest aprs tout quun logiciel de composition typographique et nest pas du tout prvu pour tre un logiciel de calcul. Il est mme remarquable que
TEX arrive supporter toutes ces extensions de manire robuste.
3.3
Il arrive souvent quon doive reprsenter une rgion limite par des courbes, par exemple pour
des calculs daires. La technique de base est de dfinir le contour laide dun chemin, en enchanant
les courbes, puis de demander remplir ce chemin avec fill.
3.3.1
1
Exemple : remplir la rgion comprise entre laxe des abscisses, la courbe de la fonction x 7!
x
et les droites dquation x = 1 et x = 2.
B
C
A
Il sagit de remplir la rgion ABCD, avec A(1, 0), B(1, 1), C(2, 0.5), D(2, 0).
Pour cela on dfinit un chemin ferm avec dans lordre : le segment de A B, la courbe de B
C et les segments de C D, puis de D A.
Le code suivant doit tre inclus dans un environnement tikzpicture en noubliant pas dviter
le problme des deux-points grce \shorthandoff{:}. Notez bien que tous les lments du
chemin sont connects les uns aux autres (y compris la courbe) par des tirets -- pour indiquer un
chemin connexe, et que le chemin est ferm par -- cycle.
\fill[color=gray!20]
(1,0) -- (1,1)
-- plot [domain=1:2] (\x,1/\x)
-- (2,0) -- cycle;
% segment de A B
% courbe de B C
% segment de C D puis fermer
Cette rgion nest quun lment de la figure complte, avec les axes et la courbe. Pour des
raisons dordre du trac et de recouvrement, il est prfrable de tracer la rgion avant.
La structure de la figure complte est donc :
49
Aire(ABCD) =
2
1
1
dx = ln(2)
x
B
C
A
3.3.2
Le principe est le mme : on dfinit un contour, puis on remplit la rgion intrieure. Il faut
juste faire attention aux sens des tracs des courbes. Il faut tracer une premire courbe de 0 1,
puis tracer lautre de 1 0 pour revenir lorigine.
\filldraw[draw=black,fill=gray!20]
plot [smooth,domain=0:1] (\x,{sqrt(\x)})
-- plot [smooth,domain=1:0] (\x,\x^2)
-- cycle;
3.3.3
Pour linstant, nous avons dfini un contour et utilis la commande \fill pour remplir son intrieur. Mais comment est dfini exactement lintrieur dun contour ? La question devient dlicate
lorsque la frontire de la rgion se recoupe et se traverse elle-mme.
Exemple : remplir la rgion limite par la courbe de x 7! sin(x) et laxe des abscisses sur [0; 2].
50
CHAPITRE 3. COURBES
On obtient ce quon veut, mais il faut bien comprendre ce qua fait Tik Z. Il dispose de deux
modes de calcul pour dterminer lintrieur dun chemin. Dans le cas de lexemple prcdent, les
deux modes donnent le mme rsultat, mais ce ne sera pas toujours le cas.
Il a utilis ici son mode par dfaut, quon aurait pu demander explicitement par loption
nonzero rule, lautre mode tant even odd rule.
La dfinition de ces modes nest pas simple (voir le manuel : interior rules). Comme le dit luimme le manuel : Vous pensez que cest compliqu ? Eh bien, oui, a lest ! . Le plus compliqu
est le mode par dfaut, lautre est un peu plus naturel.
Cependant, pour les cas usuels tudis ici (rgion entre deux courbes de fonctions continues),
les deux modes donnent le mme rsultat. Par exemple : tracer la rgion dlimite par la courbe
du sinus et la courbe du cosinus sur [0; 2]. On trace dabord la courbe du sinus de 0 2, puis la
courbe du cosinus de 2 0.
\filldraw [draw=black,fill=gray!20]
plot [domain=0:2*pi] (\x,{sin(\x r)})
-- plot [domain=2*pi:0] (\x,{cos(\x r)})
-- cycle;
5
4
0
Notez que le quadrillage grid doit tre dessin aprs les courbes pour quil soit entirement
visible. On peut aussi dessiner le quadrillage avant, mais alors si on veut quil reste visible, il faut
que les dessins tracs par-dessus soient transparents, par exemple avec loption [opacity=0.5].
3.4
3.4.1
Complments techniques
Utilisation de Gnuplot : plot function
Il se peut que les formules mathmatiques intgres dans Tik Z ne vous susent pas. Il faut
alors faire appel un programme extrieur. Une possibilit prvue par Tik Z est dutiliser Gnuplot,
logiciel permettant de tracer toutes sortes de courbes et diagrammes.
Le mcanisme est le suivant : quand on donne la commande \draw avec une opration
plot function, comme dans lexemple suivant :
\draw plot function {sin(x)};
Tik Z fait appel au logiciel Gnuplot (qui doit avoir t install et connect Tik Z), qui se charge
de calculer une liste de points tracer, les enregistre dans un fichier, puis Tik Z va lire ce fichier et
sen sert pour tracer la courbe.
Plus prcisment, si le nom du fichier LATEX est doc.tex, Tik Z engendre un fichier :
doc.pgf-plot.gnuplot, puis ce fichier est excut par Gnuplot, qui fournit en retour un fichie :
doc.pgf-plot.table, qui est ensuite utilis par Tik Z pour tracer la courbe, exactement comme
si on avait crit : \draw plot file {doc.pgf-plot.table};
Pour que cela soit possible, il faut certaines manipulations pralables. Il faut dabord charger
et installer Gnuplot, ce qui est plus ou moins facile suivant les systmes dexploitation.
La page daccueil de Gnuplot est http://www.gnuplot.info/
Il faut sassurer de la compatibilit entre les versions de Gnuplot, du systme et de TEX.
Il faut ensuite configurer le systme TEX pour quil puisse se connecter Gnuplot. L aussi, la
manoeuvre suivre dpend des systmes.
Quand tout fonctionne, on peut utiliser \draw plot function {...}, en notant que la syntaxe
de reprsentation des fonctions nest pas celle de Tik Z, cest celle de Gnuplot.
Cette opration admet direntes options permettant de contrler Gnuplot, en particulier loption parametric pour tracer des courbes paramtres.
51
Depuis la version 2 de Tik Z, lusage de Gnuplot devient moins ncessaire car on peut maintenant crire directement des formules mathmatiques. Il nest donc pas systmatiquement conseill
dutiliser Gnuplot, dautant que son installation peut tre dlicate.
3.4.2
Dans les calculatrices graphiques et les logiciels qui tracent des courbes, il y a souvent un
couplage troit entre direntes options : la fentre de trac, le domaine dtude de la fonction,
le trac des axes et du quadrillage. En gnral, on fixe les bornes pour labscisse et lordonne, et
tout le reste en dcoule.
Il est possible de raliser cela avec Tik Z, en utilisant ses possibilits de gestion doptions (le
package pgfkeys) et un peu de programmation LATEX. Ce package ncessite la version 2 de Tik Z.
Le but recherch est le suivant : introduire quatre nouvelles options xmin, xmax, ymin, ymax
permettant de fixer les bornes, et trois commandes LATEX \axes, \grille, \fenetre utilisant
ces bornes pour tracer les axes et la grille (grid), et fixer la fentre (\clip).
Exemple dutilisation :
\begin{center}
\begin{tikzpicture} [xmin=-2,xmax=2,ymin=0,ymax=5]
\grille \axes \fenetre
\draw plot[smooth] (\x,\x^2);
\end{tikzpicture}
\end{center}
Lordre des tracs est dlicat : si on place \axes avant \grille, les axes sont recouverts par la
grille. Si on place \fenetre avant \axes, la pointe de flche des abscisses est rogne (ce problme
peut tre vit en largissant la fentre vers le bas).
Pour obtenir ces nouvelles options et commandes, il sut dinsrer la fin du prambule du
document LATEX les quelques lignes suivantes :
% Dfinition des nouvelles options xmin, xmax, ymin, ymax
% Valeurs par dfaut : -3, 3, -3, 3
\tikzset{
xmin/.store in=\xmin, xmin/.default=-3, xmin=-3,
xmax/.store in=\xmax, xmax/.default=3, xmax=3,
ymin/.store in=\ymin, ymin/.default=-3, ymin=-3,
ymax/.store in=\ymax, ymax/.default=3, ymax=3,
}
% Commande qui trace la grille entre (xmin,ymin) et (xmax,ymax)
\newcommand {\grille}
{\draw[help lines] (\xmin,\ymin) grid (\xmax,\ymax);}
% Commande \axes
52
CHAPITRE 3. COURBES
\newcommand {\axes} {
\draw[->] (\xmin,0) -- (\xmax,0);
\draw[->] (0,\ymin) -- (0,\ymax);
}
% Commande qui limite laffichage (xmin,ymin) et (xmax,ymax)
\newcommand {\fenetre}
{\clip (\xmin,\ymin) rectangle (\xmax,\ymax);}
3.5
3.5.1
Exercices
Ellipse. Angles avec circle et \clip
Illustrer la proprit suivante : la tangente et la normale en un point A une ellipse sont les
bissectrices de (AF, AF 0 ), o F et F 0 sont les foyers de lellipse.
A
F0
Echelle 0.5
Ellipse (reprsentation paramtrique) :
x = 5 cos()
y = 3 sin()
3.5.2
ab = ba . xscale, yscale
Illustrer la proprit suivante : lquation ab = ba na que deux solutions entires (a, b) avec
a 6 b : (2, 2) et (2, 4)
ln(a)
ln(b)
ln(x)
Lquation est quivalente
=
Pour illustrer cela, on trace la courbe de x 7!
a
b
x
et on tudie ses intersections avec des droites horizontales y = k. Ltude du sens de variation
montre un maximum en e et une limite de 0 en +1. Donc la seule solution envisageable est a = 2.
3.5. EXERCICES
53
Pour mieux voir le sens de variation au voisinage de e, on peut choisir une chelle dirente
pour les abscisses et pour les ordonnes, par exemple multiplier les abscisses par 2 et les ordonnes
par 100 : ici [xscale=2,yscale=100].
ln(2)
Pour les points dordonne
, on peut utiliser directement une formule de calcul dans les
2
coordonnes, par exemple (2,{ln(2)/2}).
On limite galement le domaine de la fonction, avec [domain=1.85:4.5]. Attention aux deuxpoints : protger avec \sorthandhoff(:) ou utiliser
[domaine={1.85}{4.5}]
y=
3.5.3
ln(2)
2
1
e
e,
x=2
x=4
,
puis de reproduire ce morceau par des translations de vecteur (2, 0).
!
v (2, 0)
54
CHAPITRE 3. COURBES
\foreach est une instruction de boucle au sens usuel de linformatique. Nous en verrons dautres
exemples plus loin.
3.5.4
Illustrer la formule
ln(x) dx +
1
ln(2)
Lintgrale du logarithme est reprsente par laire grise A, lintgrale de lexponentielle par
laire hachure. Les fonctions ln et exp sont rciproques, donc les deux aires grises A et B sont
gales, par symtrie par rapport la droite dquation y = x. Laire (hachure + B) est laire dun
rectangle et vaut 2 ln(2),
y = ex
y=x
2
B
y = ln(x)
1
0
ln(2) 1
On trace les rgions avant le reste. Pour les hachures, il faut utiliser la bibliothque patterns,
en dclarant dans le prambule :
\usepackage{tikz}
\usetikzlibrary{patterns}
On lutilise alors avec loption pattern (voir le manuel pour les dirents motifs possibles :
vertical lines, north east lines, dots, etc.) :
3.5. EXERCICES
55
3.5.5
x = cos()
y = sin() cos()
p
p
Son quation cartsienne est x4 + y 2 = x2 , soit y = x 1 x2 ou y = x 1 x2 . Le but est de
reprsenter laire de la rgion intrieure dlimite par la courbe, puis de reprsenter un encadrement
de cette aire.
16A6
16A
A6
3
2
3
2
Pour reprsenter laire A, utiliser \filldraw. Tik Z dtermine correctement la rgion intrieure.
Pour
reprsenter lencadrement daires, il faut calculer dirents lments de la fonction x 7!
p
x 1 x2 sur [0; 1] :
!
p
2 1
la tangente en O a pour quation y = x, le maximum est
,
.
2 2
Mettre au point dabord 4 figures spares (les trois aires puis le rsultat). Ne pas oublier que
les angles de la formule mathmatique sont en radians.
Ensuite, regrouper ces figures en une seule en utilisant scope et xshift.
Ainsi, \begin{scope}[xshift=1.5 cm] ... \end{scope} eectue une translation de 1.5 cm
vers la droite et limite leet de cette translation lenvironnement scope.
En remplissant les rgions, attention lordre du trac : tracer les rgions remplies avant les
autres lments.
56
CHAPITRE 3. COURBES
La structure du code est donc :
\begin{tikzpicture}[scale=...]
\begin{scope}
\filldraw[fill=...] plot ...;
\draw (0,-1) node {$A$};
\end{scope}
%
%
%
%
\begin{scope}[xshift= 2.3cm]
\filldraw ... ;
\draw[densely dashed] plot ...;
\draw (0,-1) node ... ;
\end{scope}
%
%
%
%
translation
aire minorante
la courbe
commentaire
\begin{scope}[xshift= 4.6cm]
\filldraw ... ;
\draw[densely dashed] plot ... ;
\draw (0,-1) node ... ;
\end{scope}
%
%
%
%
translation
aire majorante
la courbe
commentaire
\begin{scope}[xshift= ...cm]
\draw (0,0) node ... ;
\end{scope}
\end{tikzpicture}
3.6
% translation
% le rsultat
Rsum
Pour tracer une courbe dfinie par des quations mathmatiques utiliser :
\draw plot (abscisse,ordonne); ou \draw plot (angle:rayon);
Les formules sont donnes en fonction dun paramtre nomm \x par dfaut, ou quon peut
nommer comme on veut avec loption variable=.
Avec loption [domain=a:b], on peut fixer le domaine de variation de ce paramtre, mais cette
syntaxe pose des problmes quand on utilise babel franais. Ces problmes peuvent tre rsolus
par lemploi de shorthandoff(:) ou par la programmation dune option [domaine={a}{b}].
Tik Z fournit une syntaxe pour les formules mathmatiques usuelles. Les fonctions trigonomtriques utilisent des angles en degrs, mais Tik Z fournit des possibilits de conversion de radians
en degrs : r ou deg().
Laspect des courbes peut tre contrl par des options : samples pour le nombre de points,
smooth pour le lissage.
Le traitement des discontinuits ou des grandes valeurs nest pas automatique. Il faut alors
sparer soi-mme les intervalles, fixer explicitement lchelle avec scale, xscale, yscale et la
fentre dachage avec \clip.
Les courbes formes de morceaux quon reproduit par des transformations (fonction priodique
par exemple) peuvent tre construites avec la commande \foreach.
On peut remplir des rgions dlimites par des courbes. Pour cela il faut dfinir un chemin
ferm (avec -- et cycle) et utiliser \fill ou \filldraw. Certaines portions du chemin peuvent
tre des courbes traces avec plot, sachant quelles sont parcourues dans le sens dfini par lordre
des valeurs extrmes du paramtre dans domain=a:b (de a vers b, mme si a > b).
On peut remplir une rgion avec de la couleur ou des motifs, comme par exemple :
[pattern= horizontal lines] (voir la bibliothque patterns).
Le remplissage des rgions est rgi par des rgles techniques consulter dans le manuel (interior
rules : nonzero rule par dfaut, ou
even odd rule). La rgle par dfaut donne en gnral le rsultat attendu.
Une autre possibilit pour tracer des courbes est dutiliser plot function, qui fait appel au
logiciel extrieur Gnuplot. Cela peut tre utile quand les fonctions mathmatiques de Tik Z se
rvlent insusantes, ou pour rcuprer des figures charges sur Internet. Mais cela exige une
3.6. RSUM
57
Chapitre 4
Coordonnes (x,y,z)
Reprsentation Tik Z standard
Tik Z prvoit une syntaxe (x,y,z) pour reprsenter des points dans lespace. Mais ce nest
pas un logiciel de modlisation 3D : il ne gre pas les surfaces caches, ne permet pas de voir les
figures sous dirents points de vue. Il se contente de tracer des figures planes qui sont les projetes
!
!
!
!
de figures de lespace, sachant que le point M (x, y, z) est dfini par OM = x i + y j + z k , o
! ! !
!
1 !
1 !
p i
p j (ce nest pas ce
i , j , k sont des vecteurs du plan, avec par dfaut k =
2 2
2 2
que dit le manuel, mais on peut vrifier sur la figure suivante).
!
j
!
i
!
k
Le cube unit est alors obtenu par :
Ou bien on peut ombrer les faces avec \fill (le soleil est en haut gauche) :
59
60
Tout cela est possible avec les options habituelles de Tik Z, mais ce nest pas automatique.
Il faut dcider soi-mme ce qui sera en pointills [dashed], en gris [fill=...], transparent
[opacity=0.7], et bien dessiner les lments dans le bon ordre.
4.1.2
La reprsentation de Tik Z est une convention comme une autre, et une fois quon la comprise,
on peut lutiliser. Cependant, lenseignement mathmatique franais utilise une autre convention
laquelle sont attachs des rflexes et des images mentales, et changer ces rflexes peut induire une
charge mentale inutile.
Tik Z possde des options x, y et z, qui permettent de redfinir les vecteurs de base en fonction
de coordonnes planes absolues (abscisses horizontales vers la droite, ordonnes verticales vers le
haut).
La reprsentation mathmatique franaise usuelle peut tre obtenue par :
[x= {(-0.353cm,-0.353cm)}, z={(0cm,1cm)}, y={(1cm,0cm)}]
!
k
!
j
!
i
Si lon souhaite utiliser souvent cette reprsentation, il peut tre pratique den faire un style
(par exemple math3d), quon dfinit une fois pour toutes au dbut du document :
\tikzset{math3d/.style=
{x= {(-0.353cm,-0.353cm)}, z={(0cm,1cm)},y={(1cm,0cm)}}}
On peut dailleurs choisir une autre valeur de x pour les besoins de la perspective. Pour chaque
figure o lon veut utiliser cette convention, il sura dajouter loption math3d :
\begin{tikzpicture} [math3d] ... \end{tikzpicture}
4.2
4.2.1
En joignant les milieux de certains cts, on obtient un hexagone rgulier, section du cube par
le plan mdiateur de la grande diagonale.
61
4.2.2
La grande diagonale du cube coupe un certain triangle quilatral en son centre de gravit,
perpendiculairement.
L encore, il faut calculer les coordonnes de tous les points, reprer ce qui est cach et le
traduire par des couleurs, des pointills, une opacit, un ordre de trac.
4.2.3
Droites et plans
Il est frquent davoir illustrer un problme de gomtrie qui demande de dessiner des droites
et des plans quand on connat leurs quations.
Par exemple : construire la perpendiculaire commune aux deux droites
d et d0 dont les reprsentations paramtriques sont :
8
< x=1 t
y=t
d
et
:
z = 2t
8
< x=t
y = 2 + 2t
d0
:
z=t
3 3 3
1 4 1
Soit K le projet de H sur P : K
, ,
3 3 3
0
Alors la perpendiculaire commune d et d est la droite (HK).
Le problme est mathmatiquement rsolu, mais il reste faire la figure suivante pour lillustrer :
H
K
d0
62
3 1
1 3
0
0
On obtient C
1, ,
; D 0, ,
2 2
2 2
Il faut ensuite reprsenter le plan Q par un paralllogramme. On choisit [CD] comme un des
cts et on sarrange pour que le ct parallle [CD] contienne H. Les autres sommets sont alors
E(1, 1, 1) et F (0, 1, 0).
Pour le dessin, il faut faire attention lordre du trac pour suggrer la perspective : le contour
et le remplissage du plan P doivent tre faits dabord (le plan P est plac derrire), puis celui du
plan Q avec une certaine transparence [opacity = 0.7].
B
E
K
D
D
A
On voit que, pour une structure mathmatique relativement simple (deux plans et trois droites),
les contraintes du trac en perspective rendent la ralisation assez dlicate : il faut matrialiser les
droites par des segments et les plans par des paralllogrammes, suggrer les proprits de la figure
(paralllisme), rendre la figure lisible et pas trop grande. Et tout cela en respectant les quations
donnes par lnonc et les rgles de la reprsentation en perspective.
Une astuce consisterait considrer que la figure finale nest aprs tout quune figure plane comportant essentiellement deux paralllogrammes, et de tracer ces paralllogrammes sans se soucier
dun quelconque repre de lespace. On peut alors choisir les paralllogrammes de formes arbitraires, condition de respecter la possibilit dinterprter la figure comme une projection dune
figure de lespace.
Cependant, il ne serait plus possible de les choisir arbitrairement si on devait de plus reprsenter
le repre de lespace de manire cohrente avec les quations (ou alors dans ce cas il faudrait calculer
la bonne position du repre).
4.3
4.3.1
Courbes et surfaces
Reprsentation paramtrique, plot, \foreach
Une courbe dans lespace peut tre dfinie par une reprsentation paramtrique un paramtre.
On peut donc la dessiner avec lopration plot (X, Y, Z) en exprimant X, Y et Z en fonction dun
paramtre (nomm \x par dfaut).
63
Une surface peut tre dfinie mathmatiquement par une reprsentation paramtrique deux
paramtres t et u. Tik Z ne prvoit pas cette possibilit, mais on peut cependant la mettre en
oeuvre.
Lorsquon fixe t et quon fait varier u, on obtient une courbe dans lespace, trace sur la surface.
Lide est de tracer chacune de ces courbes avec lopration plot, et cela pour direntes valeurs
de t, quon peut obtenir laide dune boucle \foreach.
Le schma est donc :
\foreach \t in {...} { plot ( ..., ..., ...) }
Prenons comme exemple une surface de rvolution daxe Oz (comme un cylindre, un cne, une
sphre). Elle est obtenue en faisant tourner la courbe plane dquation x = f (z) autour de laxe
Oz et a pour reprsentation paramtrique (avec deux paramtres et t, variant de 0 2) :
8
< x = f (t) cos()
y = f (t) sin()
:
z=t
On peut alors reprsenter la surface par empilement de disques horizontaux (un disque est
obtenu pour t constant), en les dessinant dans lordre croissant des valeurs de t. On matrialise
ainsi les sections de la surface par des plans horizontaux (les courbes de niveau).
Avec Tik Z, les noms des paramtres vont tre \x pour et \t pour t. On fera varier \t grce
une boucle \foreach, et \x sera le paramtre dune instruction plot. Suivant la surface, il faut
choisir correctement les valeurs de \t et le domaine de \x
4.3.2
Hlice
>
< x=
Tik Z na pas de mcanisme automatique pour mettre en vidence les parties caches. Sur cette
figure, il nest pas facile de le faire, contrairement ce qui peut se passer pour les faces dun cube.
Laxe de lhlice est laxe des abscisses. Dans le sens des variations du paramtre, de 4 4, les
spires vont de larrire vers lavant, en tournant dans le sens inverse des aiguilles dune montre.
On constate les limitations de Tik Z en ce qui concerne les figures dans lespace. Il fournit une
faon simple de reprer prcisment les points dans lespace avec trois coordonnes, ce qui permet
de faire des figures exactes, mais il ne permet pas danalyser les figures obtenues pour obtenir un
rendu analogue la vision humaine.
64
4.3.3
Cylindre x2 + y 2 = 1
(cos(), sin(), t)
\foreach \t in {-1,-0.9,...,1} {
\filldraw plot[domain=0:2*pi]
({cos(\x r)}, {sin(\x r)}, \t);
}
4.3.4
Sphre x2 + y 2 + z 2 = 1
p
Cest une surface de rvolution de reprsentation paramtrique : ( 1
t2 cos(),
t2 sin(), t)
On nobtient pas tout fait laspect visuel habituel dune sphre, mais cela sexplique par le
type de perspective utilis : perspective cavalire (cest--dire projection sur un plan) et non pas
perspective centrale (qui correspond notre mode de vision).
Il y a dautres faons de reprsenter une sphre, mais ici la reprsentation par empilement de
disques horizontaux permet de suggrer le relief et de cacher les parties qui sont derrire.
4.3.5
Parabolode z = x2 + y 2
4.4
Rsum
Tik Z permet dexprimer les coordonnes (x,y,z) dun point de lespace, quil reprsente par
projection sur le plan de dessin.
Le repre correspondant de lespace a une position prdfinie, quon peut modifier par les
options x, y et z, qui fixent les projets des vecteurs de lespace. Pour une reprsentation franaise
standard, on peut choisir
[x= {(-0.353cm,-0.353cm)}, z={(0cm,1cm)}, y={(1cm,0cm)}]
Tik Z nest pas un logiciel de modlisation 3D, et il ne fournit aucune autre fonctionnalit automatique part la trac dun point par (x,y,z). Il faut donc dcider soi-mme des reprsentations
du relief, de la perspective, des parties caches. part les cas simples (faces planes, segments), ce
nest pas forcment possible. Il est alors conseill de se tourner vers des logiciels spcialiss.
Les courbes peuvent tre traces partir de leurs reprsentations paramtriques, en utilisant
lopration plot.
Les surfaces peuvent tre reprsentes par leurs courbes de niveau, en combinant lutilisation
de linstruction \foreach et celle de lopration plot.
Chapitre 5
Reprsentation de donnes
5.1
Notions de base
On parle de reprsentation graphique de donnes, lorsque des informations relatives un certain phnomne et qui sont fournies comme une liste de nombres, sont aches sous forme dun
diagramme significatif.
On va montrer, dans ce chapitre, comment raliser les diagrammes utiliss de faon usuelle dans
ce type de situation : les courbes, les diagrammes barres, les histogrammes, les diagrammes
secteurs.
5.1.1
Dans une classe, un professeur a rendu un devoir not sur 10, en points entiers. Il a compt
combien il y avait de copies pour chaque note. Il dsire faire une reprsentation graphique du
nombre de copies par note.
Note
Nombre de copies
0
0
1
0
2
2
3
0
4
6
5
4
6
7
7
4
8
3
9
0
10
1
Pour tre traites, ces donnes numriques vont tre reprsentes sous forme dune liste de
couples de coordonnes, avec en abscisse la note et en ordonne le nombre des copies ayant obtenu
cette note.
Ainsi en utilisant lopration plot coordinates :
\begin{tikzpicture}
\draw plot coordinates {(0,0) (1,0) (2,2) (3,0)
(4,6) (5,4) (6,7) (7,4) (8,3) (9,0) (10,1)};
\end{tikzpicture}
on va dessiner le diagramme suivant :
65
66
5.1.2
Nous allons maintenant montrer comment amliorer ce diagramme pour rendre comprhensibles
les informations fournies.
Il est ncessaire de placer ces donnes sur une grille pour rendre les valeurs plus facilement
lisibles : \draw (-1,0) grid (11,7);
On peut ensuite tiqueter les abscisses avec des commandes de ce type :
\draw (\x,0) node[below]{\x} en faisant varier \x entre 0 et 10.
ou les ordonnes avec : \draw (-1,\y) node[left]{\y};
Pour cela on peut utiliser la commande \foreach qui permet en deux instructions deectuer
ltiquetage des abscisses et des ordonnes :
\foreach \y in {1,2,...,7} \draw(-1,\y)node[left]{\y};
\foreach \x in {0,1,...,10} \draw(\x,0)node[below]{\x};
67
Dans la commande \foreach, la variable \x va prendre successivement les valeurs dfinies par
{0,1,...,10} cest--dire {0,1,2,3,4,5,6,7,8,9,10}
Les trois points signifient que la liste doit tre prolonge en utilisant comme modles les 2
premires valeurs et jusqu la valeur finale. Pour cela, on ajoute la seconde valeur de la dirence
delle mme avec la premire et ainsi de suite...
Par exemple : {-1,4,...,19} reprsente {-1,4,9,14,19}
7
6
5
4
3
2
1
0
5.1.3
10
On peut placer un texte sur chaque axe pour prciser ce quil reprsente. On utilise pour cela
un nud (node) correctement plac :
\draw (5.5,-0.75) node{Notes};
\draw (-1.75,3.5) node[rotate=90]{Nombre de notes};
On peut aussi marquer les points significatifs de la courbe laide de loption mark aecte
lopration plot :
\draw[thick] plot[mark=*] coordinates {\nombresCopiesParNote};
On obtient alors cette nouvelle version du diagramme :
7
plot[mark=*]
Nombre de notes
6
5
\draw[thick]
4
3
2
1
0
5
6
Notes
10
68
Le marquage des points est fait laide de loption mark= suivie dune des 3 valeurs * + ou x qui
placent respectivement + ou sur chaque point de la liste. Loption mark size=, suivie dune
dimension, permet de modifier la taille de la marque. Par exemple : [mark=*,mark size=5mm]
Loption ball permet aussi de placer une marque comme celle-ci
Dautres marques sont disponibles dans la bibliothque (library) plotmarks. Pour cela, dans le
prambule, lors du chargement de Tik Z il faut ajouter :
\usetikzlibrary{plotmarks} aprs \usepackage{tikz}
Pour un diagramme deectifs, la courbe qui relie les points nest pas trs significative, et ce
nest donc pas une bonne ide de tracer cette courbe.
5.1.4
Par dfaut, lopration plot relie les points donns par une ligne polygonale, mais on peut
remplacer cette ligne par des barres :
horizontales avec loption xcomb ;
verticales avec loption ycomb ;
joignant les points lorigine avec loption polar comb.
Voici trois petits exemples o la mme liste de coordonnes est ache avec les options xcomb,
ycomb et polar comb.
On pourra ainsi comparer les dirents modes dachage :
\draw[very thick] plot coordinates
{(-1.5,1.5)(0.5,2)(1.5,0.5)(-0.5,-0.5)(-2,-1)(1,-1.5)}
xcomb
ycomb
polar comb
6
Nombre de notes
\draw[line width=4pt]
5
4
3
2
1
0
5
6
Notes
10
5.1.5
69
Un histogramme est aussi un diagramme barre, en eet il sut de supprimer les marques du
diagramme prcdent et daugmenter la largeur du trait pour obtenir un histogramme traditionnel :
\draw[line width=8mm,color=blue!50]
plot[ycomb]
Nombre de notes
6
5
4
3
2
1
0
5.1.6
5
6
Notes
10
Dans les exemples prcdents, les eectifs par note ont t donns sous forme dune liste de
coordonnes :
{(0,0)(1,0)(2,2)(3,0)(4,6)(5,4)(6,7)(7,4)(8,3)(9,0)(10,1)}
Cependant les informations statistiques sont souvent disponibles sous forme de fichier de texte
contenant les donnes numriques. Voici par exemple le fichier nombresCopiesParNote.txt
contenant les mme informations que ci-dessus sous un format dirent :
0
1
2
3
4
5
6
7
8
9
10
0
0
2
0
6
4
7
4
3
0
1
70
par la commande :
\draw plot file {nombresCopiesParNote.txt};
Le principal avantage de cette approche est quil est, dans ce cas, facile de changer les donnes dans le fichier texte auxiliaire, sans modifier le code source .tex du document. Une simple
compilation permet alors une mise jour rapide de lachage des donnes.
Un autre avantage concerne le traitement des donnes statistiques de grande taille (des centaines
de points). Dans ce cas linclusion des donnes dans le source serait trop pnible et provoquerait
des risques derreurs.
5.2
5.2.1
On dsire prsenter sur un diagramme, de faon significative, les deux sries statistiques suivantes. Ces donnes reprsentent la production de bl pour les annes 2004 et 2005 (en millions de
tonnes), pour les principaux pays producteurs dans le monde :
Pays
Chine
Inde
tats-Unis
Russie
France
Canada
Australie
Allemagne
Pakistan
Turquie
Ukraine
Royaume-Uni
Iran
Argentine
Production 2004
91,96
72,16
58,74
45,41
39,69
25,86
21,91
25,43
19,50
21,00
17,52
15,47
14,57
15,96
10
20
Production 2005
97,45
68,64
58,74
47,70
36,89
26,78
25,09
23,69
21,61
21,50
18,70
14,86
14,31
12,57
30
40
50
60
70
80
90 Mt
Chine
Inde
tats-Unis
Russie
France
Canada
Australie
Allemagne
Pakistan
Turquie
Ukraine
Royaume-Uni
Iran
Argentine
La solution la plus rapide est de raliser le diagramme laide dun logiciel adapt, comme un
tableur, par exemple. On peut alors exporter la figure et linclure dans le document. Hlas, dans
ce cas, le style de la figure ne sera pas parfaitement assorti la typographie du document, et on
risque de rencontrer des dicults pour la mise lchelle de la figure.
Faire la figure avec Tik Z rclame videment un petit eort qui sera largement valid par la
qualit du rsultat obtenu.
Comme nous lavons vu prcdemment, lopration plot eectue un trac laide de coordonnes de points.
Nous pouvons dcider, par exemple, de reprsenter chaque valeur par une barre horizontale.
Chaque valeur est donc labscisse dun point dont il faut fixer lordonne.
71
Pour cela, nous allons procder, laide du tableur, un pr-traitement des donnes pour
prparer les fichiers textes ncessaires.
On va produire les deux fichiers suivants :
"producBle2004.txt"
"producBle2005.txt"
91.96 14
97.45 14
72.16 13
68.64 13
58.74 12
58.74 12
45.41 11
47.70 11
39.69 10
36.89 10
25.86 9
26.78 9
21.91 8
25.09 8
25.43 7
23.69 7
19.50 6
21.61 6
21.00 5
21.50 5
17.52 4
18.70 4
15.47 3
14.86 3
14.57 2
14.31 2
15.96 1
12.57 1
On a plac les donnes en abscisse et on a numrot les ordonnes par valeurs dcroissantes
pour que les barres horizontales se placent les unes en dessous des autres, par pays. On utilisera
loption xcomb de lopration plot qui permet de relier chaque point laxe des ordonnes par une
barre horizontale, comme on a vu prcdemment.
Attention : en franais le sparateur dcimal est la virgule. On a utilis la fonction de
recherche-remplacement de notre diteur de texte pour mettre des points dcimaux la place des
virgules.
5.2.2
On constate que la figure dborde dans la marge droite de la feuille. En eet la Chine produit
91,96 Mt de bl, or lunit par dfaut de Tik Z est le centimtre et on obtient donc une barre de
presque un mtre.
Il va falloir jouer avec lchelle de la figure pour obtenir un achage de taille correcte en ajoutant
des options lenvironnement tikzpicture.
Un facteur multiplicatif pour les abscisses peut tre dfini la suite de loption xscale=.
Pour que la figure tienne sur la largeur de la feuille, ce facteur doit tre infrieur 0,1 et il sera
ncessaire de faire quelques essais pour parvenir un rsultat satisfaisant.
Comme il y a 14 pays dans la liste, le diagramme fera au moins 14 cm de haut, ce qui est
beaucoup.
On pourra, de mme, rduire cette hauteur en fixant un facteur multiplicatif pour les ordonnes
la suite de loption yscale=.
Voici ce quon obtient avec, par exemple : [xscale=0.09,yscale=0.6]
72
On peut maintenant se proccuper du style des barres. Si on veut une prsentation en histogramme on peut crire par exemple :
\draw[line width=4mm,color=blue!50]
plot[xcomb] file {producBle2004.txt};
5.2.3
73
On va placer des lignes verticales pour faciliter la lecture des informations. On utilise pour cela
une grille dont le pas sera astucieusement choisi :
\draw (0,0) grid[xstep=10,ystep=15] (100,15);
Loption xstep=10 place les lignes verticales tous les 10 millions de tonnes et loption ystep=15
place les lignes horizontale toutes les 15 units, ce qui reprsente en ralit uniquement la ligne du
bas et la ligne du haut.
On a aussi ajout une sous-grille en gris de pas plus petit (5 Mt) :
\draw[gray,very thin] (0,0) grid[xstep=5,ystep=15] (100,15);
Cette commande a t place avant la commande prcdente dans lenvironnement tikzpicture
de faon ce que le reste de la figure soit dessin par dessus.
5.2.4
On utilisera ensuite des commandes \foreach pour graduer les abscisses de la grille de reprage
et pour placer les noms de pays en ordonnes.
74
20
30
40
50
60
70
80
90
Chine
Inde
tats-Unis
Russie
France
Canada
Australie
Allemagne
Pakistan
Turquie
Ukraine
Royaume-Uni
Iran
Argentine
5.2.5
Il est possible de placer la seconde srie statistique (la production de bl 2005) sur le mme
diagramme en utilisant une couleur dirente et en dcalant lgrement les barres des deux sries
verticalement avec yshift. La premire srie est dcale de 2 mm vers le haut avec yshift=2mm,
et la seconde srie est dcale de 2 mm vers le bas avec yshift=-2mm :
\draw [line width=3mm,color=blue!50,yshift=2mm]
plot[xcomb] file {producBle2004.txt};
\draw [line width=3mm,color=green!50,yshift=-2mm]
plot[xcomb] file {producBle2005.txt};
Cest une bonne ide dajouter par la mme occasion une lgende, dans deux nuds correctement placs :
\draw(60,5)node[fill=blue!50,above] {Production 2004};
\draw(60,5)node[fill=green!50,below] {Production 2005};
20
30
40
75
50
60
70
80
90 Mt
Chine
Inde
tats-Unis
Russie
France
Canada
Australie
Allemagne
Pakistan
Production 2004
Production 2005
Turquie
Ukraine
Royaume-Uni
Iran
Argentine
5.3
5.3.1
On dsire prsenter par une courbe lvolution de la production mondiale de riz durant les
annes 1997 2006.
Les donnes sont prsentes dans la table suivante :
Anne
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
Production de riz en Mt
577
583
612
598
603
572
588
615
627
633
640
630
620
610
600
590
580
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
Il semble tout fait naturel de penser procder de la mme faon que dans le paragraphe
prcdent :
76
Hlas, ce nest pas aussi simple : Tik Z supporte assez mal les points dont les coordonnes sont
grandes. Lunit par dfaut du dessin est le centimtre. Avec 2006 on obtient donc une figure de
plus de 20 m de large.
On peut alors esprer utiliser loption scale pour modifier lchelle du dessin. Hlas, a ne
marche pas non plus, car Tik Z utilise aussi pour ses calculs internes des nombres damplitude
limite.
On dcouvre exprimentalement (a ne semble pas clairement document dans le manuel de
lauteur) quil vaut mieux limiter les coordonnes des points des valeurs comprise entre 500 cm et
+500 cm. On peut malgr tout utiliser des nombres plus grands dans les calcul, Tik Z est simplement
incapable dutiliser des points dont les coordonnes sortent de cet intervalle. Il est dans ce cas
impossible de dessiner, mme en rduisant la fentre dachage avec la commande \clip ou en
changeant dchelle avec loption scale.
Si une erreur de compilation survient avec un message de ce type :
! dimension too large.
<recently read> \pgf@yy
on doit penser vrifier que certaines coordonnes ne sont pas trop grandes.
Nos donnes ne sont pas du tout comprises dans cet intervalle. Nous allons donc eectuer un
pr-traitement, laide dun tableur par exemple, pour obtenir des donnes plus adaptes au dessin.
On peut dcider de :
soustraire 1990 aux annes ;
diviser par 10 les nombres de millions de tonnes.
7
57.7
8
58.3
9
61.2
10 59.8
11 60.3
On produit ainsi le fichier : "producRiz.txt"
12 57.2
13 58.8
14 61.5
15 62.7
16 63.3
5.3.2
La commande \draw plot file {producRiz.txt}; permet dobtenir immdiatement un rsultat visible :
5.3.3
77
On va ajouter une grille en faisant varier les abscisses entre 7 (pour 1997) et 16 (pour 2006),
les ordonnes entre 57 (pour un minimum de 57,2) et 64 (pour un maximum de 63,3) :
\draw (7,57) grid (16,64);
Pour faciliter la lecture, on peut quadriller plus finement selon les ordonnes en fixant pour
lopration grid loption [ystep=0.5] :
On constate que la ligne horizontale infrieure du quadrillage est absente. En eet les erreurs
darrondi dans le calcul du quadrillage produisent parfois des problmes de ce type.
Pour corriger ce problme, il sut de faire quelques essais en modifiant progressivement la
valeur de loption ystep qui fixe le pas vertical de la grille du quadrillage. Dans le cas prsent, on
obtient un rsultat satisfaisant en augmentant trs lgrement le pas, avec :
\draw (7,57) grid [ystep=5.00001mm] (16,64);
78
5.3.4
On peut maintenant tiqueter les axes du quadrillage pour faciliter la lecture des donnes qui
sont aches.
On commence par laxe des ordonnes avec la commande \foreach :
\foreach \y in {58,59,...,64}
\draw (7,\y) node[left,scale=0.8]{\y0};
Pour ltiquetage des ordonnes, on remarquera que la variable \y prend les valeurs de 58 64,
mais que le contenu du nud est {\y0}, cest--dire la valeur de \y suivie du caractre 0, ce qui
fera donc : 580, 590, ... jusqu 640.
\foreach \x in {1997,1998,...,2006}
\draw (\x-1990,57) node [below,scale=0.8] {\x};
Pour ltiquetage des abscisses, on utilise les capacits de calcul de la version 2 de PGF. La
variable \x prend les valeurs successives de 1997 2006, mais les nuds contenant les annes
doivent tre placs aux points dabscisses successives 7, 8, ... jusqu 16. On place donc chaque
nud en (\x-1990,57)
Labscisse \x-1990 est la valeur de \x laquelle on soustrait 1990. Ainsi les abscisses seront
bien les valeurs 7, 8, ... jusqu 16 (valeurs infrieures 500).
Cette syntaxe, qui accepte des formules de calcul dans les commandes Tik Z, est rserve
la version 2 de Tik Z & PGF. De plus elle ne fonctionne que si le bibliothque calc a t
charge dans le prambule, dans lequel il faut donc placer \usetikzlibrary{calc} juste aprs
\usepackage{tikz}.
Pour terminer, on va eectuer une petite amlioration esthtique de la figure en accentuant la
visibilit des points significatifs. Pour cela, on ajoute, lopration plot, loption [mark=ball,mark
size=3pt] pour obtenir :
640
630
620
610
600
590
580
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
5.4
5.4.1
79
Diagramme secteurs
Rpartition par catgories socioprofessionnelles
Voici la rpartition, en pourcentage, de la population franaise, par catgories socioprofessionnelles, pour lanne 1999 :
Catgorie
Agriculteurs exploitants
Artisans, commerants, chefs dentreprise
Cadres, professions intellectuelles suprieures
Professions intermdiaires
Employs
Ouvriers
Retraits
Autres sans activit professionnelle
%
2
3
5
9
13
12
18
38
Dans ce cas, il est assez naturel de reprsenter ces donnes laide dun diagramme secteurs.
Le disque complet reprsentera la population franaise. Chaque catgorie socioprofessionnelle
sera associ un secteur dangle proportionnel au pourcentage de la population quelle reprsente.
Employs
Intermdiaires
13%
Ouvriers
9%
12%
Cadres
5%
3%
2%
Retraits
Artisans
Agriculteurs
18%
38%
Inactifs
5.4.2
Dans Tik Z, il ny a pas de commande spcifique prvue pour construire automatiquement des
diagrammes secteurs.
Il va donc falloir construire chaque secteur laide de lopration arc crite sous la forme
suivante :
\draw (X0 , Y0 ) -- ( : R) arc ( :
: R) -- cycle;
(X0 , Y0 )
On constate quil est ncessaire, pour tracer un secteur, de calculer au pralable les angles qui
dfinissent sa forme, langle du secteur, mais aussi langle que fait le rayon du dbut du secteur
avec lhorizontale, puis celui que fait le rayon de la fin du secteur avec lhorizontale :
80
%
2
3
5
9
13
12
18
38
angle en
7,2
10,8
18
32,4
46,8
43,2
64,8
136,8
dbut du secteur
0
7,2
18
36
68,4
115,2
158,4
223,2
fin du secteur
7,2
18
36
68,4
115,2
158,4
223,2
360
5.4.3
Pour dessiner un secteur on utilise son angle de dbut et son angle de fin.
On peut aussi tiqueter ce secteur, par exemple, en notant la catgorie lextrieur et en plaant
le pourcentage lintrieur.
Expliquons en dtail deux exemples :
Agriculteurs (2% secteur de 0 7,2) ;
Employs (13% secteur de 68,4 115,2).
2%
Agriculteurs
\draw[fill=black!2!blue!2] (0,0)--(0:4.5)arc(0:7.2:4.5)--cycle;
\draw (3.6:4) node {2\%};
\draw (3.6:5.6) node {Agriculteurs};
Le secteur est centr lorigine (X0 , Y0 ) = (0, 0), le rayon du cercle est R = 4, 5 cm et le secteur
de = 0 = 7, 2 est colori avec un mlange de 2% de noir et de bleu [fill=black!2!blue!2],
cest--dire proportionnellement au pourcentage de la population quil reprsente. Ainsi le secteur
sera dautant plus sombre que son angle sera grand.
Ltiquette 2% est place 4 cm du centre, lintrieur du secteur, avec un angle de 3,6(la
moiti de 7,2) cest--dire sur la bissectrice de langle du secteur. Ltiquette Agriculteurs est
place, avec le mme angle 5,6 cm du centre, cest--dire lextrieur du secteur.
Employs
13%
\draw[fill=black!13!blue!13]
(0,0)--(68.4:4.5)arc(68.4:115.2:4.5)--cycle;
\draw ({(68.4+ 115.2)/2}:4) node {13\%};
\draw ({(68.4+ 115.2)/2}:5.6) node {Employs};
81
Cette fois-ci, le secteur de, = 68, 4 = 115, 2, est colori avec un mlange de 13% de noir
et de bleu. Il est donc plus sombre que le prcdent.
+
Pour aligner les tiquettes, langle de la bissectrice
a t calcul comme moyenne des
2
angles et qui dlimitent le secteur.
On a utilis pour cela les capacits de calcul de la version 2 de PGF :
ainsi, ({(68.4+115.2)/2}:4) sera valu (91.8:4)
On remarque ici que pour eectuer le calcul, lexpression valuer doit tre place entre accolades {(68.4+115.2)/2}, pour viter les conflits de syntaxe.
En rsum, sur ces deux exemples, on remarque que les trois commandes utilises pour la
construction de chaque secteur colori et tiquet, ont la structure gnrale suivante :
\draw[fill=black!\p!blue!\p]
(0,0) -- (\a:4.5) arc (\a:\b:4.5) -- cycle;
\draw ({(\a+\b)/2}:4) node {\p\%};
\draw ({(\a+\b)/2}:5.6) node {\c};
\a est langle
utilis pour dfinir de dbut du secteur.
\b est langle
utilis pour dfinir de fin du secteur.
\p est le pourcentage de la population reprsente
utilis pour fixer lintensit la couleur ;
utilis pour dfinir le texte ltiquette intrieure.
\c est la catgorie socioprofessionnelle
utilise pour dfinir le texte ltiquette extrieure.
De plus, la taille du diagramme complet est contrle par les valeurs des rayons de trois cercles :
le cercle des secteurs : de rayon R = 4,5 (en centimtres)
le cercle des tiquettes intrieures de pourcentage : de rayon 4
le cercle des tiquettes extrieures de catgorie : de rayon 5,6
5.4.4
Pour dessiner tous les secteurs du diagramme, les commandes ci-dessus doivent tre excutes
en faisant varier les valeurs de \a, \b, \p et \c.
On va utiliser pour cela quatre variables \a/\b/\p/\c dans la commande \foreach et crer la
liste des valeurs que doivent prendre ces variables laide du tableau donn au dbut.
Par exemple, les trois premires lignes du tableau :
Catgorie
Agriculteurs
Artisans
Cadres
%
2
3
5
angle en
7,2
10,8
18
dbut du secteur
0
7,2
18
fin du secteur
7,2
18
36
vont fournir les valeurs respectives des variables \a/\b/\p/\c sous la forme :
{0/7.2/2/Agriculteurs, 7.2/18/3/Artisans, 18/36/5/Cadres,...
On obtiendra ainsi avec une commande \foreach unique le diagramme complet avec tous les
secteurs coloris et tiquets :
\begin{tikzpicture}
\foreach \a/\b/\p/\c in
{
0/7.2/2/Agriculteurs, 7.2/18/3/Artisans,
18/36/5/Cadres, 36/68.4/9/Intermdiaires,
68.4/115.2/13/Employs, 15.2/158.4/12/Ouvriers,
158.4/223.2/18/Retraits, 223.2/360/38/Inactifs
82
}
\end{tikzpicture}
On remarque ci-dessus :
la liste des donnes, entre accolades, aprs \foreach \a/\b/\p/\c in
les trois commandes de construction dun secteur qui sont insres entre des accolades et
forme donc le bloc des instructions excutes chaque tape par la commande \foreach
Et voici le diagramme obtenu :
Employs
Intermdiaires
13%
Ouvriers
9%
12%
Cadres
5%
3%
Artisans
2% Agriculteurs
Retraits
18%
38%
Inactifs
Rpartition par catgorie socioprofessionnelle en France en 1999
5.5
Rsum
Chapitre 6
Graphes : Introduction
6.1
Notions de base
On va montrer ici, laide dexemples simples, comment construire des diagrammes de graphes
constitus de nuds relis par des arcs.
6.1.1
84
Sil ny a pas loption draw, le contour nest pas trac, mais le rectangle a des dimensions non
nulles mme si le contenu est vide comme on peut le constater en comparant les deux exemples
ci-dessous :
\draw (0,0) --(1,1) --(2,0);
(1, 1)
(0, 0)
(2, 0)
(0, 0)
(2, 0)
Dans la figure de gauche, le trait du chemin passe par les trois points de rfrence, il ny a pas
de nud.
Dans celle de droite, le nud, nomm (A), qui a t dessin est visible, bien quil soit vide, car
le trait du chemin sinterrompt la frontire du nud, alors que celle-ci est elle-mme invisible.
6.1.2
La premire mthode (ajouter des nuds sur un chemin) a dj t utilise prcdemment, par
exemple pour annoter les figures de gomtrie.
On peut prciser la position des nuds autour des points du chemin en ajoutant lopration
node des options de position comme above ou below par exemple.
\draw (0,0)node[above]{Paris}--(4,-1)node[below]{Strasbourg};
Paris
Strasbourg
6.1.3
La seconde mthode (relier par un chemin des nuds nomms prcdemment) nous intresse
davantage dans ce chapitre, car elle sera plutt utilise pour construire des diagrammes de graphes.
Dans ce cas, on modifiera le style des traits, laide doptions de la commande \draw, comme
par exemple [<->,>=latex] pour obtenir des flches :
\draw[<->,>=latex] (P) -- (S);
Paris
Strasbourg
6.2
6.2.1
Nous allons maintenant tudier comment construire des graphes constitus de nuds et darcs.
On prsentera les direntes options qui permettent de prciser le style des arcs et des nuds.
Nous avons constat sur lexemple prcdent que larc entre deux nuds est une ligne droite
qui relie les centres des nuds, mais sarrte la priphrie, sur la frontire rectangulaire du nud.
On peut remplacer la liaison -- par une liaison |- (dpart vertical, arrive horizontale) ou -|
(dpart horizontal, arrive verticale) :
85
Lille
Paris
Strasbourg
\draw[->,>=latex] (P) |- (L);
\draw[->,>=latex] (L) -| (S);
\draw[->,>=latex] (S) -| (P);
On peut aussi utiliser une liaison to, suivie dune option de courbure.
Pour cette option de courbure, le plus simple est dindiquer vaguement ce que lon veut, soit une
courbure vers la droite avec [bend right], soit une courbure vers la gauche avec [bend left] :
Lille
Paris
Strasbourg
Limportance de la courbure de loption bend peut tre modifie en prcisant aprs un signe =
un angle en degrs (0correspond la ligne droite) :
90
45
Paris
20
0
\draw[->,>=latex] (P) to[bend left=0] (S);
\draw[->,>=latex] (P) to[bend left=20] (S);
\draw[->,>=latex,dashed] (P) to[bend left] (S);
\draw[->,>=latex] (P) to[bend left=45] (S);
\draw[->,>=latex] (P) to[bend left=90] (S);
Strasbourg
86
Avec lopration de liaison to, on peut aussi tre encore plus prcis et utiliser loption out=
qui dfinit langle polaire en degrs de sortie du nud origine et loption in= pour langle dentre
dans le nud extrmit :
Lille
out=45
Paris
out=0
in=-90
in=0
in=180 Strasbourg
out=230
6.2.2
De nombreuses variations sont possibles pour dfinir les extrmits des arcs. On se reportera
la documentation gnrale pour plus dinformations sur ce sujet. Voici quelques exemples :
On remarquera la ncessit dutiliser des accolades dans le cas o on utilise le crochet. Ceci
vite, lors de la lecture de loption, une erreur de syntaxe.
6.2.3
minimum height=1cm,dashed
ellipse
Strasbourg
Bourges
diamond,aspect=2.5
Dijon
circle,fill=gray
87
6.2.4
Pour les graphes un peu complexes dans lesquels figurent des nuds et des arcs de styles varis,
il est parfois utile de nommer les styles. Plutt que de procder aux copier-coller des options, on
dfinira des styles laide de la commande \tikzstyle (pour PGF version 1) ou de la commande
\tikzset (pour PGF version 2).
On dfinit, par exemple, un style pour ville et le style de Paris sera, par exemple, capitale :
\tikzstyle{ville}=[draw,rectangle,rounded corners=3pt]
\tikzstyle{capitale}=[draw,ellipse,very thick,fill=black!25]
ou avec la commande \tikzset de PGF version 2 :
\tikzset{ville/.style={draw,rectangle,rounded corners=3pt}}
\tikzset{capitale/.style={draw,ellipse,very thick,fill=black!25}}
Il sura alors dcrire dans le code :
\node[capitale] (P)at(0,0){Paris};
\node[ville] (L)at(2,1){Lille}; . . .
On dfinit de mme des styles radial et transversal pour les arcs :
\tikzset{radial/.style={very thick,->,>=stealth}}
\tikzset{transversal/.style={<->,>=stealth,thick,dashed}}
On peut alors eectuer les liaisons :
\draw[radial] (P)--(L);
\draw[transversal] (D)--(B); . . .
Lille
[capitale]
Paris
[tr
ans
ver
sal
]
[radia
l]
[ville]
Strasbourg
Bourges
Dijon
Remarque : Un des avantages principaux de la dfinition de style est de rendre le code beaucoup
plus lisible.
Mais il y a plus important encore, les commandes \tikzstyle ou \tikzset peuvent tre dfinies
lextrieur de lenvironnement {tikzpicture}. Dans ce cas, toutes les figures qui suivent pourront
utiliser les styles dfinis. Ceci permet ainsi duniformiser le style de plusieurs figures distinctes. Par
contre, si les commandes \tikzstyle ou \tikzset sont dfinies lintrieur dun environnement
{tikzpicture}, la porte est limite cet environnement.
88
Attention : La commande \tikzstyle de Tik Z & PGF version 1 est toujours valable dans
la version 2, mais, on lui prfrera la nouvelle commande \tikzset qui permet de dfinir des styles,
mais qui ore aussi des possibilits supplmentaires que lon utilise par ailleurs.
Les dfinitions de style prcdentes peuvent ainsi tre dfinies globalement dans une unique
commande \tikzset.
\tikzset{ville/.style={draw,rectangle,rounded corners=3pt},
capitale/.style={draw,ellipse,very thick,fill=black!25},
radial/.style={very thick,->,>=stealth},
transversal/.style={<->,>=stealth,thick,dashed}}
Les styles ainsi dfinis pourront tre ensuite utiliss dans tous les environnements {tikzpicture}
qui suivent.
6.2.5
On a vu en gomtrie comment placer un nud autour dun point. On montre ici comment
atteindre certains points dancrage dun nud :
Paris
Pour visualiser les dirents points dancrage dun nud, nous allons dabord crer un nud de
grande taille en utilisant les options de dcoration vues dans le paragraphe prcdent pour dfinir
son style :
node N
(N.west)
(N.center)
node N
(N.south)
(N.east)
89
+
(N.south west)
+
(N.south east)
Les noms de tous ces points sont assez comprhensibles. On remarquera en particulier les points
(N.15) et (N.40) qui font rfrence aux points dintersection de la frontire du nud avec la droite
passant par le centre et qui fait un angle de 15(respectivement 40) avec lhorizontale.
6.2.6
Le nom (N) fait rfrence au centre du nud comme (N.center), mais nest cependant pas
identique. Une flche qui pointe vers (N) a son extrmit sur la frontire du nud, tandis quune
flche qui pointe vers (N.center) a son extrmit sur le centre du nud comme on peut le constater
sur la figure suivante qui rsume les dirents cas :
\draw[->]
(etiquetteN) -- (N);
\draw[->] (etiquetteNcenter) -- (N.center);
...
(N.center)
(N)
(N.north west)
(N.north)
(N.north east)
(N.40)
(N.15)
(N.west)
node N
(N.east)
(N.south)
(N.south east)
(N.text)
(N.south west)
(N.base)
90
6.3
6.3.1
Techniques avances
Tracer un arc sans avancer : edge
En plus des oprations de chemin --, |-, -| et to, qui dfinissent la forme des traits de liaison,
on dispose aussi de edge (avec les mmes options que pour lopration to) qui dessine une ligne
jusquau point suivant, mais laisse le crayon lorigine pour les liaisons suivantes, en toile :
\draw[->,>=latex] (P) edge[bend left] (L)
edge[out=0,in=90] (S)
edge (D)
edge[bend right] (B);
[bend left]
Lille
[out=0,in=90]
Paris
[bend right]
Strasbourg
Bourges
Dijon
6.3.2
Aprs spcification dans une commande \draw dun chemin (A)--(B), lopration node qui
suit place, par dfaut, un nud au point (B). Si on ajoute lopration node loption midway le
nud sera plac mi-chemin du point (A) et du point (B).
En plus de loption midway, il existe aussi les options very near start, near start, near end,
very near end pour les placements approximatifs, et loption pos= qui permet une plus grande
prcision.
Le nombre qui suit pos= est le pourcentage du chemin parcourir pour placer le nud : 0 en
(A), 1 en (B), 0.5 au milieu de (A)--(B).
\draw (0,0) node{A} -- (4,2) node{B}
node[midway]{M}
node[near end]{N};
\draw (5,0) node{A} to[bend right]
node[very near start]{R}
node[pos=0.7]{S} (9,2) node{B};
\draw (9,0) node{A} to[bend left]
node[pos=0.5]{M}
node[pos=0.25]{Q} (13,2) node{B};
near end
N
midway
M
A
B
pos=0.7
M
pos=0.5
Q
pos=0.25
Les tiquettes sont crites horizontalement par dfaut, mais comme on le voit sur les exemples
ci-dessous, ajouter loption sloped permet dincliner les tiquettes selon la pente du chemin :
node[sloped,midway]{M}
avec sloped
start
very near
A R
7
0.
=
s
po S
po
s=
Q 0.2
5
B
ay N end
dw
mi M ear
n
M 0.5
s=
o
p
6.3.3
91
Il est aussi possible de modifier linclinaison par dfaut du texte de ltiquette dans lopration
node avec loption rotate= suivie dun angle en degrs :
te
rotate=45
Te
x
Texte
node[draw]{Texte}
node[draw,rotate=45]{Texte}
La rotation du texte se fait partir de la position normale du texte, cest--dire par rapport
lhorizontale.
La rotation peut aussi tre applique sur des nuds placs une position intermdiaire dun
chemin entre deux points conscutifs :
pos=0.25
N
sloped,pos=0.25
rotate=45
R
sloped,pos=0.75
pos=0.75
rotate=45
Si loption sloped est prsente sur lopration node, la rotation du texte se fait partir de la
tangente au chemin la position de ltiquette.
6.3.4
On peut enfin modifier la taille des tiquettes de lopration node avec loption scale= suivie
dun coecient multiplicatif :
scale=1.5
scale=0.75
6.3.5
sloped,scale=1.5
sloped,scale=0.75
Supposons quon ait deux figures, chacune dfinie dans un environnement tikzpicture :
B
J
C
Figure 1 :
Figure 2 :
I
O
O
Dans chaque figure, le point O a pour coordonnes (0, 0). Si on copie le code des deux figures
lintrieur dun mme environnement tikzpicture, elles ne seront plus disjointes :
B
C
OO
92
Le problme est alors le suivant : comment crer dans un mme environnement tikzpicture
un dessin comportant ces deux figures, mais disjointes ? Et, de plus, on aimerait pouvoir recopier
directement le code de chaque figure spare, et ne pas avoir recalculer de nouvelles coordonnes.
Heureusement, il existe un environnement scope qui peut tre vu comme un sous-environnement
tikzpicture auquel on peut aecter des options de dcalage comme loption xshift (suivie dun
dcalage horizontal), loption yshift (suivi dun dcalage vertical) ou loption shift (suivi des
coordonnes dun vecteur de translation).
Par exemple : [xshift=2] [yshift=25mm] ou [shift={(5,2)}]
On remarque, dans ce dernier cas, les accolades autour des coordonnes du vecteur de translation. Ces accolades sont ncessaires ici, pour que la virgule ne soit pas considre comme un
sparateur doptions.
Prenons le code de chacune de nos deux figures et insrons les codes respectifs dans un environnement scope, que nous plaons ensuite dans un environnement tikzpicture. Pour dcaler la
seconde figure, on ajoute son environnement scope loption [shift={(5,-1)}] :
\begin{tikzpicture}
\begin{scope}
% ... Figure 1
\end{scope}
\begin{scope}[shift={(5,-1)}]
% ... Figure 2
\end{scope}
\end{tikzpicture}
J
B
C
I
shift
={(5,
-1)}
Ajoutons loption [rotate=60] au scope qui contient le code de la premire figure, une rotation
de 60 est donc applique cette figure :
rotate=60
B
C
O
shift
={(5,
-1)}
Remarque : la rotation ne concerne que le dessin du chemin. On constate que les textes ont
conserv leur alignement original.
Cest un peu surprenant, mais raisonnable : si vous avez ralis une figure complexe avec de
nombreuses annotations textuelles, vous pouvez ainsi la faire tourner facilement, les annotations
restent lisibles car elles conservent la mme orientation. Il est cependant parfois utile de modifier
lancrage de certains nuds.
Loption [shift={(5,-1)},rotate=-45,scale=1.5] a maintenant t aecte au scope contenant le code de la seconde figure, celle-ci a donc subi une translation, une rotation et sa taille a
t augmente de 50%.
93
C
rotate=60
scale=1.5
J
O
shift
={(5,
-1)}
rotate=-45
Remarque : Attention, leet des options rotate ou scale, quand elles sont appliques un des
environnements scope ou tikzpicture, nest pas le mme que si elles sont appliques lopration
node :
rotate ou scale pour les environnements scope ou tikzpicture :
ce sont les lignes du dessin qui constitue la figure qui subissent les transformations. La figure
tourne, sa taille est modifie, mais les annotations textuelles eectues laide de nuds
gardent leurs tailles et leurs orientations :
rotate ou scale pour lopration node :
ce sont les textes contenus dans le nud qui subissent les transformations. Une fois ces
transformations eectues, il ny a plus de changement des textes, ni en taille, ni en orientation lors dune modifications des options de scope ou tikzpicture. Cependant, il y a
dplacement des textes qui restent lis leurs points dancrage qui ont boug.
6.3.6
text centered
text justified
Le contenu dun nud est en gnral assez court et plac sur une seule ligne. Toutefois, il est
possible de mettre dans un nud des textes plus longs, sur plusieurs lignes, comme par exemple
dans la lgende dune figure.
Loption text width permet de limiter la largeur du contenu textuel du nud et de provoquer
ainsi son achage sur plusieurs lignes :
Voici un
commentaire
bavard qui ne
tiendra pas sur
3 cm
Voici un
commentaire
bavard qui ne
tiendra pas sur
3 cm
Les options text justified ou text centered permettent de prciser le type dalignement
du texte.
En gnral, la largeur dun nud est assez limite. Dans ce cas, les csures provoques par
LATEX, lors de la mise en page, seront parfois gnantes.
Les options text badly ragged ou text badly centered permettent dinterdire les csures
dans le texte du nud :
94
Il est aussi possible dutiliser simultanment les options minimum width, minimum height et
text width dans un mme nud. Ainsi on contrle la taille du rectangle du nud :
minimum height=4cm
minimum width=6cm
text width=3cm
6.3.7
Si on construit un graphe complexe, il peut parfois arriver que certains nuds gnent le passage
dun arc, comme ci-dessous, o les options les plus simples ne permettent pas daller de A B sans
rencontrer les autres nuds.
On veut relier A B par une flche qui contourne les obstacles :
P
B
Q
On va dabord dfinir un nud auxiliaire (n), invisible, lgrement droite et en dessous (2 mm)
du coin sud-est du nud (P) :
\coordinate[shift={(2mm,-2mm)}] (n) at (P.south east);
Pour cela, on a utilis loption [shift={(2mm,-2mm)}], applique lancre (P.south east) du
nud (P).
On trace ensuite :
\draw[->,thick,>=latex,rounded corners=5pt] (A) |- (n) |- (B);
P
|A out=0
B
in=220
. |(n)
Q
R
Une petite marque discrte t ajoute sur la figure pour montrer la position du point
auxiliaire (n) invisible ct du point (P).
On remarque quil tait aussi possible dviter les obstacles avec une flche courbe qui passe
entre Q et R, condition dajuster les angles de sortie et dentre dans les nuds, laide des
options out= et in= de lopration to.
6.4. EXERCICES
6.4
95
Exercices
Dans chaque exercice, on demande de raliser la figure spcifie. Toutes ces figures peuvent tre
construites uniquement en Tik Z avec des nuds et des arcs, en dfinissant videment des styles
laide des direntes options.
La principale dicult, dans ces exercices, est de raliser la figure la plus proche possible du
modle en respectant les positions et les angles.
6.4.1
Voyelle ou Consonne
A
B
Voyelle
Consonne
D
E
Aide
On place les lettres 1 cm les unes des autres et Voyelle et Consonne 3 cm de chaque
ct. On dfinit trois styles :
\tikzstyle{lettre}=[circle,draw,fill=yellow!50,text=blue]
\tikzstyle{type}=[circle,fill=red!25]
\tikzstyle{fleche}=[->,>= stealth,thick]
Il ny a plus qu lier les dirents nuds.
6.4.2
Sud
Nord
Ouest
Aide
On dfinit le style des points cardinaux :
\tikzstyle{point}=[circle,fill=blue!25,minimum width=5em]
Le mot le plus long est Ouest , on fixe donc minimum width=5em, une largeur dau moins 5
fois la largeur de la lette m , pour que tous les cercles soient de mme taille. On dfinit le style
des flches :
96
sc
De
60
on
t
e
Sur le Dos
e
ent
Horizontal
Vertical
Orientations
45
6.4.3
Aide
On dfinit les nuds H : (0,0) , M : (2,0), S : (6,0), D : (6,0) et V : (9,0) avec loption
draw,rotate= et les angles 45, 180, 60, 90, et le style pour les flches :
\tikzstyle{fleche}=[<->,>=stealth,very thick]
Les liens sont assez dlicats tablir en raison des rotations des nuds. La figure a t obtenue
avec les options suivantes :
\draw[fleche] (H.south) to[bend right=90] (S.north);
\draw[fleche] (M.east) to[bend left] (D.west);
\draw[fleche] (D.east) to[out=-60,in=-90] (V.west);
Par exemple, sur la premire ligne on relie (H.south) (S.north) qui est au dessous du nud
(S), car le nud (S) est sur le dos [rotate=180], et son nord est en bas !
6.4.4
Pentagone
Solution
Pentagone de rayon 2 centr sur lorigine :
\tikzstyle{sommet}=[circle,draw,thick,fill=yellow]
\draw (90:2) node[sommet]{}
-- (162:2) node[sommet]{}
-- (234:2) node[sommet]{}
-- (306:2) node[sommet]{}
-- (378:2) node[sommet]{}
-- cycle;
Le premier sommet trac est celui du haut.
6.4. EXERCICES
6.4.5
97
Benzne
C
C
C
H
C
C
H
Solution
Les C et les H sont placs et nomms laide dune commande \foreach
Lorigine est au centre de la molcule, et les atomes sont placs en coordonnes polaires, langle
tant dfini par la variable \a.
Les C sont nomms a, b, c, d et e (noms pris successivement par la variable \n) et les H associs
sont nomms respectivement aa, bb, cc, dd et ee (noms engendrs successivement par \n\n).
% les C et les H
\foreach \n/\a in {a/30,b/90,c/150,d/210,e/270,f/330}
{\node (\n) at (\a:1) {C};
\node (\n\n) at (\a:2) {H};}
% les liaisons C - H
\foreach \n in {a,b,c,d,e,f} \draw [thick] (\n)--(\n\n);
On remarque la possibilit, avec la commande \foreach, de construire des noms de nud par
concatnation de variables et de les rutiliser plus tard.
Il sut ensuite de dessiner les liaisons, simples ou doubles.
% les
\draw
\draw
\draw
% les
\draw
\draw
\draw
98
6.4.6
Arbre gnalogique
Pp
Papy
Mm
Papa
Mamie
Maman
Bibi
Aide
On dfinit le style des liens :
\tikzstyle{lien}=[->,>=stealth,rounded corners=5pt,thick]
On peut ensuite dfinir, avec la commande \tikzstyle, trois styles distincts pour Bibi les
hommes et les femmes, mais si lon dispose de la version 2.00 de Tik Z & PGF, on pourra utiliser
la commande \tikzset pour crer un style paramtrable :
\tikzset{individu/.style={draw,thick,fill=#1!25},
individu/.default={green}}
Ici, loption individu donne un fond fill=green!25 par dfaut, mais elle peut accepter un nom
de couleur qui remplacera le #1 dans la dfinition. Ainsi individu=red donne un fond fill=red!25.
On peut alors placer les nuds, puis les liens :
\node[individu] (B) at (0,0) {Bibi};
\node[individu=blue] (P) at (-3,2) {Papa};
\node[individu=red] (M) at (3,2) {Maman};
...
\draw[lien] (B) |- (-1,1) -| (P);
\draw[lien] (B) |- (1,1) -| (M);
...
On remarque lutilisation de points auxiliaires pour permettre un trac des flches des liens en
zigzag.
6.5
Rsum
On construit des graphes en dfinissant et en nommant des nuds, qui sont des botes de texte,
avec la commande \node, puis on les relie par des arcs avec la commande \draw.
On peut modifier le style, la taille et lorientation des textes crits dans les nuds avec les
options rotate scale.
Les arcs sont tracs laide de la commande \draw, et de ses direntes oprations comme |-,
-| ou to qui permettent de modifier la forme des arcs. Avec lopration edge, il est aussi possible
de tracer des arcs partir dun node, sans avancer.
Les options comme thick, dashed, ->, *-o ou [-( permettent de prciser les styles de trait ou
de flche.
On peut aussi ajouter des annotations sur les arcs avec lopration node et une des options
midway, pos= ou sloped.
Pour la construction de figures complexes, lenvironnement scope permet de dcomposer le
diagramme en sous-figures cres dabord indpendamment, puis assembles ensuite avec des transformations ventuelles en utilisant des options comme shift, rotate ou scale.
Chapitre 7
Graphes : Exemples
On a prsent, dans le chapitre prcdent, les outils de base pour dessiner des graphes. On va
maintenant raliser des graphes complexes pour montrer comment mettre en uvre ces dirents
outils.
7.1
7.1.1
On connat direntes relations entre quadrilatres, comme : un carr est un rectangle, un carr
est un losange.
On veut tracer un graphe exprimant ces direntes relations entre les types de quadrilatre
suivant : paralllogramme, rectangle, carr, losange.
Chaque type de quadrilatre sera reprsent par un nud et chaque relation sera reprsente
par une flche.
Par exemple Carr est un Rectangle : Carr
Rectangle
carrs est strictement inclus dans lensemble des rectangles.
7.1.2
La figure tant assez complexe, on va la construire pas pas en indiquant, chaque tape,
uniquement ce qui dire de ltape prcdente.
On place dabord un nud (node) pour chaque type de quadrilatre et on le nomme laide
de son initiale :
\begin{tikzpicture}
\node (Q) at (0,3) {Quadrilatre};
\node (P) at (0,1.5) {Paralllogramme};
\node (R) at (-3,0) {Rectangle};
\node (L) at (3,0) {Losange};
\node (C) at (0,-1.5) {Carr};
\end{tikzpicture}
99
100
Paralllogramme
1.5
Rectangle
Losange 0
Carr
0
1.5
3
Le placement des nuds a t fait au crayon sur un papier, puis simul en centrant chaque
nud sur des points de coordonnes raisonnables.
Pour rendre la figure plus lisible, on va dfinir un style de nud en crivant chaque nom en
bleu sur fond jaune clair, dans un rectangle encadr de noir.
On dfinit un style quadri ajouter comme option sur chaque nud :
\tikzstyle{quadri}=[rectangle,draw,fill=yellow!50,text=blue]
\node[quadri] (Q) at (0,3) {Quadrilatre}; . . . etc.
Quadrilatre
Paralllogramme
Rectangle
Losange
Carr
On ajoute maintenant les relations est un reliant les nuds par des flches. On dfinit estun,
le style de ces flches, pour les tracer en pointills trs pais, avec une pointe de type latex.
On ajoute ainsi le code suivant notre figure :
\tikzstyle{estun}=[->,dotted,very thick,>=latex]
\draw[estun] (P)--(Q);
\draw[estun] (R)--(Q); \draw[estun] (R)--(P);
\draw[estun] (L)--(Q); \draw[estun] (L)--(P);
\draw[estun] (C)--(Q); \draw[estun] (C)--(P);
\draw[estun] (C)--(L); \draw[estun] (C)--(R);
101
Quadrilatre
Paralllogramme
Rectangle
Losange
Carr
Le rsultat manque de lisibilit, car certaines flches traversent les nuds et dautres se superposent.
vitons dabord les superpositions en remplaant les droites par des courbes. Pour cela le lien
est remplac par un lien to avec une option [bend left] (courb gauche) ou [bend right]
( droite).
Modifions dabord Rectangle-Quadrilatre et Losange-Quadrilatre :
\draw[estun] (R) to[bend left] (Q);
\draw[estun] (L) to[bend right] (Q);
Quadrilatre
Paralllogramme
Rectangle
Losange
Carr
Le nud Carr est mal plac. Pour sparer les flches superposes et rendre les relations
entre quadrilatres visibles, on dplace le nud Carr droite du nud Losange et on
courbe ensuite la flches Carr-Quadrilatre et la flche Carr-Paralllogramme :
\node[quadri] (L) at (4,1.5) {Losange};
\node[quadri] (C) at (7,0) {Carr};
\draw[estun] (C) to[bend right] (Q);
\draw[estun] (C) to[bend left] (P);
Quadrilatre
Paralllogramme
Rectangle
Losange
Carr
102
7.1.3
est un
Quadrilatre
Paralllogramme
Rectangle
Losange
Carr
\begin{tikzpicture}
% dfinition des styles
\tikzstyle{quadri}=[rectangle,draw,fill=yellow!50,text=blue]
\tikzstyle{estun}=[->,>=latex,very thick,dotted]
% les nuds
\node[quadri] (Q) at (0,3) {Quadrilatre};
\node[quadri] (P) at (0,1.5) {Paralllogramme};
\node[quadri] (R) at (-3,0) {Rectangle};
\node[quadri] (L) at (3,0) {Losange};
\node[quadri] (C) at (5,-1.5) {Carr};
% les flches
\draw[estun] (P)--(Q);
\draw[estun] (R)to[bend left](Q); \draw[estun] (R)--(P);
\draw[estun] (L)--(Q.south east); \draw[estun] (L)--(P);
\draw[estun] (C)to[bend right](Q.east); \draw[estun] (C)to[bend left](P);
\draw[estun] (C)--(L.south east); \draw[estun] (C)to[bend left](R);
% la lgende
\draw[estun] (-4.5,2.5)--(-3,2.5)node[midway,above]{est un};
\end{tikzpicture}
103
Lexemple prcdent avait pour but de montrer comment contrler finement la position des
nuds et des arcs. Il est dusage, en gnral, de ne pas reprsenter les flches que lon peut dduire
par transitivit comme ci-dessous :
Quadrilatre
Paralllogramme
Rectangle
Losange
Carr
7.2
7.2.1
Organigramme informatique
Somme des N premiers nombres entiers
Dessiner un organigramme du programme qui calcule la somme des N premiers nombres entiers
avec lalgorithme suivant :
DBUT
Lire un entier positif N
S
0
TANT QUE N > 0 FAIRE
S
S+N
N
N 1
FIN
7.2.2
Acher la somme S
Comme dans lexemple prcdent, on va reprsenter un graphe compos de nuds relis par des
flches. Mais, dans ce cas, il y a plusieurs types de nuds que lon dsire direncier graphiquement.
On va dfinir des styles pour chaque type de nud du diagramme :
debfin pour les repres de Dbut et de Fin : ellipse ;
es pour les Entres-Sorties : rounded corners ;
instruct pour les instructions : rectangle ;
test pour le test : diamond.
\begin{tikzpicture}
\tikzstyle{debutfin}=[ellipse,draw,text=red]
\tikzstyle{instruct}=[rectangle,draw,fill=yellow!50]
\tikzstyle{test}=[diamond, aspect=2.5,thick,
draw=blue,fill=yellow!50,text=blue]
\tikzstyle{es}=[rectangle,draw,rounded corners=4pt,fill=blue!25]
\end{tikzpicture}
On va ensuite placer les lments en leur attribuant un nom significatif :
\node[debutfin] (debut) at (-2,5) {Dbut};
\node[es] (lire) at (-2,4) {Lire un entier positif $N$};
\node[test] (test) at (0,0) {$N>0$ \ ?};
\node[instruct] (init) at (-2,2.5) {$S\leftarrow 0$};
\node[instruct] (plus) at (0,-2.5) {$S\leftarrow S+N$};
\node[instruct] (moins) at (0,-3.5) {$N\leftarrow N-1$};
104
Dbut
2, 5
N >0 ?
Acher la somme S
S
S+N
Fin
4
7.2.3
2
2, 5
3
3, 5
Il sut de reprsenter la squence ordonne des instructions par des flches dont le style suite
est dabord dfini :
\tikzstyle{suite}=[->,>=stealth,thick,rounded corners=4pt]
\draw[suite]
\draw[suite]
\draw[suite]
\draw[suite]
\draw[suite]
\draw[suite]
\draw[suite]
(debut) -- (lire);
(lire) -- (init);
(init) -- (test.north);
(test) -- (plus);
(plus) -- (moins);
(test) -| (afficher);
(afficher) -- (fin);
105
Dbut
N >0 ?
Acher la somme S
S
S+N
Fin
1
(1, 1.5)
Il manque la flche qui boucle entre linstruction N
N 1 et le sommet du losange de test.
N >0 ?
S+N
1
(3, 4.5)
106
7.2.4
Organigramme final
Dbut
Lire un entier positif N
non
N >0 ?
oui
Acher la somme S
S
S+N
Fin
1
7.3
7.3.1
107
Diagrammes syntaxiques
Grammaire des expressions mathmatiques
7.3.2
On connat bien maintenant les mthodes de construction de graphes que nous allons appliquer
ce problme.
On dfinit dirents styles :
element pour les lments syntaxiques (Terme Facteur . . .) ;
terminal pour les lment terminaux de la grammaire (+ . . .) ;
fleche pour les arcs de liaison.
\tikzstyle{element}=[rectangle,draw,fill=white]
\tikzstyle{terminal}=[circle,draw]
\tikzstyle{fleche}=[->,>=stealth,thick,rounded corners=4pt]
On place ensuite les nuds en les alignant correctement, puis les arcs orients pour lier les
dirents nuds.
\begin{tikzpicture}
\node[above right] at (-1,0) {Expression};
\node[element] (T) at (4,0) {Terme};
\node[terminal] (p) at (4,-1) {$+$};
\draw[fleche] (0,0) -- (T); \draw[fleche] (T) -- (8,0);
\draw[fleche] (6,0) |- (p); \draw[fleche] (p) -| (2,0);
\end{tikzpicture}
Expression
Terme
+
Facteur
108
Variable
(
Expression
X
Y
Z
7.3.3
Les quatre figures ont t construites dans des environnements tikzpicture spars. On aimerait maintenant les regrouper en une seule figure.
On pourrait recopier simplement leur code dans un seul environnement tikzpicture :
\begin{tikzpicture}
\node[above right]
\node[above right]
\node[above right]
\node[above right]
\end{tikzpicture}
at
at
at
at
(-1,0)
(-1,0)
(-1,0)
(-1,0)
{Expression}; ...
{Expression}; ...
{Terme}; ...
{Variable}; ...
Malheureusement, dans ce cas, toutes les figures seraient superposes puisque les coordonnes
ont t positionnes lorigine.
On pourrait alors penser modifier les coordonnes de tous les nuds. Cest possible, mais ce
serait long.
On va utiliser une instruction qui permet de dcaler chaque figure vers le bas de 2.5 cm par
rapport la prcdente. En fait, il est plus prcis de dire : dcaler la deuxime figure de 2.5 cm,
la troisime de 5 cm, etc.
109
Le dcalage vertical sobtient avec loption yshift, et pour prciser quelle partie du code
sapplique cette option, on insre le code concern dans un environnement scope. Lorsque Tik Z
applique loption [yshift=-2.5cm] au point (-1,0), il trace en fait le point (-1,-2.5), etc.
On applique ensuite chaque scope les dcalages successifs :
[yshift=-2.5cm], [yshift=-5cm], [yshift=-7.5cm].
\begin{tikzpicture}
\node[above right] at (-1,0) {Expression}; ...
\begin{scope}[yshift=-2.5cm]
\node[above right] at (-1,0) {Expression}; ...
\end{scope}
\begin{scope}[yshift=-5cm]
\node[above right] at (-1,0) {Terme}; ...
\end{scope}
\begin{scope}[yshift=-7.5cm]
\node[above right] at (-1,0) {Variable}; ...
\end{scope}
\end{tikzpicture}
Expression
Terme
+
Terme
Facteur
Facteur
Variable
(
Variable
Expression
X
Y
Z
7.4
7.4.1
Graphe de preuve
Rsolution dune quation : 2x + 3 = 7
On veut expliquer, laide dun schma, la rsolution de lquation du premier degr : 2x+3 = 7
110
2x + 3
2x + 3 3
2x
2x
2
x
S
=
=
=
=
=
=
7
7 3
4
4
2
2
{2}
3
2x
4
/2
/2
x
S = {2}
7.4.2
La figure finale est propose ci-dessus pour montrer lobjectif atteindre. En ralit un diagramme de ce type a t fait la main au brouillon au pralable. On code ensuite successivement
les dirents lments en procdant par essais et erreurs pour obtenir le rsultat voulu.
On va reprsenter notre quation laide de 3 nuds en nommant les membres de gauche (g)
et de droite (d). Ainsi les nuds (g) et (d) pourront tre origines des flches :
\begin{tikzpicture}
\node (g) at (-1.25,4.5) {$2x+3$};
\node at (0,4.5) {$=$};
\node (d) at (1,4.5) {$7$};
\end{tikzpicture}
2x + 3
Un maniaque de la prcision remarquera un lger dfaut dalignement du signe gal par rapport
sa position dans lquation standard : 2x + 3 = 7
Pour corriger a, on peut penser loption [below] que lon ajoute au nud gal :
\node[below] at (0,5) {$=$};
2x + 3
Hlas le rsultat est pire ! Il faut ajuster la valeur de la descente en procdant par essais successifs
jusqu obtenir : [below=-5pt]
2x + 3
On va aussi encadrer les deux membres de lquation en dfinissant le style membre quon
ajoutera ensuite comme option des nuds (g) et (d).
\tikzstyle{membre}= [rectangle,draw,thick,dotted]
\node[membre] (g) at (-1.25,4.5) {$2x+3$};
\node[membre] (d) at (1,4.5) {$7$};
111
=
2x + 3
2x
2x + 3
On peut maintenant complter le diagramme :
S = {2}
Plusieurs ajustements des coordonnes des dirents nuds ont t ncessaires pour obtenir
une disposition satisfaisante et des espacements corrects.
\node[membre] (gg) at (-1,2.5) {$2x$};
\node [below=-5pt] at (0,2.5) {$=$};
\node[membre] (dd) at (1,2.5) {$4$};
\node[membre] (ggg) at (-1,0.5) {$x$};
\node [below=-5pt] (egal) at (0,0.5) {$=$};
\node[membre] (ddd) at (1,0.5) {$2$};
\node[membre] (reponse) at (0,-1) {$S=\{2\}$};
On remarque que lon a nomm (egal) le nud contenant le signe gal de lavant dernire
quation et (reponse) le nud contenant la dernire quation. En eet, on lintention de les relier
par une flche.
7.4.3
On va donc maintenant placer des flches qui indiquent, laide dtiquettes, les oprations
eectuer sur chaque mempbre de lquation. Par exemple :
\draw[->] (g)--(gg) node[midway]{$-3$};
\draw[->] (d)--(dd) node[midway]{$-3$};
2x + 3
3
2x
On a utilis loption [->] de la commande \draw pour obtenir une flche, et loption [midway]
de node pour placer ltiquette mi-chemin de lorigine et de lextrmit.
La dfinition pour les flches et les tiquettes des styles respectifs operation et etiquette
permettent damliorer la pointe des flches et de dessiner des tiquettes sur fond gris clair :
\tikzstyle{operation}=[->,>=latex]
\tikzstyle{etiquette}=[midway,fill=black!20]
\draw[operation] (g)--(gg) node[etiquette]{$-3$};
\draw[operation] (d)--(dd) node[etiquette]{$-3$};
112
3
2x
7.4.4
3
2x
/2
/2
x
S = {2}
\begin{tikzpicture}
\tikzstyle{membre}= [rectangle,draw,thick,dotted]
\tikzstyle{operation}=[->,>=latex]
\tikzstyle{etiquette}=[midway,fill=black!20]
\node[membre] (g) at (-1.25,4.5) {$2x+3$};
\node[below=-5pt] at (0,4.5) {$=$};
\node[membre] (d) at (1,4.5) {$7$};
\node[membre] (gg) at (-1,2.5) {$2x$};
\node [below=-5pt] at (0,2.5) {$=$};
\node[membre] (dd) at (1,2.5) {$4$};
\node[membre] (ggg) at (-1,0.5) {$x$};
\node [below=-5pt] (egal) at (0,0.5) {$=$};
\node[membre] (ddd) at (1,0.5) {$2$};
\node[membre] (reponse) at (0,-1) {$S=\{2\}$};
%flches
\draw[operation] (g)--(gg) node[etiquette]{$-3$};
\draw[operation] (d)--(dd) node[etiquette] {$-3$};
\draw[operation] (gg)--(ggg) node[etiquette]{$/2$};
\draw[operation] (dd)--(ddd) node[etiquette] {$/2$};
\draw[operation] (egal)--(reponse);
\end{tikzpicture}
Mais on peut faire mieux pour que la figure remplace la solution rdige.
On va dabord viter dintercaler les tiquettes 3 ou /2 entre les quations et les placer,
de chaque ct des quations, comme des commentaires on soustrait 3 ou on divise par 2 :
On change la flche de droite en flche courbe en remplaant par to et en prcisant, en option,
langle de sortie du nud, pour lorigine de la flche, et langle dentre dans le nud suivant, pour
lextrmit.
On dcale ensuite les tiquettes, en ajoutant les options left ou right aux nuds correspondants.
113
2x + 3
on soustrait 3
on soustrait 3
2x
on divise par 2
on divise par 2
x
La position des flches nest pas encore tout fait satisfaisante. On va lgrement modifier les
angles dentre et de sortie et prciser les points dentre et de sortie des flches sur les nuds.
De plus, on peut remonter lgrement la ligne de la troisime quation.
2x + 3
7
on soustrait 3
on soustrait 3
2x
4
on divise par 2
on divise par 2
x
7.4.5
Exercice damlioration
titre dexercice, on laissera le lecteur poursuivre lamlioration de la figure pour obtenir, par
exemple, la prsentation suivante :
114
2x + 3
on soustrait 3
on soustrait 3
2x + 3
on simplifie
2x
on divise par 2
on divise par 2
2x
2
4
2
on simplifie
x=2
Solution :
S = {2}
7.5
Rsum
On a vu ici des exemples de graphes complexes et le moyen de les raliser en utilisant les
commandes \node et \draw et leurs direntes options.
On a montr la ncessit de structurer le dessin en plaant dabord les nuds, puis les arcs
partir dun modle fait la main sur papier au pralable.
Mais on a aussi pris conscience quun diagramme se prpare dabord soigneusement avec un
papier et un crayon. Il faut ensuite le modifier par amliorations successives, laide de corrections
du plus en plus fines.
Chapitre 8
Dans cet exemple, la figure est dcorative, mais sa construction exige une grande prcision
mathmatique.
Les cinq anneaux olympiques sont centrs aux points A, B, C, D, et E. Leur rayon et leur
position sont prciss sur le diagramme suivant :
A+
5
2,
3,2
3,2
C
+
3,2
3,2
3,2
3,2
+
B
+
D
115
+E
116
8.1.1
Pays
Europe
Asie
Afrique
Ocanie
Amrique
Couleur
Bleu
Jaune
Noir
Vert
Rouge
Hlas, ce nest pas ce que lon dsire. On a dj vu prcdemment que la dfinition de lintrieur
dune rgion nest pas simple (voir le manuel : interior rules). Dans le cas prsent, loption
appliquer est : even odd rule
On peut viter de tracer les frontires de lanneau en remplaant \draw par :
\fill[lightgray,even odd rule] (0,0) circle(2.5) circle(3);
8.1.2
On va maintenant dfinir et nommer les coordonnes des centres des cercles et tracer les anneaux :
\coordinate (A) at (-6.4,0);
\coordinate (B) at (-3.2,-3.2);
\coordinate (C) at (0,0);
\coordinate (D) at (3.2,-3.2);
\coordinate (E) at (6.4,0);
\fill[blue,even odd rule]
(A)
\fill[yellow,even odd rule] (B)
\fill[black,even odd rule] (C)
\fill[green,even odd rule] (D)
\fill[red,even odd rule]
(E)
circle(2.5)
circle(2.5)
circle(2.5)
circle(2.5)
circle(2.5)
circle(3);
circle(3);
circle(3);
circle(3);
circle(3);
117
On reconnat bien les anneaux olympiques. Hlas, ils ne sont pas entrelacs, mais placs les uns
sur les autres selon leur ordre de cration.
Sur la figure qui suit, on a dessin des secteurs angulaires de 30 qui reprent la zone o lanneau
bleu devrait tre au dessus de lanneau jaune et la zone o lanneau jaune devrait tre au dessus
de lanneau noir.
Donc, une fois les anneaux superposs normalement, il sut de dessiner nouveau, par dessus,
les arcs danneaux correspondants aux zones concernes. Cest--dire les rgions colories en gris :
Par exemple, pour entrelacer les deux anneaux bleu et jaune, on va faire passer un arc danneau
bleu sur le jaune avec la commande :
118
1
(A)
arc(-30:0:2.5)
5
0
++(0:3)
2
30
--++(-30:-0.5)
3
arc(0:-30:3)
origine
2. ++(0:3)
3. arc(0:-30:3)
4. --++(-30:-0.5)
5. arc(-30:0:2.5)
6. --cycle
30
30
30 0
8.1.3
On remarque que le dessin dun anneau est dtermin par son centre et sa couleur. La partie
de recouvrement est dtermine par son centre, sa couleur et son angle de dpart. Il semble donc
naturel den faire des commandes :
\newcommand{\anneau}[2]%
{\fill[#2,even odd rule] (#1) circle (2.5) circle (3);}
#1 est le centre
#2 est la couleur
119
\newcommand{\recouvrement}[3]%
{\fill[#3]
(#1) ++(#2:3)
arc (#2:{#2-30}:3)
-- ++({#2-30}:-0.5)
arc ({#2-30}:#2:2.5) -- cycle;}
#1 est le centre
#2 est la couleur
#3 est langle de dpart du recouvrement
On note lutilisation des calculs dans la dfinition de cette commande. Pour que cet exemple
fonctionne correctement, il ne faut pas oublier dinclure dans le prambule \usetikzlibrary{calc},
aprs avoir charg le package Tik Z (uniquement avec PGF version 2).
On trace alors les anneaux olympiques avec :
\anneau{A}{blue}
\anneau{C}{black}
\anneau{D}{green}
\anneau{B}{yellow}
\anneau{E}{red}
\recouvrement{A}{0}{blue}
\recouvrement{B}{90}{yellow}
\recouvrement{C}{0}{black}
\recouvrement{D}{90}{green}
120
8.2
Diagrammes de Venn
Dans cet exemple, les diagrammes illustrent un sujet mathmatique, mais la construction de
ces diagrammes ne demande pas de prcision particulire.
Les diagrammes de Venn permettent de faire des schmas densembles. On se limitera deux
ensembles dun mme rfrentiel.
On choisit de reprsenter le rfrentiel E par un rectangle et les ensembles A et B par des
cercles concourants dans ce rectangle, mais on pourrait aussi choisir de reprsenter ces ensembles
par dautres formes quelconques.
On va construire les diagrammes classiques qui reprsentent : A, B, A [ B, A \ B, A \ B, B \ A,
A B et leurs complmentaires dans le rfrentiel E.
On proposera deux mthodes direntes pour raliser ces diagrammes.
8.2.1
partir de lorigine O point dintersection bas des deux cercles, on placera les centres A et
B 2 cm de O, respectivement 135 et 45, comme on le voit sur la figure :
\begin{tikzpicture}
\draw (-4,-1) rectangle (4,4);
% E
\draw (0,0) ++(135:2) circle (2); % A
\draw (0,0) ++(45:2) circle (2); % B
\end{tikzpicture}
(4, 4)
++(135:2) B
135
A ++(45:2)
45
O
( 4, 1)
Pour viter davoir rcrire chaque fois les coordonnes des dirents dessins, on propose de
les dfinir comme des commandes LATEX quil sera facile dutiliser ensuite dans les commandes
Tik Z. On gagne ainsi du temps la rdaction, mais surtout, on rend le code plus comprhensible.
On va dfinir les commandes LATEX \E, \A et \B pour reprsenter respectivement les ensembles
E, A et B :
\newcommand{\E}{(-4,-1) rectangle (4,4)}
\newcommand{\A}{(0,0) ++(135:2) circle (2)}
\newcommand{\B}{(0,0) ++(45:2) circle (2)}
Chaque fois que, par exemple, la commande \E sera rencontre dans le code Tik Z, elle sera
remplace par le texte (-4,-1) rectangle (4,4)
Pour linstant, seuls les contours ont t tracs. Il est possible de les colorier en remplaant la
commande \draw par la commande \fill.
8.2.2
121
E
Les couleurs sont un peu violentes ! Mais surtout, lensemble B qui a t dessin en dernier,
cache une partie de lensemble A.
Pour claircir la couleur de E, on va remplacer \fill[cyan] \E; par
\fill[cyan!50] \E; Hlas, cela provoque une erreur de compilation avec le message :
! Missing \encsname inserted.
<to be read again> \penalty
En eet, \fill[cyan] est une abrviation de \fill[color=cyan] qui est permise par la syntaxe
de Tik Z, car cyan est reconnu sans ambigut comme une couleur par la commande \fill.
Par contre cyan!50 provoque une erreur. Dans ce cas, il est obligatoire dcrire
\fill[color=cyan!50].
On peut viter ce type de problme en crivant systmatiquement color= lorsquon dfinit une
couleur.
Pour viter ensuite le recouvrement de lensemble A par lensemble B, on peut dfinir un
coloriage transparent laide de loption opacity.
\fill[color=cyan!50] \E;
\fill[opacity=0.5,red] \A;
\fill[opacity=0.5,blue] \B;
A
8.2.3
Dans cette premire mthode, le coloriage des rgions sera eectu en plusieurs couches. Certaines zones du dessin seront colories plusieurs fois.
Eacer une zone peut tre considr comme la colorier en blanc (la couleur du fond).
A, B et A [ B : \draw et \fill
Le disque de A est simplement colori dans le rectangle de E :
\draw[cyan] \E; \fill[cyan] \A;
Le complmentaire A est obtenu en coloriant le rectangle de E puis en eaant le disque de A,
cest--dire en le coloriant en blanc :
\fill[cyan] \E; \fill[white] \A;
122
A[B
A[B
A \ B, A \ B, B \ A et A B : \clip et scope
Pour lensemble A \ B, il faut colorier uniquement la partie du cercle de A qui est aussi dans
le cercle de B.
Pour cela, on va utiliser la commande \clip qui dfinit une rgion de dcoupage dans laquelle
les commandes suivantes seront eectues. On placera le code dans un environnement scope pour
limiter la porte du dcoupage :
\draw[cyan] \E;
\begin{scope}
\clip \B;
\fill[cyan] \A;
\end{scope}
\fill[cyan] \E;
\begin{scope}
\clip \B;
\fill[white] \A;
\end{scope}
A\B
A\B
123
A\B
A\B
B\A
Enfin : A B = (A [ B) \ (A \ B)
runion et lintersection :
\draw[cyan] \E;
\fill[cyan] \A;
\fill[cyan] \B;
\begin{scope}
\clip \B;
\fill[white] \A;
\end{scope}
B\A
A B
A B
8.2.4
Dans cette seconde mthode, on va dabord dfinir les frontires qui entourent les dirents
ensembles, puis colorier lintrieur des rgions dfinies par ces frontires.
Comme on la dj dit prcdemment, le mode par dfaut de coloriage des rgions est loption
nonzero rule quil est inutile de spcifier, lautre mode quil est possible dfinir est even odd
rule.
La dfinition de ces modes est complique (voir le manuel : interior rules). En particulier, le
mode par dfaut tient compte du sens de parcours de la frontire pour dterminer la rgion
colorier. Or, quand on trace un rectangle ou un cercle, le sens du trac est inconnu. Dans ce cas,
le coloriage donne trs souvent des rsultats inattendus et diciles interprter.
124
Conseil : Ds quune rgion est complique (en plusieurs morceaux ou avec des trous), il est
trs fortement conseill dutiliser even odd rule comme option de coloriage. Il faut donc, dans ce
cas, le spcifier explicitement dans chaque commande \fill.
Dans le mode even odd rule, le coloriage se fait de faon assez naturelle, lextrieur est blanc,
lintrieur est colori. Il sut donc de savoir ce quon appelle intrieur et extrieur :
lespace situ autour de la figure totale est lextrieur
chaque fois quon franchit une frontire :
si on est lextrieur on passe lintrieur
si on est lintrieur on passe lextrieur
Attention : Dans toute cette section even odd rule est explicitement spcifi dans chaque
commande \fill.
Dfinition des frontires : rectangle, circle et arc
Les frontires de E, A et B ont t dfinies prcdemment avec les commandes \E, \A et \B.
Le code
\tikz\draw\E\A\B;
produit :
135
45
135
315
O
135
45
45
O
225
125
135
225
45
315
O
Pour lensemble A B , on na pas dfini de frontire particulire. Cest en eet inutile, car
loption even odd rule permet un coloriage correct en utilisant pour frontire de A B la runion
de celle de A et de B ainsi :
\draw[cyan] \E;
\fill[cyan,even odd rule]
\A \B;
126
8.3
Personnages et dcors
Dans cet exemple, on a choisi dillustrer un problme de mathmatiques rcratives. Les choix
esthtiques sont ceux de lauteur, mais on laisse le lecteur libre de refaire la figure selon sa propre
inspiration.
Cur bris
Vous venez de plaquer lex-amour de votre vie !
Vous labandonnez sur la jete, altitude de ses yeux humides : 4 m et vous ramez irrsistiblement
vers le large, altitude de vos yeux impitoyables : 1 m.
quelle distance du rivage chapperez-vous
son regard dchirant, en disparaissant lhorizon ?
Solution
h
d
R
R
donc c = R et d = R tan()
R+h
On peut prendre R 6365 km, h1 = 0, 001 km, h2 = 0, 004 km.
On a
cos() =
8.3.1
75
(0, 0)
On peut alors remplacer la commande \draw, la commande \shade pour colorier locan et dfinir les couleurs des dgrads, par exemple les options : top color=blue et bottom color=lightgray
8.3.2
127
8.3.3
Les personnages sont de petites silhouettes constitues dune ellipse et dun cercle dessins avec
la commande \fill, et dont les dimensions ont t rendues satisfaisantes avec quelques essais :
\fill (0,0)ellipse(0.12 and 0.25) (0,0.35)circle(0.1);
Quelques essais sont encore ncessaires pour placer le personnage sur le quai laide des options
[rotate=12,shift={(0.8,0.3)}] :
Le second personnage rame dans une barque que nous allons dabord dessiner avant de ly
placer.
\fill (0,0)--(1,0)--(1.1,0.2)--(-0.1,0.1)--cycle;% barque
\draw[line width=2pt] (-0.2,0.4)--(0.5,0.2)--(1.2,0.4);% rames
Il faut bien insister sur le fait que pour arriver placer correctement les dirents lments du
dessin, de nombreux essais ont t ncessaires.
8.3.4
Pour dessiner une figure quelconque, on peut utiliser des courbes de Bzier. Une courbe de
Bzier est dfinie laide de quatre points de contrle :
A, le point de dpart de la courbe ;
S, le point tel que AS est la tangente la courbe en A ;
T , le point tel que BT est la tangente la courbe en B ;
B, le point darrive de la courbe.
128
Une fois les points A et B placs, on peut modifier la courbure en jouant de faon assez intuitive
avec les points S ou T . On montre ici deux dplacements du point T et leet produit sur la courbe :
S
S
T
On peut considrer que plus AS ou BT sont longs, plus la courbe colle la tangente. On
constate donc que les dplacements des points de contrle S est T ont un eet global sur la forme
de la courbe, mais sans en dplacer les extrmits A et B.
!
!
Une autre syntaxe permet de dfinir les vecteurs tangents !
u = AS et !
v = BT en coordonnes
relatives par rapport A et B respectivement :
\draw (A) .. controls +(u) and +(v) .. (B);
On peut maintenant construire des formes complexes constitues darcs de Bzier raccords
bout bout. Si, de plus, on aligne les vecteurs tangents aux extrmits communes, on obtient
facilement des courbes lisses.
Par exemple, on peut commencer dessiner un cur ainsi :
\draw (0,0) ..controls +(0,2) and +(0,2).. (3,0); % arc 1
\draw (3,0) ..controls +(0,-2) and +(0,2).. (0,-4); % arc 2
+(0, 2)
+(0, 2)
1
(3, 0)
(0, 0)
+(0, 2)
2
(0, 4)
+(0, 2)
129
En ajoutant deux arcs supplmentaires, on complte le cur avec une symtrie par rapport
laxe vertical : \draw[fill=red] (0,0) ... cycle;
4
( 3, 0)
(3, 0)
(0, 0)
(0, 4)
8.3.5
Les options de la commande \draw peuvent tre modifies pour changer laspect du cur,
comme par exemple :
\draw [scale=0.25,rotate=45,ball color=blue]
(0,0) .. controls +(0,2) and +(0,3) .. (3,0)
.. controls +(0,-2) and +(0,2) .. (0,-4)
.. controls +(0,2) and +(0,-2) .. (-3,0)
.. controls +(0,2) and +(0,2) .. (0,0);
On va donc crer une commande ayant pour paramtres les options de la commande \draw et
faire appel cette commande plusieurs fois, pour dessiner les curs des endroits dirents avec
des orientations direntes :
% Commande \coeur
\newcommand{\coeur}[1][fill=red] % rouge par dfaut
{\draw [#1] (0,0)
.. controls +(0,2) and +(0,2) .. (3,0)
.. controls +(0,-2) and +(0,2) .. (0,-4)
.. controls +(0,2) and +(0,-2) .. (-3,0)
.. controls +(0,2) and +(0,2) .. (0,0);}
% Dessin
\coeur[shift={(1.3,2)},ball color=red,scale=0.35]
\coeur[shift={(0.3,1.8)},ball color=orange,scale=0.2,rotate=35]
\coeur[shift={(2.2,1.6)},ball color=magenta,scale=0.2,rotate=-20]
\coeur[shift={(1.8,2.5)},ball color=green,scale=0.25,rotate=-25]
\coeur[shift={(2.7,2.1)},ball color=yellow,scale=0.15,rotate=10]
(0, 0)
130
8.3.6
On regroupe enfin tous les lments pour obtenir lillustration de lnonc du problme :
8.3.7
La figure propose dans la solution est une figure gomtrique classique quil sera facile de
raliser titre dexercice.
Pour simplifier les calculs dangles et de coordonnes, dessinons un demi-triangle quilatral :
45
h
R
(0, 0)
= 30 R
5
(5, p )
3
d
(5, 0)
15
\begin{tikzpicture}
% angle alpha
\draw[->,red,>=stealth] (1.5,0) arc (0:30:1.5);
\draw[red] (15:1.5) node[right]{$\alpha$};
% angle droit
\draw (4.5,0)|-(5,0.5);
% triangle
\draw[thick] (0,0)-- node[pos=0.6,above]{$R$} (5,0)
-- node[midway,right]{$d$} (5,{5/sqrt(3)})
-- node[pos=0.1,above]{$h$}
node[pos=0.5,above left]{$R$}(0,0);
% arcs
\draw[blue,thick,dashed] (0:5) arc (0:-15: 5);
\draw[blue,thick] (0:5) arc (0:30: 5);
\draw[blue,thick,dashed] (30:5) arc (30:45: 5);
\end{tikzpicture}
8.4
Rsum
On a vu dans ce chapitre comment dessiner des figures complexes en composant des lignes
lmentaires comme rectangle, circle, arc ou en utilisant des courbes de Bzier. Les courbes
dessines peuvent tre les frontires de rgions quil est possible de colorier avec fill.
Ainsi Tik Z permet non seulement de construire des figures purement gomtriques de grande
prcision, mais il peut aussi permettre de raliser certains travaux dillustration.
Chapitre 9
Complments techniques
9.1
On va tudier ici leet des options de transformation xshift, yshift, shift, scale et rotate,
sur une mme figure, que lon dsire dessiner plusieurs fois sur un diagramme unique, des positions
direntes.
Pour cela, on placera cette figure dans sa position dorigine, en crivant son code dans un
environnement tikzpicture, et en insrant une copie de ce code dans un environnement scope,
contrl par des options de transformation.
Les exemples suivants seront donc tous rdigs sur ce modle :
\begin{tikzpicture}
% code de la Figure
\begin{scope} [<options de transformation>]
% code de la Figure
\end{scope}
\end{tikzpicture}
Voici la petite figure qui va nous servir visualiser les transformations. Elle est inscrite dans
un rectangle de 1,5 cm sur 2 cm de cts :
(1.5, 2)
(0, 1)
(0, 0)
(1, 0)
\begin{tikzpicture}
% code de la Figure
\draw [<->,>=stealth] (1,0) -- (0,0) -- (0,1);
\draw[thick] (1.5,0) -- (0,2) -- (1.5,2) -- cycle;
\end{tikzpicture}
Les transformations dont il est question ici sont appliques au repre dans lequel sont excutes
les commandes Tik Z qui construisent la figure. La figure semble donc subir les mmes transformations, mais il sagit en ralit de changement du repre dans lequel est dessine la figure. Il faut
donc faire attention lordre dans lequel sont eectues ces transformations.
9.1.1
Pour viter de superposer les deux dessins, on va dabord eectuer une translation en utilisant
une des options xshift, yshift ou shift :
131
132
(0, 0)
[yshift=35mm]
[xshift=6cm]
]
)}
mm
5
3
m,
6c
(
{
t=
if
h
[s
(0, 0)
(0, 0)
On remarquera que dans le cas de loption shift=, les coordonnes du vecteur de translation
doivent tre insres entre des accolades. Ceci est ncessaire, car la virgule qui spare les coordonnes ne doit pas tre interprte comme un sparateur doptions.
On va maintenant montrer comment faire tourner ou dilater la figure. Dans tous les cas suivants,
on utilisera au pralable loption xshift=6cm pour viter la superposition des deux figures.
9.1.2
(0, 0)
rotate=45
xshift=6cm
(0, 0)
rotate=30
xshift=6cm
133
Si on le compare : \begin{scope}[rotate=30,xshift=6cm]
cm
=6
t
f
hi
xs
rotate=30
(0, 0)
on constate que lordre des options est important et le rsultat est plus dicile interprter dans
le second cas.
Il est donc plus facile de toujours faire la translation en premier. Le rsultat final est alors plus
facile comprendre.
9.1.3
Le changement dchelle est une homothtie, applique au repre dans lequel sont excutes
les commandes de construction de la figure, ce qui provoque eectivement une modification de la
taille de la figure.
Loption scale= attend pour paramtre le rapport dhomothtie :
scale=0.5
(0, 0)
xshift=6cm
Attention : On conseille, comme dans le cas prcdent, de toujours crire en premier une
option de translation (xshift, yshift ou shift) bien que ce ne soit pas obligatoire.
En eet le centre de lhomothtie est lorigine actuelle, cest--dire lorigine du repre dans
lequel est trace la figure aprs quelle ait subi le xshift=6cm dans lexemple prcdent.
Si on on eectue lhomothtie en premier, le centre est lorigine (0, 0) de dpart. Dans ce cas
la translation suivante est alors eectu dans un repre ayant dj subi lhomothtie et dont les
units ont t multiplies par le rapport dhomothtie.
Voici ce que donne : \begin{scope}[xshift=5cm,scale=1.5]
scale=1.5
(0, 0)
xshift=5cm
Si on le compare : \begin{scope}[scale=1.5,xshift=5cm]
134
(0, 0)
on constate, comme prcdemment avec la rotation, que lordre des options est important et le
rsultat est toujours surprenant dans le second cas.
On a vu, sur les exemples, que le coecient de loption scale (rapport dhomothtie), peut
tre infrieur 1, pour rtrcir, ou suprieur 1, pour dilater la figure. Il peut aussi tre ngatif.
On peut evidemment composer les trois transformations, translation en premier, homothtie et
rotation ensuite dans un ordre quelconque.
Par exemple : \begin{scope}[xshift=6cm,rotate=60,scale=2.25]
scale=2.25
rotate=60
(0, 0)
xshift=6cm
9.1.4
Attention : En premire lecture, vous pouvez ignorer ce paragraphe assez technique. Par
contre si vous avez lintention de faire des transformations prcises sur des figures dans lesquelles
les traits ont des paisseurs direntes, il sera ncessaire de le lire attentivement.
On va considrer une figure de rfrence qui ressemble la prcdente, mais avec des traits
dpaisseurs direntes :
\draw [<->,>=stealth] (1,0) -- (0,0) -- (0,1);
\draw[very thick] (0,2) -- (1.5,2) -- (1.5,0);
\draw[line width=3mm,color=blue!50] (0,2) -- (1.5,0);
Elle est situe gauche et a t reproduite deux fois avec des options scale direntes pour
chaque environnement scope :
[l
in
e
wi
dt
h=
[v
3m
er
m]
y
th
ic
k]
135
[scale=2.5]
[scale=0.5]
[scale=2.5]
[scale=0.5]
Remarque : Pour que cet exemple fonctionne correctement, il ne faut pas oublier dinclure
dans le prambule \usetikzlibrary{calc} aprs avoir charg le package Tik Z (uniquement avec
PGF version 2).
136
9.1.5
Attention : En premire lecture, vous pouvez ignorer ce paragraphe qui est assez technique.
Par contre si vous avez lintention de faire des transformations prcises sur des figures contenant
de nombreuses annotations textuelles, il sera ncessaire de le lire attentivement.
On va considrer une figure de rfrence qui ressemble la prcdente, mais avec des annotations
textuelles varies en taille et en orientation :
\draw [<->,>=stealth] (1,0) -- (0,0) -- (0,1);
\path (1.5,2) node{$\oplus$}
node[left,scale=1.5,rotate=45]{Texte};
no
de
[s Te
ca x
le te
=1
.5
,r
ot
at
e=
45
]
Te
xt
e
[scale=2]
node{$\oplus$}
Te
xt
e
[scale=0.5]
30
te
Te
x
Te
x
te
Text
e
On constate que la forme de la figure a t transforme et que les annotations textuelles sont
correctement places, mais elles ont conserv la mme taille et la mme inclinaison. La plupart
du temps, on veut simplement modifier la taille de la figure et cest donc tout fait satisfaisant,
les annotations gardent une taille assortie celle du texte qui accompagne la figure.
Par contre, si on a lintention de montrer une image rduite ou dilate du diagramme avec
des texte proportionnels correctement inclins, il va falloir ajouter la figure loption [transform
shape] qui va faire subir aux nuds les transformations dfinies dans les environnements {scope} :
On remarque quon a bien obtenu des figures de formes semblables, textes compris. Seule
lpaisseur des trais est reste constante.
9.1.6
137
Exercice
e
t
x
e
T
Solution
\begin{tikzpicture} [scale=3,rotate=90,transform shape]
\draw[<->,>=stealth,very thick] (1,0)--(0,0)--(0,1);
\path (1.5,2) node{$\oplus$}
node[left,scale=1.5,rotate=45]{Texte};
\end{tikzpicture}
9.2
En mathmatiques, la structure darbre est un cas important de la thorie des graphes. Tik Z
propose de nombreuses oprations spcifiques pour la construction des arbres.
Nous allons montrer sur un exemple vu prcdemment sous forme dexercice, comment dessiner
dun arbre gnalogique :
% dfinition des styles
\tikzstyle{lien}=[->,>=stealth,rounded corners=5pt,thick]
\tikzset{individu/.style={draw,thick,fill=#1!25},
individu/.default={green}}
% dfinition de larbre
\begin{tikzpicture}
\node[individu] (B) at (0,0) {Bibi};
\node[individu=blue] (P) at (-3,2) {Papa};
\node[individu=red] (M) at (3,2) {Maman};
\node[individu=blue] (GPP) at (-4.5,4) {Pp};
\node[individu=red] (GMP) at (-1.5,4) {Mm};
\node[individu=blue] (GPM) at (1.5,4) {Papy};
\node[individu=red] (GMM) at (4.5,4) {Mamie};
\draw[lien] (B) |- (-1,1) -| (P);
\draw[lien] (B) |- (1,1) -| (M);
\draw[lien] (P) |- (-4,3) -| (GPP);
\draw[lien] (P) |- (-2,3) -| (GMP);
\draw[lien] (M) |- (2,3) -| (GPM);
\draw[lien] (M) |- (4,3) -| (GMM);
\end{tikzpicture}
138
Papy
Mm
Papa
Mamie
Maman
Bibi
On va dabord rappeler le vocabulaire usuel concernant les arbres.
Ci-dessus, le nud Bibi est la racine de larbre. Ce nud Bibi a deux nuds fils : le
nud Papa et le nud Maman . Les nuds terminaux, ou feuilles de larbre, sont donc les
nuds Pp , Mm , Papy et Mamie .
Remarque : Cet arbre reprsente les anctres de Bibi, donc, du point de vue mathmatique,
Papa et Maman, les parents de Bibi, sont bien les nuds fils du nud Bibi , au sens de la
structure darbre, de mme que Papy et Mamie sont mathmatiquement deux nuds frres
du nud parent Maman .
9.2.1
Si on dfinit un nud avec la commande \node, lopration child permet de lui associer des
fils sous la forme suivante :
\node {Racine} child{ node{Fils1}...} child{ node{Fils2}...};
et ceci de faon rcursive.
On peut donc dfinir lexemple prcdent ainsi :
\begin{tikzpicture}
\node [individu] {Bibi}
child { node [individu=blue]{Papa}
child { node [individu=blue]{Pp} }
child { node [individu=red]{Mm} }
}
child { node [individu=red]{Maman}
child { node [individu=blue]{Papy} }
child { node [individu=red]{Mamie} }
};
\end{tikzpicture}
Bibi
Papa
Pp
Maman
Papy
Mm
Mamie
On remarque que les nuds ont t dfinis avec leur place dans larbre, les arcs ont t automatiquement tracs. Par contre la distance entre les frres est par dfaut toujours la mme et au
second niveau, les nuds se superposent.
9.2.2
139
Une option de lopration child permet de modifier cette distance entre frres : sibling
distance. Par exemple la racine :
\node [individu]{Bibi} [sibling distance=3cm] ...
Bibi
Papa
Pp
Maman
Papy
Mm
Mamie
Papa
Pp
Maman
Mm
Papy
Mamie
Construire un arbre est toujours une tche assez dlicate. En pratique, il est toujours ncessaire
de bien rflchir pour fixer correctement la sibling distance, et cela, tous les niveaux.
Heureusement, il existe des noms de style crs automatiquement lors de la construction dun
arbre et que lon peut dfinir globalement, ce qui vite de le faire sur chaque fils chaque niveau.
Le style level sapplique larbre entier. Les styles level 1, level 2, etc. sappliquent respectivement aux fils de niveau 1, 2, etc.
On obtient exactement le mme arbre en supprimant, sur tous les nuds o on les avait mises,
les options sibling distance, condition de dfinir globalement pour la figure les styles level
1 et level 2 :
\begin{tikzpicture}
[level 1/.style={sibling distance=6cm},
level 2/.style={sibling distance=3cm}]
\node [individu] {Bibi}
child{ node [individu=blue]{Papa}
% etc.
}
child{ node [individu=red]{Maman}
% etc.
};
\end{tikzpicture}
140
9.2.3
On peut aussi prciser la distance entre les niveaux avec loption level distance et modifier
la direction de croissance de larbre avec une des options grow ou grow
grow=down : les fils sont au-dessous du pre, de gauche droite (grow : de droite gauche)
(valeur par dfaut)
grow=up : les fils sont au-dessus du pre, de droite gauche (grow : de gauche droite)
grow=right : les fils sont droite du pre, de bas en haut (grow : de haut en bas)
grow = left : les fils sont gauche du pre, de haut en bas (grow : de bas en haut)
Par exemple : \node{Bibi} [grow=up,level distance=2cm,sibling distance=6cm]
Pp
level 2
sibling distance=3cm
Papy
Mm
level 2
sibling distance=6cm
level 1
Papa
Maman
Bibi
9.2.4
Mamie
level distance=2cm
sibling distance=3cm
Parfois, il peut tre utile de placer des textes sur les arcs. Lopration edge from parent,
place la fin de la dfinition dun fils (child), si elle est suivie de nuds (node), place les textes
de ces nuds sur larc reliant le fils son parent, comme le montre la figure suivante :
Pp
Papy
Mm
Mamie
# Descendant
Papa
Maman
Anctre "
Bibi
Pour bien comprendre la figure obtenue ci-dessus, lire attentivement le code suivant qui a permis
de placer les textes sur les arcs :
\node [individu] {Bibi}
child{ node [individu=blue]{Papa}
child{ node [individu=blue]{Pp}
edge from parent node{$\downarrow$ Descendant}
}
child{node [individu=red]{Mm}}
edge from parent node[below left]{Anctre $\uparrow$}
}
child{ node [individu=red]{Maman}
child{node [individu=blue]{Papy}}
child{node [individu=red]{Mamie}}
};
9.2.5
141
Pour finir on va montrer comment on peut modifier le trac et le style des arcs reliant les nuds.
Loption edge from parent path permet de dfinir larc comme un chemin quelconque. Pour
faire rfrence aux nuds origine et extrmit du chemin, on peut utiliser les commandes respectives \tikzparentnode et \tikzchildnode, par exemple on peut dfinir comme option de
lenvironement tikzpicture :
[edge from parent path={[->,>=stealth,thick]
(\tikzparentnode) to [out=90,in=-90] (\tikzchildnode)}]
Pp
Papy
Mm
Papa
Mamie
Maman
Bibi
Les nombreuses autres oprations sont disponibles dans Tik Z pour amliorer la reprsentation
des arbres, mais elle sortent du cadre de cet ouvrage.
On conseille donc au lecteur qui voudrait dessiner des arbres complexes de se reporter au manuel
de rfrence.
9.3
Parfois on peut avoir envie de montrer du doigt certains points remarquables dune figure.
Pour cela, on veut en gnral crire, en dehors de la figure, dans le texte daccompagnement, des
commentaires relatifs des points particuliers dsigns sur la figure.
Par en dehors de la figure on veut dire, dans la page LATEX, mais en dehors de lenvironnement tikzpicture qui dfinit la figure. On peut aussi dessiner sur la page des liens entre deux
environnements tikzpicture distincts dfinissant deux figures direntes.
Voici, dans le cadre ci-dessous, un exemple contenant du texte LATEX et quatre figures Tik Z
dont deux visibles :
la premire figure est le paralllogramme ;
la seconde est le couple de flches.
Les deux autres figures Tik Z sont invisibles, ce sont des nuds qui reprent simplement les
origines des flches dans le texte LATEX.
Cette figure est un paralllogramme.
142
9.3.1
Pour dfinir le nud (figure), il faut insrer une figure Tik Z entre le mot figure et le mot
est de la premire ligne de texte, et pour rendre la porte de ce nom globale, il faut ajouter
loption [remember picture].
Cette figure \tikz[remember picture]\coordinate(figure); est un
On procde de mme pour le nud (point) :
Ce point \tikz[remember picture]\coordinate(point); est le milieu
Ces deux figures Tik Z ne dessinent rien sur les lignes de texte. Cest pour cela quon les a
appeles figures invisibles.
La figure elle-mme ne pose pas de problme. On a simplement dfini deux points, le centre
(centre) et le point (parallelogramme) le sommet en haut gauche du paralllogramme, et
pour rendre la porte de ces noms globale il faut aussi ajouter loption [remember picture]
\begin{tikzpicture} [remember picture]
\draw (-3,-2)--(3,2) (-2,1)--(2,-1);
\draw[thick] (-3,-2)--(2,-1)--(3,2)--(-2,1)--cycle;
\node (centre) at (0,0){$\bullet$};
\node (parallelogramme) at (-2,1){};
\end{tikzpicture}
9.3.2
Les flches sont ensuite dessines par dessus la figure et le texte dans une nouvelle figure dfinie
avec les deux options [remember picture,overlay]. La premire, remember picture, indique
quil faut utiliser les noms globaux, la seconde, overlay, indique que la figure sera dessine en
surimpression sur la page. Le code suivant peut tre plac nimporte o, condition que ce soit
aprs la dfinition des noms utiliss :
\begin{tikzpicture}[remember picture,overlay]
\draw [->] (figure) to[bend right,thick] (parallelogramme);
\draw [->] (point) to[bend left,thick,dashed] (centre);
\end{tikzpicture}
Attention : La mise en place dune figure avec les options overlay et remember picture
exige au moins deux compilations du texte source.
En gnral, aprs la premire compilation, les parties dfinies avec loption overlay sont mal
places sur la page. Il ne faut pas sen inquiter, le rsultat satisfaisant sera obtenu aprs une autre
compilation.
9.4. RSUM
9.3.3
143
Tik Z fournit un nom de nud spcial current page qui donne accs la page courante sous
la forme dun rectangle qui reprsente la page complte. Cest un rectangle dont chaque sommet
a pour cordonnes un des coins de la page. On peut donc, partir de ce nud, dfinir nimporte
quelle position absolue sur la page courante.
On peut par exemple crire Tik Z au centre de la page avec le code suivant :
\begin{tikzpicture}[remember picture,overlay]
\node [rotate=60,scale=10,text opacity=0.3]
at (current page.center) {Ti\textit{\color{orange}k}Z};
\end{tikzpicture}
Attention : Il est parfois dicile de comprendre quelle est la page courante, car la mise en
page est faite automatiquement par LATEX.
Si le dessin ne se situe pas dans la page prvue, on peut essayer de dplacer le code de la figure
dans le texte source, ou forcer un saut de page laide de la commande \newpage, et compiler
nouveau deux fois.
9.4
Rsum
Tik
Z
On a ajout ici des prcisions sur lutilisation de lenvironnement scope qui permet dinsrer
une sous-figure dans une figure. Leet des options xshift, yshift, shift, scale et rotate sur
lpaisseur des traits et sur les annotations textuelles a t tudi en dtail.
On a prsent, sur un exemple simple, quelques uns des outils de base que Tik Z fournit spcifiquement pour la construction de graphes de type arbre.
On a aussi montr comment il est possible dcrire nimporte o sur une page et crer des liens
entre direntes figures dfinies et le texte du document, laide des options remember picture
et overlay.
Annexe A
La syntaxe de Tik Z
La syntaxe de Tik Z admet de nombreuses constructions spcialises, avec parfois des raccourcis
et des exceptions, et il peut tre dicile de sy retrouver. Pour cela il peut tre bon de classer
les formes syntaxiques en grandes catgories : environnements, commandes, options, oprations de
chemin, coordonnes.
Toutes ces catgories se retrouvent dans lexemple suivant, qui trace un triangle en pointills :
\begin{tikzpicture}
\draw [dashed] (0,0) node[below]{O} -- (1,1) -- (2,0) -- cycle;
\end{tikzpicture}
O
{tikzpicture} est un environnement, \draw est une commande, [dashed] est une option,
(0,0) est un couple de coordonnes, node est une opration de chemin avec une option [below]
et un argument {O}, -- est une opration de chemin avec un argument (1,1) , -- cycle est aussi
une opration de chemin.
A.1
A.2
Les commandes
Ce sont des commandes au sens de LATEX, qui se reconnaissent ce quelles commencent par
le caractre \.
146
A.3
A.3.1
Les coordonnes
Forme gnrale : (...)
Syntaxiquement, la position dun point est indique par une expression de coordonnes, comme
(x,y) (coordonnes cartsiennes) ou (a:r) (coordonnes polaires) ou (nom) (point nomm), ou
(nom.ancre) (ancre dun noeud, comme (n.north)), ou ++(x,y) (coordonnes relatives la position du crayon).
Il y a dautres formes, mais dune manire gnrale, une expression de coordonnes scrit entre
parenthses.
A.3.2
Depuis la version 2 de Tik Z, il est possible dcrire des calculs portant sur les nombres grce au
package pgfmath, qui est charg automatiquement avec Tik Z. Les formules de calcul disponibles
sont celles quon peut utiliser pour le trac de courbes avec lopration plot.
Dans une expression de coordonnes, on peut utiliser ces calculs
! :
p
3 1
({sqrt(3)/2},1/2) dsigne le point de coordonnes
,
2 2
Comme on le voit, si le calcul utilise des parenthses, il faut lencadrer par des accolades.
A.3.3
147
Une autre sorte de calcul est rendue possible avec le chargement de la bibliothque calc.
Contrairement au package \pgfmath, dont le chargement est automatique et implicite, le chargement de calc doit tre explicite, avec \usetikzlibrary{calc}. Nous navons pas parl dans cet
ouvrage des possibilits oertes par calc. Se rfrer au manuel ociel : 12.4 Coordinate Calculations page 113.
Avec cette bibliothque, il est possible de faire des calculs portant directement sur les couples
de coordonnes (par exemple faire la somme de deux couples, faire le produit dun nombre par un
couple). Mais cela introduit une syntaxe spciale : les calculs de ce type doivent tre crits entre
les symboles ($ et $), comme ($ (1,2) + (3,4) $).
En plus de ces calculs avec des oprations mathmatiques, cette syntaxe permet deectuer de
manire interne les calculs lis des constructions gomtriques :
Point de tangence de la tangente mene dun point un cercle ;
Barycentre de plusieurs points, combinaisons linaires ;
Point dintersection de deux segments ;
Image dun point par une similitude directe dont on donne le centre, le rapport et langle ;
Projection orthogonale dun point sur un segment ;
Point une distance donne dun autre sur un segment.
Ces possibilits peuvent tre intressantes pour viter davoir calculer par soi-mme des coordonnes. En ceci, elles rapprochent Tik Z dun logiciel de construction gomtrique comme GeoGebra.
Cependant, la syntaxe de ces instructions est souvent un peu sotrique et manque dunit.
Voici un exemple tir du manuel : ($(1,1)!.5!60:(2,2)$) dsigne limage du point (2,2) par la
similitude directe de centre (1,1), de rapport 0.5 et dangle 60.
Si le seul but est dviter les calculs, on peut aussi le faire en utilisant GeoGebra ou un logiciel
de calcul formel comme logiciel auxiliaire. Mais cela fige le rsultat des calculs et il faut tout
recommencer ds quon veut changer une coordonne quelque part.
A.4
Ce sont les oprations quon peut crire dans les commandes qui dfinissent des chemins ou qui
agissent sur des chemins, comme dans
\draw, \fill, \filldraw, \path, \clip.
(0, 0)
148
Cette opration de positionnement peut tre utilise plusieurs fois dans un mme chemin. Dans
ce cas-l, le chemin peut tre en dirents morceaux non connects. Par exemple :
\draw (0,0) -- (1,1) (2,2) -- (3,3);
Il y a deux positionnements explicites (0, 0) et (2, 2). Le chemin est form de deux segments non
connects. Cette possibilit est utiliser avec prudence, elle rend le code plus dicile interprter.
Il vaudrait mieux crire :
\draw (0,0) -- (1,1);
\draw (2,2) -- (3,3);
Cest un peu plus long crire, mais plus clair et plus modulaire. Cependant, un avantage de
regrouper les oprations en un seul chemin est de pouvoir factoriser les options graphiques en un
seul endroit, dans la commande \draw.
Principales oprations
Les principaux symboles ou noms doprations sont :
--, -|, |-, --cycle
rectangle, circle, arc, grid, plot, --plot,
to
A.5
Les options
149
trace en
ne trace
trace en
trace en
trace en
1 2 3 4 5
rouge
pas
bleu
vert
gris
150
On constate cette occasion que la commande de base pour un chemin est \path, qui se
contente de dfinir un chemin, mais ne le trace pas forcment. Les autres commandes de chemin,
comme \clip, \draw, \fill, ne sont en fait que des raccourcis qui se ramnent de manire
interne la commande \path, en aectant certaines options.
A.6
Tik Z est une extension de LATEX. Bien quil dfinisse ses propres rgles syntaxiques, il peut
quand mme bnficier de certains mcanismes de LATEX, en particulier lutilisation de commandes
vues comme des macros de remplacement de texte.
La manuel ne prcise pas exactement ce qui est possible ou pas, mais lexprience et les exemples
montrent quil est possible de dfinir ses propres commandes comme abrviations pour engendrer
des parties du texte source.
Par exemple, on peut dfinir une commande qui trace un triangle quilatral de ct 1 dont
un sommet est (0, 0) et dont un ct est dirig suivant langle polaire donn en paramtre #1. On
utilise loption rotate pour tourner le triangle dans la direction voulue.
\newcommand{\triangleE}[1]
{\draw[rotate=#1] (0,0) -- (1,0) -- (1/2, {sqrt(3)/2}) -- cycle;}
Si on a plusieurs triangles de ce type tracer, cela vite davoir crire chaque fois le code
dtaill :
\begin{tikzpicture}
\triangleE{10}
\triangleE{90}
\triangleE{200}
\end{tikzpicture}
90
10
200
On voit donc qu lintrieur dun environnement {tikzpicture}, il est possible dutiliser une
commande dfinie ailleurs. Cette commande sera dveloppe sous forme de code source Tik Z et
sera ensuite interprte par Tik Z.
Annexe B
Oubli du ;
Si on voit le message suivant :
! Package tikz Error; Giving up on this path.
Did you forget a semicolon?.
Cest lerreur la plus frquente quand on commence utiliser Tik Z. Toute commande Tik Z se
termine par un point-virgule que lon oublie souvent.
La correction est facile.
152
Ce message assez mystrieux est suivi du numro dune ligne qui contient en gnral une option
de couleur comme par exemple : \draw[red!50]...
Le responsable de lerreur est ici le ! et le raccourci dans la dfinition de la couleur du trac.
On corrige lerreur en vitant le raccourci : \draw[color=red!50]...
Remarque : Dans la dernire version de Tik Z & PGF (la version 2.10) qui est actuellement
fournie avec la distribution TEXlive 2011, ce problme de babel et du : est corrig.
Annexe C
O trouver de laide ?
Un site Internet, cr par les auteurs, accompagne ce livre. On y trouvera le code de tous les
exemples prsents ici, plus quelques complments.
partir du site, il est aussi possible de contacter les auteurs : Toutes les questions, toutes les
critiques et toutes les suggestions sont les bienvenues.
http://math.et.info.free.fr/TikZ/index.html
Livres lire
On trouve sur Internet la documentation de lauteur Till Tantau :
Version la plus rcente de Tik Z & PGF Manual
Ce document au format PDF de 560 pages est une rfrence trs complte, mais reste dun
abord un peu dicile...
Si vous tes plutt dbutant en LATEX, nous vous conseillons en particulier chez lditeur H&K :
EX pour limpatient . La lecture pralable de cet ouvrage remarquable, simple, mais cependant
trs complet vous sera trs utile :
LAT
http://www.h-k.fr/liens/tp/latex_pour_impatient.htm
On trouvera sur le site TEXample.net des exemples proposs par lauteur et concernant de trs
nombreux domaines :
http://www.texample.net/tikz/examples/author/till-tantau/
En franais
Allez sur le site Altermundus :
http://www.altermundus.fr/
153
Annexe D
Glossaire
Ce glossaire contient la liste alphabtique des commandes, oprations et options du langage
Tik Z utilises dans ce livre et brivement commentes.
Pour chaque item il y a une rfrence la documentation de Till Tantau dans laquelle cet item
est dfini.
Cette rfrence est donne sous la forme : Titre de la section, numro de la section et page.
Version la plus rcente de Tik Z & PGF Manual
Conventions dcriture
Dans le langage de Tik Z, le mme mot peut souvent reprsenter des lments syntaxiques
distincts. Pour aider comprendre les nombreux raccourcis et les variations syntaxiques on notera
dans ce glossaire les lments dirents ainsi :
les commandes prfixes par une contre-oblique, ainsi : \draw ;
les coordonnes ou les noms entre parenthses, ainsi : (x,y) (a:r) (P) ;
les options entre crochets, ainsi : [above] ;
les environnements entre accolades, ainsi : {scope} ;
les oprations de chemin et autres mots cls, ainsi : arc west ;
les concepts prsents dans ce livre, ainsi : chemin.
Liste alphabtique
--
[->]
(Graphic Parameters : Arrow Tips 14.3.4 page 134)
Cest une option graphique applicable un trait ou un chemin, pour dessiner une pointe de
flche place lextrmit du trait.
Exemple : \draw [->] (a,b) -- (c,d); Dirents styles de pointe de flche sont possibles,
comme par exemple |->, *-o, |<->>, [-( ou ->>. On peut changer aussi le dessin des pointes
avec lotption >= suivie de latex ou stealth.
(x,y), (x,y,z), (a:r), (P)
(Specifying coordinates 12 page 103)
Tik Z propose plusieurs faons dexprimer les coordonnes des points :
(x,y) coordonnes cartsiennes 2 dimensions ;
(x,y,y) coordonnes cartsiennes 3 dimensions ;
(a:r) coordonnes polaires angle et distance au centre ;
155
156
ANNEXE D. GLOSSAIRE
(P) coordonnes du nud dont le nom (P) a t dfini par exemple avec :
\draw (x,y) node(P){Texte}; ou \coordinate (P) at (x,y);
++(x,y)
(Relative and Incremental Coordinates 12.3 page 112)
++ est le symbole qui prcde des coordonnes pour indiquer que celles-ci doivent tre
considres comme relatives au point prcdent.
\draw (4,3) -- ++(1,3); quivalent \draw (4,3) -- (5,6);
[above], [above left], [above right]
Options de placement des nuds. (Voir : node)
arbre
(Voir : child)
arc
(The Arc Operation 13.8 page 121)
arc est lopration de chemin qui trace un arc sous la forme :
\draw (x,y) arc (d:f:r); partir du point (x,y) un arc de rayon r dont le rayon origine forme un angle de d avec lhorizontale et le rayon extrmit un angle de f avec
lhorizontale.
[below], [below left], [below right]
Options de placement des nuds. (Voir : node)
[bend left], [bend right]
Options pour fixer la courbure dun ligne. (Voir : to)
child
(Making Trees Grow 17 page 183)
child est une opration place la suite dune opration node qui permet de dfinir un fils
du noeud dans une structure darbre.
De nombreuses options sont disponibles pour contrler les dimensions de larbre comme
sibling distance ou level distance ou la direction dans laquelle il se dveloppe comme
grow.
On peut aussi tiqueter les nuds laide de edge from parent et dessiner les arcs entre
les nuds avec edge from parent path .
circle
(The Circle and Ellipse Operations 13.7 page 121)
circle est lopration de chemin qui trace un cercle sous la forme :
\draw (x,y) circle (r); de centre (x,y) et de rayon (r).
On peut aussi tracer une ellipse en donnant les rayons sur les deux axes sous la forme
\draw (x,y) circle (r and s);
[circle]
(Nodes and Their Shapes 15.2 page 147)
Abrviation de [shape=circle], fixe la forme dun nud. (Voir : node)
\clip
(Clipping and Fading : Soft Clipping 14.7 page 142)
\clip... est la commande qui restreint la rgion dachage. Tous les dessins qui suivent
cette commande seront limits cette rgion.
157
[color=]
(Specifying a Color 14.2 page 131)
Option pour dfinir la couleur. (Voir : \draw, \fill, node ou {scope})
.. controls and ..
(The Curve-To Operation 13.3 page 119)
(A) ..controls (U) and (V) .. (B) trace une courbe de Bzier entre le point (A) et
le point (B), les tangentes en (A) et (B) tant respectivement dtermines par les points de
contrle (U) et (V).
[coordinate]
(Nodes and Their Shapes 15.2 page 146)
Abrviation de [shape=coordinate] qui fixe la forme dun nud.
Cest une forme de nud spciale, de dimension nulle, qui permet de considrer le nud
comme un simple point et de le nommer pour un usage ultrieur. (Voir : node)
\coordinate
(Nodes and Their Shapes 15.2 page 146)
\coordinate (A) at (x,y); est la forme abrge de la commande qui permet de nommer
et de placer un nud de dimension nulle :
\path (x,y) coordinate (A); ou
\draw (x,y) node[coordinate] (A){}; ou
\node (A) at (x,y) node[shape=coordinate]{};
--cycle
(The Cycle Operation 13.4 page 119)
--cycle; est lopration de fin de chemin qui consiste relier le dernier point au premier.
(current page)
(Referencing the Current Page Node 15.13.2 page 170)
Nud spcial qui reprsente la page entire. (Voir : [overlay])
[dashed]
(Graphic Parameters : Dash Pattern 14.3.2 page 134)
Option de style pointill en tirets. (Voir : \draw)
[diamond]
(Nodes and Their Shapes 15.2 page 147)
Abrviation de [shape=diamond], fixe la forme dun nud. (Voir : node)
[domain=]
(Plotting a Function 18.5 page 194)
Option pour le domaine de dfinition dune fonction. (Voir : plot)
[dotted]
(Graphic Parameters : Dash Pattern 14.3.2 page 134)
Option de style pointill. (Voir : \draw)
[double]
(Graphic Parameters : Double Lines 14.3.5 page 136)
Option de style de trait double. (Voir : \draw)
\draw
(Drawing a Path 14.3 page 131)
\draw... est la commande qui permet de tracer un chemin.
De nombreuses options permettent de prciser le mode de trac. On peut fixer lpaisseur
des traits avec thin, thick, line width=, le type de trait avec dashed, dotted, double
etc.
east
(Positioning Nodes Using Anchors 15.5.1 page 154)
Option dancrage [anchor=east] dun nud. (Voir : node)
.east
(Positioning Nodes Using Anchors 15.5.1 page 154)
Pour la rfrence (P.east) point dancrage un nud. (Voir : node)
edge from parent
(Edges From the Parent Node 17.6 page 191)
Opration daccs au parent dun nud dans un arbre. (Voir : child )
158
ANNEXE D. GLOSSAIRE
edge from parent path,
(Edges From the Parent Node 17.6 page 191)
Style pour dfinir les arcs dans un arbre. (Voir : child )
[ellipse]
(Nodes and Their Shapes 15.2 page 147)
Abrviation de [shape=ellipse], fixe la forme dun nud. (Voir : node)
[even odd rule]
Rgle de dfinition de rgion. (Voir : \clip ou \fill)
figure
(Voir : {tikzpicture} \tikz)
\fill
(Filling a Path 14.4 page 136)
\fill... est la commande qui colorie la rgion limite par un chemin.
La couleur du coloriage peut tre prcise avec par exemple :
\draw[fill=red]... ou aussi \fill[color=red]... On peut aussi obtenir des eets
de transparence avec loption opacity.
Il existe deux rgles pour dfinir le mode de coloriage des rgions limites par un chemin :
nonzero rule, par dfaut ou even odd rule
\filldraw
(Drawing a Path 14.3 page 131) (Filling a Path 14.4 page 136)
\filldraw.. est la forme abrge de la commande \path[fill,draw].. qui permet de
tracer le chemin et colorier la rgion. (Voir : \fill et \draw)
\foreach
(The Foreach Statement 44 page 389)
La commande \foreach sutilise sous la forme :
\foreach <variables> in <liste> <commandes>
<variables> est une ou plusieurs commandes LATEX spares par des barres. Exemples :
\x ou \x/\y/\z
<liste> est une liste de valeurs spares par des virgules :
Exemples : {2,texte,0.5} ou avec 3 variables {1/un/I,5/cinq/V}
<commandes> sont des instructions qui contiennent la ou les variables et qui seront
excutes de faon rptitive en donnant aux variables successivement les valeurs fournies
dans la liste.
grid
(The Grid Operation 13.9 page 121)
grid est lopration de chemin consistant tracer un quadrillage (grille).
La forme dutilisation la plus simple est \draw (A) grid (B); qui trace une grille dont
(A) et (B) sont deux sommets dune diagonale.
Le pas de la grille peut tre fix avec les options step, xstep ou ystep
[grow=]
(Default Growth Function 17.5.2 page 187)
Option pour fixer la direction de croissance dun arbre. (Voir : child)
[in=], [out=]
Options pour fixer la courbure. (Voir : to)
[text justified]
(Options for the Text in Nodes 15.4 page 152)
Option de mise en forme de texte. (Voir : node)
latex
Style de pointe de flche, [>=latex]. (Voir : ->)
[left], [right]
Options de placement des nuds. (Voir : node)
159
[level distance=]
(Default Growth Function 17.5.2 page 187)
Option pour fixer lcart entre les niveaux dans un arbre. (Voir : child)
[line width=]
(Graphic Parameters : Line Width 14.3.1 page 132)
Option pour fixer lpaisseur du trait. (Voir : \draw)
[mark=]
(Placing Marks on the Plot 18.7 page 198)
Option pour marquer les points dune courbe avec *,+,x. (Voir : plot)
[midway]
(Placing Nodes on a Line or Curve Explicitly 15.8 page 161)
Option pour placer des nuds sur une ligne. (Voir : -- ou to)
[minimum size]
(Creating Nodes 59.2 page 474)
Ou aussi [minimum width] et [minimum height]
Option pour fixer les dimensions dun nud. (Voir : node)
[near end]
(Placing Nodes on a Line or Curve Explicitly 15.8 page 161)
Option pour placer des nuds sur une ligne. (Voir : -- ou to)
[near start]
(Placing Nodes on a Line or Curve Explicitly 15.8 page 161)
Option pour placer des nuds sur une ligne. (Voir : -- ou to)
nud
(Voir : node ou \node)
node
(Nodes and Edges 15 page 146)
node est une opration de chemin qui crit un texte LATEX, plac par dfaut dans une bote
rectangulaire centre la position du crayon.
Son utilisation de base est \draw (a,b) node {texte};
De nombreuses options sont possibles, pour contrler dirents aspects :
la position : above, below, left, right, above left, etc.
La couleur du texte : node [red] {texte}
La couleur du fond : node [fill=red] {texte}
la forme : circle, rectangle, coordinate
\node
(Nodes and Their Shapes 15.2 page 146)
\node (A) at (x,y){Texte}; est la forme abrge de la commande :
\path (x,y) node (A){Texte};
[nonzero rule]
Rgle de dfinition de rgion. (Voir : \clip ou \fill)
north
(Positioning Nodes Using Anchors 15.5.1 page 154)
Option dancrage [anchor=north] dun nud. (Voir : node)
Autres valeurs, [anchor=north west], [anchor=north east]
.north
(Positioning Nodes Using Anchors 15.5.1 page 154)
Pour la rfrence (P.north) point dancrage un nud. (Voir : node)
Autres valeurs, (P.north west), (P.north east)
\newcommand dfinition dune commande. (Voir : LATEX)
On peut aussi utiliser \def en TEX.
[opacity=]
(Transparency 19 page 202)
Option pour dfinir le niveau de transparence. (Voir : \fill)
160
ANNEXE D. GLOSSAIRE
[out=], [in=]
Options pour fixer la courbure dune ligne. (Voir : to)
[overlay]
(Referencing Nodes Outside the Current Pictures 15.13 page 169)
Loption overlay associe loption remember picture permet de tracer, sur une mme
page, des chemins entre des figures dfinies dans des environnements {tikzpicture} distincts.
Il est aussi possible de dessiner nimporte o sur la page en utilisant le nud spcial
(current page) qui reprsente le rectangle de la feuille.
\path
(Actions on Paths 14 page 130)
\path... est la commande de base de Tik Z qui dfinit un chemin.
Toutes les autres commandes en sont des cas particuliers comme :
\clip..., \draw..., \fill..., \filldraw..., \shade..., etc.
plot
(Plots of Functions 18 page 193)
plot est une opration de chemin qui trace la courbe reprsentative dune fonction donne
par une formule.
On peut prciser le domaine de dfinition de la fonction avec loption [domain=] et le nombre
de points calculer avec loption [samples=].
Par exemple : plot[domain=-2:2,samples=50] (\x,2*\x+3)
plot coordinates
(Plotting Points Given Inline 18.3 page 194)
plot coordinates est une opration de chemin qui trace une reprsentation graphique
dune liste de points.
Par dfaut, une courbe reliant les points est dessine. On peut aussi tracer des barres,
horizontales avec loption [xcomb], verticales avec [ycomb] ou partir de lorigine avec
[polar comb].
On peut aussi marquer les points de la courbe avec loption [mark=].
La liste des coordonnes de tous les points acher est dfinie en ligne, entre accolades.
Par exemple : plot[ycomb] coordinates {(1,2) (3,5) (5,1)}
plot file
(Plotting Points Read From an External File 18.4 page 194)
plot file est une opration de chemin qui trace une reprsentation graphique dune liste
de points. (Voir : plot coordinates)
La liste des coordonnes de tous les points acher est dfinie dans un fichier texte dont
le nom est donn entre accolades.
Par exemple : plot[mark=*] file {data.txt}
plot function
(Plotting a Function Using Gnuplot 18.6 page 196)
plot function est une opration de chemin qui trace la courbe reprsentative dune fonction donne par une formule Gnuplot.
La formule est transmise Gnuplot qui va calculer les coordonnes de tous les points
acher. (Voir : plot)
On peut prciser le domaine de dfinition de la fonction avec loption [domain=] et le nombre
de points calculer avec loption [samples=].
Par exemple :
plot[domain=-pi:pi,samples=50] function {x+sin(x)}
polar comb
(Smooth Plots, Sharp Plots, and Comb Plots 18.8 page 199)
Option pour tracer des barres partir de lorigine. (Voir : plot)
[pos=]
(Placing Nodes on a Line or Curve Explicitly 15.8 page 161)
Option pour placer des nuds sur une ligne. (Voir : -- ou to)
161
rectangle
(The Rectangle Operation 13.5 page 120)
rectangle est lopration de chemin consistant tracer un rectangle.
La forme dutilisation la plus simple est \draw (A) rectangle (B); qui trace un rectangle
dont (A) et (B) sont deux sommets dune diagonale.
[rectangle]
(Nodes and Their Shapes 15.2 page 147)
Abrviation de [shape=rectangle] fixe la forme dun nud. (Voir : node)
rgion
(Interior Rules 14.4.2 page 138)
Une rgion est limite par un chemin. (Voir : \clip ou \fill)
[remember picture] (Referencing a Node in a Dierent Picture 15.13.1 page 169)
Option qui mmorise les noms des nuds dfinis dans des environnements {tikzpicture}
distincts. (Voir : [overlay])
[right], [left]
Option de placement des nuds. (Voir : node)
[rotate=]
(Coordinate Transformations 21.3 page 218)
Option pour eectuer une rotation. (Voir : node ou {scope})
[rounded corners=]
(Rounding Corners 13.6 page 120)
Option qui arrondit les angles des lignes. (Voir : \draw ou node)
[scale=]
(Coordinate Transformations 21.3 page 218)
Option pour eectuer un changement dchelle. (Voir : node ou {scope})
{scope}
(Using Scopes to Structure a Picture 11.3 page 99)
Lenvironnement {scope} permet de dessiner une sous-figure et de lui appliquer globalement
direntes transformations ou styles, comme : shift, scale, rotate, etc.
[samples=]
(Plotting a Function 18.5 page 194)
Option qui fixe le nombre des points calculer pour une fonction. (Voir : plot)
\shade
(Shading a Path 14.5 page 139)
\shade... est la forme abrge de la commande \path[shade]... qui permet de colorier
la rgion dfinie par un chemin avec des eets de dgrads de couleurs.
Direntes options permettent de prciser le dgrad comme shading ou les couleurs comme
top color ou bottom color.
[shift=], [xshift=], [yshift=] (Coordinate Transformations 21.3 page 218)
Option pour eectuer une translation. (Voir : node ou {scope})
[sibling distance=]
(Default Growth Function 17.5.2 page 187)
Option pour fixer lcart entre fils dans un arbre. (Voir : child)
[sloped]
(Placing Nodes on a Line or Curve Explicitly 15.8 page 161)
Option pour aligner des nuds sur une ligne. (Voir : -- ou to)
[smooth]
(Smooth Plots, Sharp Plots, and Comb Plots 18.8 page 199)
Option qui provoque le lissage dune courbe. (Voir : plot)
south
(Positioning Nodes Using Anchors 15.5.1 page 154)
Option dancrage [anchor=south] dun nud. (Voir : node)
Autres valeurs, [anchor=south west], [anchor=south east]
162
ANNEXE D. GLOSSAIRE
.south
(Positioning Nodes Using Anchors 15.5.1 page 154)
Pour la rfrence (P.south) point dancrage un nud. (Voir : node)
Autres valeurs, (P.south west), (P.south east)
stealth
Style de pointe de flche, [>=stealth]. (Voir : ->)
[tension=]
(Smooth Plots, Sharp Plots, and Comb Plots 18.8 page 199)
Option qui contrle le niveau de lissage dune courbe. (Voir : plot)
[text width=]
(Options for the Text in Nodes 15.4 page 152)
Option pour fixer mise en forme du texte dun nud. (Voir : node)
[thick], [very thick]
(Graphic Parameters : Line Width 14.3.1 page 132)
Option pour fixer lpaisseur du trait. (Voir : \draw)
[thin], [very thin]
(Graphic Parameters : Line Width 14.3.1 page 132)
Options pour fixer lpaisseur du trait. (Voir : \draw)
Tik Z
(Loading the Package and the libraries 11.1 page 96)
Pour utiliser Tik Z, on doit charger le package tikz :
\usepackage{tikz}
Si on veut de plus utiliser des bibliothques additionnelles, il faut les charger explicitement,
par exemple :
\usetikzlibrary{arrows,calc}
Ne pas confondre le package tikz avec \tikz, qui est une commande quivalente un
environnement {tikzpicture} (contenant un code bref).
\tikz
(Creating a Picture Using a Command 11.2.2 page 98)
Commande brve pour la cration de figure Tik Z. (Voir : {tikzpicture})
{tikzpicture}
(Creating a Picture Using an Environment 11.2.1 page 96)
On crit les commandes de dessin dans lenvironnement {tikzpicture}
\begin{tikzpicture} ... \end{tikzpicture}
Pour les dessins dont le code tient en un paragraphe, on peut utiliser la commande brve :
\tikz \draw (0,0) -- (1,1);
\tikzset
(How Graphic Options Are Processed 11.4.1 page 100)
\tikzset est une commande Tik Z qui permet de dfinir des options, des styles ou des cls.
Par exemple :
\tikzset{fondRouge/.style={fill=red}}
\tikzstyle
(How Graphic Options Are Processed 11.4.1 page 100)
Cest une ancienne commande de la version 1.00 de Tik Z & PGF utilise pour dfinir une
option de style. Par exemple :
\tikzstyle{fondRouge}=[fill=red]
On peut toujours utiliser cette commande dans la version 2.00, mais maintenant, on utilisera
plutt la commande \tikset
to
163
[top color=], [bottom color=]
(Choosing a Shading Color 14.5.2 page 140)
Options pour fixer les couleurs de dgrads. (Voir : \shade)
west
(Positioning Nodes Using Anchors 15.5.1 page 154)
Option dancrage [anchor=west] dun nud. (Voir : node)
.west
(Positioning Nodes Using Anchors 15.5.1 page 154)
Pour la rfrence (P.west) point dancrage un nud. (Voir : node)
[xcomb]
(Smooth Plots, Sharp Plots, and Comb Plots 18.8 page 199)
Option pour tracer des barres horizontales. (Voir : plot)
[x=]
(The XY- and XYZ-Coordinate Systems 21.2 page 217)
Option qui permet de changer le vecteur unit des X, qui vaut par dfaut : [x={(1cm,0pt)}]
par rapport un repre absolu.
[y=]
(The XY- and XYZ-Coordinate Systems 21.2 page 217)
Option qui permet de changer le vecteur unit des Y, qui vaut par dfaut : [y={(0pt,1cm)}]
par rapport un repre absolu.
[ycomb]
(Smooth Plots, Sharp Plots, and Comb Plots 18.8 page 199)
Option pour tracer des barres verticales. (Voir : plot)
[z=]
(The XY- and XYZ-Coordinate Systems 21.2 page 217)
Option qui permet de changer le vecteur unit des Z, qui vaut par dfaut :
[z={(-0.3535cm,-0.3535cm)}] par rapport un repre absolu.
En eet, les points de lespace sont eectivement achs dans un repre deux dimensions
!
1 !
1 !
p
qui vrifie par dfaut : k = 2p
i
j.
2
2 2
Pour obtenir le repre mathmatique franais usuel on peut dfinir :
[x={(-0.353cm,-0.353cm)}, z={(0cm,1cm)}, y={(1cm,0cm)}]
n
n