summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/tkz/tkz-euclide/doc/latex/TKZdoc-euclide-presentation.tex
blob: 44aa4cd0078a203eed6b50223a961b5bce92be79 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
\section{Presentation and Overview}

\begin{tkzexample}[latex=5cm,small]
  \begin{tikzpicture}[scale=.25]
  \tkzDefPoints{00/0/A,12/0/B,6/12*sind(60)/C}
  \foreach \density in {20,30,...,240}{%
    \tkzDrawPolygon[fill=teal!\density](A,B,C)
    \pgfnodealias{X}{A}
    \tkzDefPointWith[linear,K=.15](A,B) \tkzGetPoint{A}
    \tkzDefPointWith[linear,K=.15](B,C) \tkzGetPoint{B}
    \tkzDefPointWith[linear,K=.15](C,X) \tkzGetPoint{C}}
  \end{tikzpicture}
\end{tkzexample}

\vspace*{12pt}

\subsection{Why \tkzname{\tkznameofpack}? }
My initial goal was to provide other mathematics teachers and myself with a tool to quickly create Euclidean geometry figures without investing too much effort in learning a new programming language.
Of course, \tkzname{\tkznameofpack}  is for math teachers who use \LATEX\ and  makes it possible to easily create correct  drawings by means of \LATEX.

It appeared that the simplest method was to reproduce the one used to obtain construction by hand. 
To describe a construction, you must, of course, define the objects but also the actions that you perform. It seemed to me that syntax close to the language of mathematicians and their students would be more easily understandable; moreover, it also seemed to me that this syntax should be close to that of \LaTeX. 
The objects, of course, are points, segments, lines, triangles, polygons and circles. As for actions, I considered five to be sufficient, namely: define, create, draw, mark and label.

The syntax is perhaps too verbose but it is, I believe, easily accessible.
As a result, the students like teachers were able to easily access this tool.

\subsection{\tkzname{\tkznameofpack}  vs \tkzname{\TIKZ } }

I love programming with  \TIKZ,  and without  \TIKZ\  I would never have had the idea to create \tkzname{\tkznameofpack}  but never forget that behind it there is  \TIKZ\  and that it is always possible to insert code from  \TIKZ. \tkzname{\tkznameofpack}  doesn't prevent you from using  \TIKZ.
That said, I don't think mixing syntax is a good thing. 

There is no need to compare \TIKZ\  and \tkzname{\tkznameofpack}.  The latter is not addressed to the same audience as  \TIKZ. The first one allows you to do a lot of things, the second one only does geometry drawings. The first one can do everything the second one does, but the second one will more easily do what you want.

\subsection{How it works}

\subsubsection{Example Part I: gold triangle}
\begin{center}
\begin{tikzpicture}
  
\tkzDefPoint(0,0){C} % possible \tkzDefPoint[label=below:$C$](0,0){C} but don't do this
\tkzDefPoint(2,6){B}
% We get D and E with a rotation
\tkzDefPointBy[rotation= center B angle 36](C) \tkzGetPoint{D} 
\tkzDefPointBy[rotation= center B angle 72](C) \tkzGetPoint{E} 
% Toget A we use an intersection of lines
\tkzInterLL(B,E)(C,D) \tkzGetPoint{A}
\tkzInterLL(C,E)(B,D) \tkzGetPoint{H}
% drawing
\tkzDrawArc[delta=10](B,C)(E)
\tkzDrawPolygon(C,B,D)
\tkzDrawSegments(D,A B,A C,E)
% angles 
\tkzMarkAngles(C,B,D E,A,D) %this is to draw the arcs
\tkzLabelAngles[pos=1.5](C,B,D E,A,D){$\alpha$}
\tkzMarkRightAngle(B,H,C)
\tkzDrawPoints(A,...,E)
% Label only now
\tkzLabelPoints[below left](C,A)
\tkzLabelPoints[below right](D)
\tkzLabelPoints[above](B,E)
\end{tikzpicture}
\end{center}

Let's analyze the figure
\begin{enumerate}
  \item $CBD$ and $DBE$ are isosceles triangles; 
  
  \item $BC=BE$ and $(BD)$ is a bisector of the angle $CBE$;
  
  \item From this we deduce that the $CBD$ and $DBE$ angles are equal and have the same measure $\alpha$
   \[\widehat{BAC} +\widehat{ABC} + \widehat{BCA}=180^\circ \ \text{in the triangle}\ BAC \]
   \[3\alpha + \widehat{BCA}=180^\circ\  \text{in the triangle}\ CBD\]
   then 
     \[\alpha + 2\widehat{BCA}=180^\circ \] 
   or 
     \[\widehat{BCA}=90^\circ -\alpha/2 \] 
    
    \item  Finally   \[\widehat{CBD}=\alpha=36^\circ \] 
     the triangle $CBD$ is a "gold" triangle.
\end{enumerate}

\vspace*{24pt}
How construct a gold triangle or an angle of $36^\circ$?

\begin{enumerate}
  \item We place the fixed points $C$ and $D$. |\tkzDefPoint(0,0){C}| and |\tkzDefPoint(4,0){D}|;
  \item  We construct a square $CDef$ and we construct the midpoint $m$ of $[Cf]$;
  
  We can do all of this with a compass and a rule;
  \item Then we trace an arc with center $m$ through $e$. This arc cross the line $(Cf)$ at $n$;
  \item Now the two arcs with center $C$ and $D$ and radius $Cn$ define the point $B$.
\end{enumerate}


\begin{minipage}{.4\textwidth}
  \begin{tikzpicture}
  \tkzDefPoint(0,0){C}
  \tkzDefPoint(4,0){D}
  \tkzDefSquare(C,D)                     
  \tkzGetPoints{e}{f}
  \tkzDefMidPoint(C,f)                   
  \tkzGetPoint{m}
  \tkzInterLC(C,f)(m,e)                  
  \tkzGetSecondPoint{n}
  \tkzInterCC[with nodes](C,C,n)(D,C,n) 
  \tkzGetFirstPoint{B}
  \tkzDrawSegment[brown,dashed](f,n)
  \pgfinterruptboundingbox 
  \tkzDrawPolygon[brown,dashed](C,D,e,f)
  \tkzDrawArc[brown,dashed](m,e)(n)
  \tkzCompass[brown,dashed,delta=20](C,B)
  \tkzCompass[brown,dashed,delta=20](D,B)
  \endpgfinterruptboundingbox 
  \tkzDrawPoints(C,D,B)
  \tkzDrawPolygon(B,...,D)
  \end{tikzpicture}
\end{minipage}
\begin{minipage}{.6\textwidth}
  \begin{tkzexample}[code only,small]
  \begin{tikzpicture}
  \tkzDefPoint(0,0){C}
  \tkzDefPoint(4,0){D}
  \tkzDefSquare(C,D)                     
  \tkzGetPoints{e}{f}
  \tkzDefMidPoint(C,f)                   
  \tkzGetPoint{m}
  \tkzInterLC(C,f)(m,e)                  
  \tkzGetSecondPoint{n}
  \tkzInterCC[with nodes](C,C,n)(D,C,n) 
  \tkzGetFirstPoint{B}
  \tkzDrawSegment[brown,dashed](f,n)
  \pgfinterruptboundingbox 
  \tkzDrawPolygon[brown,dashed](C,D,e,f)
  \tkzDrawArc[brown,dashed](m,e)(n)
  \tkzCompass[brown,dashed,delta=20](C,B)
  \tkzCompass[brown,dashed,delta=20](D,B)
  \endpgfinterruptboundingbox 
  \tkzDrawPoints(C,D,B)
  \tkzDrawPolygon(B,...,D)
  \end{tikzpicture}
  \end{tkzexample}
\end{minipage}


After building the golden triangle $BCD$, we build the point $A$ by noticing that $BD=DA$. Then we get the point $E$ and finally the point $F$. This is done with already intersections of defined objects  (line and circle).
 

\begin{center}
  \begin{tikzpicture}
    \tkzDefPoint(0,0){C}
    \tkzDefPoint(4,0){D}
    \tkzDefSquare(C,D)                     
    \tkzGetPoints{e}{f}
    \tkzDefMidPoint(C,f)                   
    \tkzGetPoint{m}
    \tkzInterLC(C,f)(m,e)                  
    \tkzGetSecondPoint{n}
    \tkzInterCC[with nodes](C,C,n)(D,C,n) 
    \tkzGetFirstPoint{B}
    \tkzInterLC(C,D)(D,B) \tkzGetSecondPoint{A}
    \tkzInterLC(B,A)(B,D) \tkzGetSecondPoint{E}
    \tkzInterLL(B,D)(C,E) \tkzGetPoint{F}
    \tkzDrawPoints(C,D,B)
    \tkzDrawPolygon(B,...,D)  
    \tkzDrawPolygon(B,C,D)
    \tkzDrawSegments(D,A A,B C,E)
    \tkzDrawArc[delta=10](B,C)(E)
    \tkzMarkRightAngle[fill=blue!20](B,F,C)  
    \tkzFillAngles[fill=blue!10](C,B,D E,A,D)
    \tkzMarkAngles(C,B,D E,A,D)
    \tkzLabelAngles[pos=1.5](C,B,D E,A,D){$\alpha$} 
    \tkzLabelPoints[below](A,C,D,E)
    \tkzLabelPoints[above right](B,F)
    \tkzDrawPoints(A,...,F) 
  \end{tikzpicture} 
\end{center}



\begin{tkzexample}[code only,small]
  \begin{tikzpicture}
    \tkzDefPoint(0,0){C}
    \tkzDefPoint(4,0){D}
    \tkzDefSquare(C,D)                     
    \tkzGetPoints{e}{f}
    \tkzDefMidPoint(C,f)                   
    \tkzGetPoint{m}
    \tkzInterLC(C,f)(m,e)                  
    \tkzGetSecondPoint{n}
    \tkzInterCC[with nodes](C,C,n)(D,C,n) 
    \tkzGetFirstPoint{B}
    \tkzInterLC(C,D)(D,B) \tkzGetSecondPoint{A}
    \tkzInterLC(B,A)(B,D) \tkzGetSecondPoint{E}
    \tkzInterLL(B,D)(C,E) \tkzGetPoint{F}
    \tkzDrawPoints(C,D,B)
    \tkzDrawPolygon(B,...,D)  
    \tkzDrawPolygon(B,C,D)
    \tkzDrawSegments(D,A A,B C,E)
    \tkzDrawArc[delta=10](B,C)(E)
    \tkzDrawPoints(A,...,F) 
    \tkzMarkRightAngle[fill=blue!20](B,F,C)  
    \tkzFillAngles[fill=blue!10](C,B,D E,A,D)
    \tkzMarkAngles(C,B,D E,A,D)
    \tkzLabelAngles[pos=1.5](C,B,D E,A,D){$\alpha$} 
    \tkzLabelPoints[below](A,C,D,E)
    \tkzLabelPoints[above right](B,F)
  \end{tikzpicture} 
\end{tkzexample}

\subsubsection{Example Part II: two others methods gold and euclide triangle}

\tkzname{\tkznameofpack} knows how to define a "gold" or "euclide" triangle. We can define $BCD$ and $BCA$ like gold triangles.


  \begin{center}
    \begin{tkzexample}[code only,small]
      \begin{tikzpicture}
        \tkzDefPoint(0,0){C}
        \tkzDefPoint(4,0){D}
        \tkzDefTriangle[euclide](C,D)
        \tkzGetPoint{B}
        \tkzDefTriangle[euclide](B,C)
        \tkzGetPoint{A}
        \tkzInterLC(B,A)(B,D) \tkzGetSecondPoint{E}
        \tkzInterLL(B,D)(C,E) \tkzGetPoint{F}
        \tkzDrawPoints(C,D,B)
        \tkzDrawPolygon(B,...,D)  
        \tkzDrawPolygon(B,C,D)
        \tkzDrawSegments(D,A A,B C,E)
        \tkzDrawArc[delta=10](B,C)(E)
        \tkzDrawPoints(A,...,F) 
        \tkzMarkRightAngle[fill=blue!20](B,F,C)  
        \tkzFillAngles[fill=blue!10](C,B,D E,A,D)
        \tkzMarkAngles(C,B,D E,A,D)
        \tkzLabelAngles[pos=1.5](C,B,D E,A,D){$\alpha$} 
        \tkzLabelPoints[below](A,C,D,E)
        \tkzLabelPoints[above right](B,F)
      \end{tikzpicture} 
    \end{tkzexample}
  \end{center}

Here is a final method that uses rotations:  

\begin{center}
  \begin{tkzexample}[code only,small]
  \begin{tikzpicture} 
  \tkzDefPoint(0,0){C} % possible 
  % \tkzDefPoint[label=below:$C$](0,0){C} 
  % but don't do this
  \tkzDefPoint(2,6){B}
  % We get D and E with a rotation
  \tkzDefPointBy[rotation= center B angle 36](C) \tkzGetPoint{D} 
  \tkzDefPointBy[rotation= center B angle 72](C) \tkzGetPoint{E} 
  % To get A we use an intersection of lines
  \tkzInterLL(B,E)(C,D) \tkzGetPoint{A}
  \tkzInterLL(C,E)(B,D) \tkzGetPoint{H}
  % drawing
  \tkzDrawArc[delta=10](B,C)(E)
  \tkzDrawPolygon(C,B,D)
  \tkzDrawSegments(D,A B,A C,E)
  % angles 
  \tkzMarkAngles(C,B,D E,A,D) %this is to draw the arcs
  \tkzLabelAngles[pos=1.5](C,B,D E,A,D){$\alpha$}
  \tkzMarkRightAngle(B,H,C)
  \tkzDrawPoints(A,...,E)
  % Label only now
  \tkzLabelPoints[below left](C,A)
  \tkzLabelPoints[below right](D)
  \tkzLabelPoints[above](B,E)
  \end{tikzpicture}
  \end{tkzexample}
\end{center}


\subsubsection{Complete but minimal example}


A unit of length being chosen, the example shows how to obtain a segment of length $\sqrt{a}$ from a segment of length $a$, using a ruler and a compass.

$IB=a$, $AI=1$

\vspace{12pt}
\hypertarget{firstex}{}

\begin{tikzpicture}[scale=1,ra/.style={fill=gray!20}]
   % fixed points
   \tkzDefPoint(0,0){A}
   \tkzDefPoint(1,0){I}
   % calculation
   \tkzDefPointBy[homothety=center A ratio  10 ](I) \tkzGetPoint{B}  
   \tkzDefMidPoint(A,B)              \tkzGetPoint{M}
   \tkzDefPointWith[orthogonal](I,M) \tkzGetPoint{H}
   \tkzInterLC(I,H)(M,B)             \tkzGetSecondPoint{C}
   \tkzDrawSegment[style=orange](I,C)
   \tkzDrawArc(M,B)(A)
   \tkzDrawSegment[dim={$1$,-16pt,}](A,I)
   \tkzDrawSegment[dim={$a/2$,-10pt,}](I,M)
   \tkzDrawSegment[dim={$a/2$,-16pt,}](M,B)   
   \tkzMarkRightAngle[ra](A,I,C)
   \tkzDrawPoints(I,A,B,C,M)  
   \tkzLabelPoint[left](A){$A(0,0)$} 
   \tkzLabelPoints[above right](I,M)
   \tkzLabelPoints[above left](C)
   \tkzLabelPoint[right](B){$B(10,0)$}
   \tkzLabelSegment[right=4pt](I,C){$\sqrt{a^2}=a \ (a>0)$}
\end{tikzpicture}

\emph{Comments}
 
\begin{itemize}
\item The Preamble


 Let us first look at the preamble. If you need it, you have to load \tkzname{xcolor} before \tkzname{tkz-euclide}, that is, before \TIKZ. \TIKZ\ may cause problems with the active characters, but...
 provides a library in its latest version that's supposed to solve these problems \NameLib{babel}.
 
\begin{tkzltxexample}[]
\documentclass{standalone} % or another class
   % \usepackage{xcolor} % before tikz or tkz-euclide if necessary
\usepackage{tkz-euclide} % no need to load TikZ
   % \usetkzobj{all}  is no longer necessary 
   % \usetikzlibrary{babel}  if there are problems with the active characters
\end{tkzltxexample}

The following code consists of several parts:

   \item  Definition of fixed points: the first part includes the definitions of the points necessary for the construction, these are the fixed points. The macros \tkzcname{tkzInit} and \tkzcname{tkzClip} in most cases are not necessary.

\begin{tkzltxexample}[]
  \tkzDefPoint(0,0){A}
  \tkzDefPoint(1,0){I}
\end{tkzltxexample}
 
  \item The second part is dedicated to the creation of new points from the fixed points;
  a $B$ point is placed at $10$~cm    from $A$. The middle of $[AB]$ is defined by $M$ and then the orthogonal line to the $(AB)$ line is searched for at the $I$ point. Then we look for the intersection of this line with the semi-circle of center $M$ passing through $A$.  
  
\begin{tkzltxexample}[]
   \tkzDefPointBy[homothety=center A ratio  10 ](I)
      \tkzGetPoint{B}
   \tkzDefMidPoint(A,B)
      \tkzGetPoint{M}
   \tkzDefPointWith[orthogonal](I,M)
      \tkzGetPoint{H}
   \tkzInterLC(I,H)(M,A)
      \tkzGetSecondPoint{B}
 \end{tkzltxexample}  
     

 \item The third one includes the different drawings;
 \begin{tkzltxexample}[]
   \tkzDrawSegment[style=orange](I,H)
   \tkzDrawPoints(O,I,A,B,M)
   \tkzDrawArc(M,A)(O)
   \tkzDrawSegment[dim={$1$,-16pt,}](O,I)  
   \tkzDrawSegment[dim={$a/2$,-10pt,}](I,M)
   \tkzDrawSegment[dim={$a/2$,-16pt,}](M,A)
 \end{tkzltxexample}
 
\item  Marking: the fourth is devoted to marking;


\begin{tkzltxexample}[]
   \tkzMarkRightAngle(A,I,B)
 \end{tkzltxexample}
 
 \item Labelling: the latter only deals with the placement of labels.
\begin{tkzltxexample}[]
   \tkzLabelPoint[left](O){$A(0,0)$}
   \tkzLabelPoint[right](A){$B(10,0)$}
   \tkzLabelSegment[right=4pt](I,B){$\sqrt{a^2}=a \ (a>0)$}
\end{tkzltxexample}


\item The full code:


\begin{tkzexample}[code only]
  \begin{tikzpicture}[scale=1,ra/.style={fill=gray!20}]
     % fixed points
     \tkzDefPoint(0,0){A}
     \tkzDefPoint(1,0){I}
     % calculation
     \tkzDefPointBy[homothety=center A ratio  10 ](I) \tkzGetPoint{B}  
     \tkzDefMidPoint(A,B)              \tkzGetPoint{M}
     \tkzDefPointWith[orthogonal](I,M) \tkzGetPoint{H}
     \tkzInterLC(I,H)(M,B)             \tkzGetSecondPoint{C}
     \tkzDrawSegment[style=orange](I,C)
     \tkzDrawArc(M,B)(A)
     \tkzDrawSegment[dim={$1$,-16pt,}](A,I)
     \tkzDrawSegment[dim={$a/2$,-10pt,}](I,M)
     \tkzDrawSegment[dim={$a/2$,-16pt,}](M,B)   
     \tkzMarkRightAngle[ra](A,I,C)
     \tkzDrawPoints(I,A,B,C,M)  
     \tkzLabelPoint[left](A){$A(0,0)$} 
     \tkzLabelPoints[above right](I,M)
     \tkzLabelPoints[above left](C)
     \tkzLabelPoint[right](B){$B(10,0)$}
     \tkzLabelSegment[right=4pt](I,C){$\sqrt{a^2}=a \ (a>0)$}
  \end{tikzpicture}
\end{tkzexample}
\end{itemize}

\subsection{The Elements of tkz code}
In this paragraph, we start looking at the "rules" and "symbols" used to create a figure with \tkzname{\tkznameofpack}.

 The primitive objects are points. You can refer to a point at any time using the name given when defining it. (it is possible to assign a different name later on).

\medskip
In general, \tkzname{\tkznameofpack} macros have a name beginning with tkz. There are four main categories starting with:
|\tkzDef...| |\tkzDraw...| |\tkzMark...| and |\tkzLabel...|

Among the first category, |\tkzDefPoint| allows you to define fixed points. It will be studied in detail later. Here we will see in detail the macro  |\tkzDefTriangle|.

This macro makes it possible to associate to a pair of points a third point in order to define a certain triangle |\tkzDefTriangle(A,B)|. The obtained point is referenced |tkzPointResult| and it is possible to choose another reference with |\tkzGetPoint{C}| for example.
Parentheses are used to pass arguments. In |(A,B)| $A$ and $B$ are the points with which a third will be defined.

However, in |{C}| we use braces to retrieve the new point.
In order to choose a certain type of triangle among the following choices:
  |equilateral|, |half|, |pythagoras|, |school|, |golden or sublime|, |euclide|, |gold|, |cheops|...
 and |two angles| you just have to choose between hooks, for example:
 
|\tkzDefTriangle[euclide](A,B) \tkzGetPoint{C}|

\begin{minipage}{0.5\textwidth}
  \begin{tikzpicture}[scale=.75]
  \tkzDefPoints{0/0/A,8/0/B}
  \foreach \tr in {equilateral,half,pythagore,%
          school,golden,euclide, gold,cheops}
  {\tkzDefTriangle[\tr](A,B) \tkzGetPoint{C}
  \tkzDrawPoint(C)
  \tkzLabelPoint[right](C){\tr}
  \tkzDrawSegments(A,C C,B)}
  \tkzDrawPoints(A,B)
  \tkzDrawSegments(A,B)
  \end{tikzpicture}
\end{minipage}
\begin{minipage}{0.5\textwidth}
  \begin{tkzexample}[code only,small]
    \begin{tikzpicture}[scale=.75]
    \tkzDefPoints{0/0/A,8/0/B}
    \foreach \tr in {equilateral,half,pythagore,%
            school,golden,euclide, gold,cheops}
    {\tkzDefTriangle[\tr](A,B) \tkzGetPoint{C}
    \tkzDrawPoint(C)
    \tkzLabelPoint[right](C){\tr}
    \tkzDrawSegments(A,C C,B)}
    \tkzDrawPoints(A,B)
    \tkzDrawSegments(A,B)
    \end{tikzpicture}
  \end{tkzexample}

\end{minipage}


\subsection{Notations and conventions}

I deliberately chose to use the geometric French and personal  conventions  to describe the geometric objects represented. The objects defined and represented by \tkzname{\tkznameofpack} are points, lines and circles located in a plane. They are the primary objects of Euclidean geometry from which we will construct figures.

According to \tkzimp{Euclidian} these figures will only illustrate pure ideas produced by our brain.
Thus a point has no dimension and therefore no real existence. In the same way the line has no width and therefore no existence in the real world. The objects that we are going to consider are only representations of ideal mathematical objects. \tkzname{\tkznameofpack} will follow the steps of the ancient Greeks to obtain geometrical constructions using the ruler and the compass. 

Here are the notations that will be used:


\begin{itemize}
\item The points are represented geometrically either by a small disc or by the intersection of two lines (two straight lines, a straight line and a circle or two circles). In this case, the point is represented by a cross. 

\begin{tkzexample}[latex=6cm, small]     
  \begin{tikzpicture}       
    \tkzDefPoints{0/0/A,4/2/B}       
    \tkzDrawPoints(A,B)       
    \tkzLabelPoints(A,B)     
  \end{tikzpicture}    
\end{tkzexample}

or else

\begin{tkzexample}[latex=6cm, small]     
  \begin{tikzpicture}       
    \tkzSetUpPoint[shape=cross, color=red]       
    \tkzDefPoints{0/0/A,4/2/B}       
    \tkzDrawPoints(A,B)       
    \tkzLabelPoints(A,B)     
    \end{tikzpicture}    
    \end{tkzexample}  

The existence of a point being established, we can give it a label which will be a capital letter (with some exceptions) of the Latin alphabet such as $A$, $B$ or $C$. For example:
\begin{itemize}
\item $O$ is a center for a circle, a rotation, etc.;
\item $M$ defined a midpoint;
\item $H$ defined the foot of an altitude;
\item $P'$ is the image of $P$ by a transformation ;
\end{itemize}

It is important to note that the reference name of a point in the code may be different from the label to designate it in the text. So we can define a point A and give it as label $P$. In particular the style will be different, point A will be labeled $A$. 

\begin{tkzexample}[latex=6cm, small]     
  \begin{tikzpicture}       
    \tkzDefPoints{0/0/A}       
    \tkzDrawPoints(A)       
    \tkzLabelPoint(A){$P$}     
  \end{tikzpicture}    
\end{tkzexample}

Exceptions: some points such as the middle of the sides of a triangle share a characteristic, so it is normal that their names also share a common character. We will designate these points by $M_a$, $M_b$ and $M_c$ or $M_A$, $M_B$ and $M_C$.

In the code, these points will be referred to as: M\_A, M\_B and M\_C.

Another exception relates to intermediate construction points which will not be labelled. They will often be designated by a lowercase letter in the code.

\item The line segments are designated by two points representing their ends in square brackets: $[AB]$. 

\item The straight lines are in Euclidean geometry defined by two points so $A$ and $B$ define the straight line $(AB)$. We can also designate this stright line using the Greek alphabet and name it $(\delta)$ or $(\Delta)$. It is also possible to designate the straight line with lowercase letters such as $d$ and $d'$.

\item The semi-straight line is designated as follows $[AB)$.


\item Relation between the straight lines. Two perpendicular $(AB)$ and $(CD)$ lines will be written $(AB) \perp (CD)$ and if they are parallel we will write $(AB) \parallelslant (CD)$.

\item The lengths of the sides of triangle ABC are $AB$, $AC$ and $BC$. The numbers are also designated by a lowercase letter so we will write: $AB=c$, $AC=b$ and $BC=a$. The letter $a$ is also used to represent an angle, and $r$ is frequently used to represent a radius, $d$ a diameter, $l$ a length, $d$ a distance.

\item Polygons are designated afterwards by their vertices so $ABC$ is a triangle, $EFGH$ a quadrilateral.

\item Angles are generally measured in degrees (ex $60^\circ$) and in an equilateral $ABC$ triangle we will write $\widehat{ABC}=\widehat{B}=60^\circ$.

\item The arcs are designated by their extremities. For example if $A$ and $B$ are two points of the same circle then $\widearc{AB}$.


\item Circles are noted either $\mathcal{C}$ if there is no possible confusion or $\mathcal{C}$ $(O~;~A)$ for a circle with center $O$ and passing through the point $A$ or $\mathcal{C}$ $(O~;~1)$ for a circle with center O and radius 1 cm.

\item  Name of the particular lines of a triangle: I used the terms bisector, bisector out, mediator (sometimes called perpendicular bisectors), altitude, median and symmedian.

\item ($x_1$,$y_1$) coordinates of the point $A_1$, ($x_A$,$y_A$) coordinates of the point $A$.

\end{itemize}




\subsection{How to use the \tkzname{\tkznameofpack} package ?}
\subsubsection{Let's look at a classic example}
In order to show the right way, we will see how to build an equilateral triangle. Several possibilities are open to us, we are going to follow the steps of Euclid.

\begin{itemize}
\item   First of all you have to use a document class. The best choice to test your code is to create a single figure with the class \tkzname{standalone}\index{standalone}.
\begin{verbatim}  
\documentclass{standalone}
\end{verbatim}
\item Then load the \tkzname{\tkznameofpack} package:
\begin{verbatim}  
\usepackage{tkz-euclide}
\end{verbatim}

 You don't need to load \TIKZ\ because the \tkzname{\tkznameofpack} package works on top of TikZ and loads it.
 \item  {\color{red} \bomb \sout{|\BS usetkzobj{all}| }}
 With the new version 3.03 you don't need this line anymore. All objects are now loaded.
 \item Start the document and open a TikZ picture environment:
\begin{verbatim}
\begin{document}
\begin{tikzpicture}
\end{verbatim}

\item Now we define two fixed points:
\begin{verbatim}
\tkzDefPoint(O,O){A}
\tkzDefPoint(5,2){B}
\end{verbatim}

\item Two points define two circles, let's use these circles:

 circle with center $A$ through $B$ and circle with center $B$ through $A$. These two circles have two points in common.
\begin{verbatim}
\tkzInterCC(A,B)(B,A)
\end{verbatim}
We can get the points of intersection with
\begin{verbatim}
\tkzGetPoints{C}{D}
\end{verbatim}

\item All the necessary points are obtained, we can move on to the final steps including the plots.
\begin{verbatim}
\tkzDrawCircles[gray,dashed](A,B B,A)
\tkzDrawPolygon(A,B,C)% The triangle
\end{verbatim}
\item Draw all points $A$, $B$, $C$ and $D$:
\begin{verbatim}
\tkzDrawPoints(A,...,D)
\end{verbatim}

\item The final step, we print labels to the points and use options for positioning:\\
\begin{verbatim}
\tkzLabelSegments[swap](A,B){$c$}
\tkzLabelPoints(A,B,D)
\tkzLabelPoints[above](C)
\end{verbatim}
\item We finally close both environments
\begin{verbatim}
\end{tikzpicture}
\end{document}
\end{verbatim}

\item The complete code

\begin{tkzexample}[latex=8cm,small]
 \begin{tikzpicture}[scale=.5]
   % fixed points
  \tkzDefPoint(0,0){A}
  \tkzDefPoint(5,2){B}
  % calculus
  \tkzInterCC(A,B)(B,A)
  \tkzGetPoints{C}{D}
  % drawings
  \tkzDrawCircles[gray,dashed](A,B B,A)
  \tkzDrawPolygon(A,B,C)
  \tkzDrawPoints(A,...,D)
  % marking
  \tkzMarkSegments[mark=s||](A,B B,C C,A)
  % labelling
  \tkzLabelSegments[swap](A,B){$c$}
  \tkzLabelPoints(A,B,D)
  \tkzLabelPoints[above](C)
\end{tikzpicture}
\end{tkzexample}

 \end{itemize}

\subsubsection{\tkzname{Set, Calculate, Draw, Mark, Label}}
The title could have been: \texttt{Separation of Calculus and Drawings}

When a document is prepared using the \LATEX\ system, the source code of the document can be divided into two parts: the document body and the preamble.
Under this methodology,  publications can be structured, styled and typeset with minimal effort.
I propose a similar methodology for creating figures with \tkzname{\tkznameofpack}.

The first part defines the fixed points, the second part allows the creation of new points. These are the two main parts. All that is left to do is to draw, mark and label.




\endinput