TKZdoc Euclide
TKZdoc Euclide
TKZdoc Euclide
06c
AlterMundus
AlterMundus
a b
tkz-euclide
tool for
Euclidean Geometry
c d
Alain Matthes
March 18, 2020 Documentation V.3.06c
http://altermundus.fr
tkz-euclide
AlterMundus
Alain Matthes
☞ The tkz-euclide is a set of convenient macros for drawing in a plane (fundamental two-
dimensional object) with a Cartesian coordinate system. It handles the most classic situations in
Euclidean Geometry. tkz-euclide is built on top of PGF and its associated front-end Tik Z and is a
(La)TeX-friendly drawing package. The aim is to provide a high-level user interface to build graphics
relatively simply. It uses a Cartesian coordinate system orthogonal provided by the tkz-base package
as well as tools to define the unique coordinates of points and to manipulate them. The idea is to allow
you to follow step by step a construction that would be done by hand as naturally as possible.
Now the package needs the version 3.0 of Tik Z. English is not my native language so there might be
some errors.
☞ Firstly, I would like to thank Till Tantau for the beautiful LATEX package, namely Tik Z.
☞ I received much valuable advice, remarks, corrections and examples from Jean-Côme Charpentier, Josselin
Noirel, Manuel Pégourié-Gonnard, Franck Pastor, David Arnold, Ulrike Fischer, Stefan Kottwitz, Christian
Tellechea, Nicolas Kisselhoff, David Arnold, Wolfgang Büchel, John Kitzmiller, Dimitri Kapetas, Gaétan
Marris, Mark Wibrow, Yves Combe for his work on a protractor, Paul Gaborit and Laurent Van Deik for all his
corrections, remarks and questions.
Please report typos or any other comments to this documentation to: Alain Matthes.
This file can be redistributed and/or modified under the terms of the LATEX Project Public License Distributed from
CTAN archives.
Contents 3
Contents
2 Installation 20
2.1 List of folder files tkzbase and tkzeuclide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4 Definition of a point 23
4.1 Defining a named point \tkzDefPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.1.1 Cartesian coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.2 Calculations with xfp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.3 Polar coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.4 Calculations and coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.5 Relative points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.2 Point relative to another: \tkzDefShiftPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.2.1 Isosceles triangle with \tkzDefShiftPoint . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.2.2 Equilateral triangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2.3 Parallelogram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.3 Definition of multiple points: \tkzDefPoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.4 Create a triangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.5 Create a square . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5 Special points 28
5.1 Middle of a segment \tkzDefMidPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.1.1 Use of \tkzDefMidPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.2 Barycentric coordinates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.2.1 Using \tkzDefBarycentricPoint with two points . . . . . . . . . . . . . . . . . . . . . 29
5.2.2 Using \tkzDefBarycentricPoint with three points . . . . . . . . . . . . . . . . . . . . . 29
5.3 Internal Similitude Center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
7 Draw a point 35
7.0.1 Drawing points \tkzDrawPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
tkz-euclide AlterMundus
Contents 4
tkz-euclide AlterMundus
Contents 5
12.1.5 A parabola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
12.2 Specific lines: Tangent to a circle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
12.2.1 Example of a tangent passing through a point on the circle . . . . . . . . . . . . . . . . . 58
12.2.2 Example of tangents passing through an external point . . . . . . . . . . . . . . . . . . . 59
12.2.3 Example of Andrew Mertz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
12.2.4 Drawing a tangent option from with R and at . . . . . . . . . . . . . . . . . . . . . . . . 59
12.2.5 Drawing a tangent option from . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
15 Triangles 69
15.1 Definition of triangles \tkzDefTriangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
15.1.1 Option golden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
15.1.2 Option equilateral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
15.1.3 Option gold or euclide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
15.2 Drawing of triangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
15.2.1 Option pythagore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
15.2.2 Option school . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
15.2.3 Option golden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
15.2.4 Option gold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
15.2.5 Option euclide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
tkz-euclide AlterMundus
Contents 6
17 Definition of polygons 77
17.1 Defining the points of a square . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
17.1.1 Using \tkzDefSquare with two points . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
17.1.2 Use of \tkzDefSquare to obtain an isosceles right-angled triangle . . . . . . . . . . . . . 77
17.1.3 Pythagorean Theorem and \tkzDefSquare . . . . . . . . . . . . . . . . . . . . . . . . . . 78
17.2 Definition of parallelogram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
17.3 Defining the points of a parallelogram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
17.3.1 Example of a parallelogram definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
17.3.2 Simple example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
17.3.3 Construction of the golden rectangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
17.4 Drawing a square . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
17.4.1 The idea is to inscribe two squares in a semi-circle. . . . . . . . . . . . . . . . . . . . . . . 80
17.5 The golden rectangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
17.5.1 Golden Rectangles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
17.6 Drawing a polygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
17.6.1 \tkzDrawPolygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
17.7 Drawing a polygonal chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
17.7.1 Polygonal chain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
17.7.2 Polygonal chain: index notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
17.8 Clip a polygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
17.8.1 \tkzClipPolygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
17.8.2 Example: use of ”Clip” for Sangaku in a square . . . . . . . . . . . . . . . . . . . . . . . . 83
17.9 Color a polygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
17.9.1 \tkzFillPolygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
17.10Regular polygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
17.10.1 Option center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
17.10.2 Option side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
18 The Circles 85
18.1 Characteristics of a circle: \tkzDefCircle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
18.1.1 Example with a random point and option through . . . . . . . . . . . . . . . . . . . . . . 86
18.1.2 Example with option diameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
18.1.3 Circles inscribed and circumscribed for a given triangle . . . . . . . . . . . . . . . . . . . 86
18.1.4 Example with option ex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
18.1.5 Euler’s circle for a given triangle with option euler . . . . . . . . . . . . . . . . . . . . . . 87
18.1.6 Apollonius circles for a given segment option apollonius . . . . . . . . . . . . . . . . . 88
18.1.7 Circles exinscribed to a given triangle option ex . . . . . . . . . . . . . . . . . . . . . . . 88
18.1.8 Spieker circle with option spieker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
18.1.9 Orthogonal circle passing through two given points, option orthogonal through . . . . 89
18.1.10 Orthogonal circle of given center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
tkz-euclide AlterMundus
Contents 7
20 Intersections 96
20.1 Intersection of two straight lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
20.1.1 Example of intersection between two straight lines . . . . . . . . . . . . . . . . . . . . . . 96
20.2 Intersection of a straight line and a circle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
20.2.1 Simple example of a line-circle intersection . . . . . . . . . . . . . . . . . . . . . . . . . . 97
20.2.2 More complex example of a line-circle intersection . . . . . . . . . . . . . . . . . . . . . . 97
20.2.3 Circle defined by a center and a measure, and special cases . . . . . . . . . . . . . . . . . 97
20.2.4 More complex example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
20.2.5 Calculation of radius example 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
20.2.6 Calculation of radius example 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
20.2.7 Calculation of radius example 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
20.2.8 Squares in half a disc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
20.2.9 Option ”with nodes” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
20.3 Intersection of two circles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
20.3.1 Construction of an equilateral triangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
20.3.2 Example a mediator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
20.3.3 An isosceles triangle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
20.3.4 Segment trisection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
20.3.5 With the option with nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
tkz-euclide AlterMundus
Contents 8
23 Sectors 116
23.1 \tkzDrawSector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
23.1.1 \tkzDrawSector and towards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
23.1.2 \tkzDrawSector and rotate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
23.1.3 \tkzDrawSector and R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
23.1.4 \tkzDrawSector and R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
23.1.5 \tkzDrawSector and R with nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
23.2 \tkzFillSector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
23.2.1 \tkzFillSector and towards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
23.2.2 \tkzFillSector and rotate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
23.3 \tkzClipSector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
23.3.1 \tkzClipSector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
tkz-euclide AlterMundus
Contents 9
29 Protractor 136
29.1 The circular protractor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
29.2 The circular protractor, transparent and returned . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
31 Customization 154
31.1 Use of \tkzSetUpLine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
31.1.1 Example 1: change line width . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
31.1.2 Example 2: change style of line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
31.1.3 Example 3: extend lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
31.2 Points style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
31.2.1 Use of \tkzSetUpPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
31.2.2 Use of \tkzSetUpPoint inside a group . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
31.3 Use of \tkzSetUpCompass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
31.3.1 Use of \tkzSetUpCompass with bisector . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
31.3.2 Another example of of\tkzSetUpCompass . . . . . . . . . . . . . . . . . . . . . . . . . . 157
31.4 Own style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
33 FAQ 160
33.1 Most common errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Index 161
tkz-euclide AlterMundus
1 Presentation and Overview 10
\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}
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, tkz-
euclide 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.
I love programming with Tik Z, and without Tik Z I would never have had the idea to create tkz-euclide but never
forget that behind it there is Tik Z and that it is always possible to insert code from Tik Z. tkz-euclide doesn’t
prevent you from using Tik Z. That said, I don’t think mixing syntax is a good thing.
There is no need to compare Tik Z and tkz-euclide. The latter is not addressed to the same audience as Tik Z.
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.
tkz-euclide AlterMundus
1 Presentation and Overview 11
𝛼
𝐶 𝐷 𝐴
4. Finally
̂ = 𝛼 = 36∘
𝐶𝐵𝐷
the triangle 𝐶𝐵𝐷 is a ”gold” triangle.
tkz-euclide AlterMundus
1 Presentation and Overview 12
\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}
After building the golden triangle 𝐵𝐶𝐷, we build the point 𝐴 by noticing that 𝐵𝐷 = 𝐷𝐴. Then we get the point 𝐸
and finally the point 𝐹. This is done with already intersections of defined objects (line and circle).
𝐸
𝐹
𝐶 𝐷 𝐴
\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}
tkz-euclide AlterMundus
1 Presentation and Overview 13
\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}
1.3.2 Example Part II: two others methods gold and euclide triangle
tkz-euclide knows how to define a ”gold” or ”euclide” triangle. We can define 𝐵𝐶𝐷 and 𝐵𝐶𝐴 like gold triangles.
\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}
\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
tkz-euclide AlterMundus
1 Presentation and Overview 14
\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}
A unit of length being chosen, the example shows how to obtain a segment of length √𝑎 from a segment of length
𝑎, using a ruler and a compass.
𝐼𝐵 = 𝑎, 𝐴𝐼 = 1
√𝑎2 = 𝑎 (𝑎 > 0)
𝐼 𝑀
𝐴(0, 0) 𝐵(10, 0)
𝑎/2
1 𝑎/2
Comments
– The Preamble
Let us first look at the preamble. If you need it, you have to load xcolor before tkz-euclide, that is, before
Tik Z. Tik Z may cause problems with the active characters, but... provides a library in its latest version that’s
supposed to solve these problems babel.
\tkzDefPoint(0,0){A}
\tkzDefPoint(1,0){I}
tkz-euclide AlterMundus
1 Presentation and Overview 15
– The second part is dedicated to the creation of new points from the fixed points; a 𝐵 point is placed at 10 cm
from 𝐴. The middle of [𝐴𝐵] is defined by 𝑀 and then the orthogonal line to the (𝐴𝐵) line is searched for at
the 𝐼 point. Then we look for the intersection of this line with the semi-circle of center 𝑀 passing through 𝐴.
\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)
\tkzMarkRightAngle(A,I,B)
\tkzLabelPoint[left](O){$A(0,0)$}
\tkzLabelPoint[right](A){$B(10,0)$}
\tkzLabelSegment[right=4pt](I,B){$\sqrt{a^2}=a \ (a>0)$}
\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)$}
tkz-euclide AlterMundus
1 Presentation and Overview 16
\end{tikzpicture}
In this paragraph, we start looking at the ”rules” and ”symbols” used to create a figure with tkz-euclide.
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).
In general, tkz-euclide 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) 𝐴 and 𝐵 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}
euclide
\begin{tikzpicture}[scale=.75]
\tkzDefPoints{0/0/A,8/0/B}
\foreach \tr in {equilateral,half,pythagore,%
school,golden,euclide, gold,cheops}
equilateral {\tkzDefTriangle[\tr](A,B) \tkzGetPoint{C}
\tkzDrawPoint(C)
pythagore
\tkzLabelPoint[right](C){\tr}
cheops \tkzDrawSegments(A,C C,B)}
golden
gold school \tkzDrawPoints(A,B)
\tkzDrawSegments(A,B)
half
\end{tikzpicture}
I deliberately chose to use the geometric French and personal conventions to describe the geometric objects
represented. The objects defined and represented by tkz-euclide 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 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.
tkz-euclide AlterMundus
1 Presentation and Overview 17
tkz-euclide 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:
– 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{tikzpicture}
𝐵 \tkzDefPoints{0/0/A,4/2/B}
\tkzDrawPoints(A,B)
\tkzLabelPoints(A,B)
\end{tikzpicture}
𝐴
or else
\begin{tikzpicture}
𝐵 \tkzSetUpPoint[shape=cross, color=red]
\tkzDefPoints{0/0/A,4/2/B}
\tkzDrawPoints(A,B)
\tkzLabelPoints(A,B)
\end{tikzpicture}
𝐴
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 𝐴, 𝐵 or 𝐶. For example:
– 𝑂 is a center for a circle, a rotation, etc.;
– 𝑀 defined a midpoint;
– 𝐻 defined the foot of an altitude;
– 𝑃 ′ is the image of 𝑃 by a transformation ;
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 𝑃. In particular the style will be
different, point A will be labeled 𝐴.
\begin{tikzpicture}
𝑃 \tkzDefPoints{0/0/A}
\tkzDrawPoints(A)
\tkzLabelPoint(A){$P$}
\end{tikzpicture}
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 𝑀𝑎 , 𝑀𝑏 and 𝑀𝑐 or 𝑀𝐴 ,
𝑀𝐵 and 𝑀𝐶 .
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.
– The line segments are designated by two points representing their ends in square brackets: [𝐴𝐵].
– The straight lines are in Euclidean geometry defined by two points so 𝐴 and 𝐵 define the straight line (𝐴𝐵).
We can also designate this stright line using the Greek alphabet and name it (𝛿) or (Δ). It is also possible to
designate the straight line with lowercase letters such as 𝑑 and 𝑑′ .
– The semi-straight line is designated as follows [𝐴𝐵).
– Relation between the straight lines. Two perpendicular (𝐴𝐵) and (𝐶𝐷) lines will be written (𝐴𝐵) ⟂ (𝐶𝐷) and
if they are parallel we will write (𝐴𝐵) � (𝐶𝐷).
tkz-euclide AlterMundus
1 Presentation and Overview 18
– The lengths of the sides of triangle ABC are 𝐴𝐵, 𝐴𝐶 and 𝐵𝐶. The numbers are also designated by a lowercase
letter so we will write: 𝐴𝐵 = 𝑐, 𝐴𝐶 = 𝑏 and 𝐵𝐶 = 𝑎. The letter 𝑎 is also used to represent an angle, and 𝑟 is
frequently used to represent a radius, 𝑑 a diameter, 𝑙 a length, 𝑑 a distance.
– Polygons are designated afterwards by their vertices so 𝐴𝐵𝐶 is a triangle, 𝐸𝐹𝐺𝐻 a quadrilateral.
̂=
– Angles are generally measured in degrees (ex 60∘ ) and in an equilateral 𝐴𝐵𝐶 triangle we will write 𝐴𝐵𝐶
𝐵̂ = 60∘ .
– The arcs are designated by their extremities. For example if 𝐴 and 𝐵 are two points of the same circle then
�
𝐴𝐵.
– Circles are noted either 𝒞 if there is no possible confusion or 𝒞 (𝑂 ; 𝐴) for a circle with center 𝑂 and passing
through the point 𝐴 or 𝒞 (𝑂 ; 1) for a circle with center O and radius 1 cm.
– Name of the particular lines of a triangle: I used the terms bisector, bisector out, mediator (sometimes
called perpendicular bisectors), altitude, median and symmedian.
– (𝑥1 ,𝑦1 ) coordinates of the point 𝐴1 , (𝑥𝐴 ,𝑦𝐴 ) coordinates of the point 𝐴.
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.
– 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 standalone.
\documentclass{standalone}
– Then load the tkz-euclide package:
\usepackage{tkz-euclide}
You don’t need to load Tik Z because the tkz-euclide package works on top of TikZ and loads it.
– �\usetkzobjall With the new version 3.03 you don’t need this line anymore. All objects are now loaded.
– Start the document and open a TikZ picture environment:
\begin{document}
\begin{tikzpicture}
– Now we define two fixed points:
\tkzDefPoint(O,O){A}
\tkzDefPoint(5,2){B}
– Two points define two circles, let’s use these circles:
circle with center 𝐴 through 𝐵 and circle with center 𝐵 through 𝐴. These two circles have two points in
common.
\tkzInterCC(A,B)(B,A)
We can get the points of intersection with
\tkzGetPoints{C}{D}
– All the necessary points are obtained, we can move on to the final steps including the plots.
\tkzDrawCircles[gray,dashed](A,B B,A)
\tkzDrawPolygon(A,B,C)% The triangle
– Draw all points 𝐴, 𝐵, 𝐶 and 𝐷:
\tkzDrawPoints(A,...,D)
tkz-euclide AlterMundus
1 Presentation and Overview 19
– The final step, we print labels to the points and use options for positioning:
\tkzLabelSegments[swap](A,B){$c$}
\tkzLabelPoints(A,B,D)
\tkzLabelPoints[above](C)
– We finally close both environments
\end{tikzpicture}
\end{document}
– The complete code
\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}
tkz-euclide AlterMundus
2 Installation 20
2 Installation
tkz-euclide and tkz-base are now on the server of the CTAN1 . If you want to test a beta version, just put the
following files in a texmf folder that your system can find. You will have to check several points:
– The tkz-base and tkz-euclide folders must be located on a path recognized by latex.
– The xfp2 , numprint and tikz 3.00 must be installed as they are mandatory, for the proper functioning of
tkz-euclide.
– This documentation and all examples were obtained with lualatex-dev but pdflatex should be suitable.
1 tkz-base and tkz-euclide are part of TeXLive and tlmgr allows you to install them. These packages are also part of MiKTeX under
Windows.
2 xfp replaces fp.
tkz-euclide AlterMundus
2 Installation 21
– tkz-obj-eu-lines.tex
– tkz-obj-eu-points-by.tex
– tkz-obj-eu-points-rnd.tex
– tkz-obj-eu-points-with.tex
– tkz-obj-eu-points.tex
– tkz-obj-eu-polygons.tex
– tkz-obj-eu-protractor.tex
– tkz-obj-eu-sectors.tex
– tkz-obj-eu-show.tex
– tkz-obj-eu-triangles.tex
– tkz-tools-angles.tex
– tkz-tools-intersections.tex
– tkz-tools-math.tex
tkz-euclide AlterMundus
3 News and compatibility 22
Some changes have been made to make the syntax more homogeneous and especially to distinguish the definition
and search for coordinates from the rest, i.e. drawing, marking and labelling. In the future, the definition macros
being isolated, it will be easier to introduce a phase of coordinate calculations using Lua.
An important novelty is the recent replacement of the fp package by xfp. This is to improve the calculations a
little bit more and to make it easier to use.
Here are some of the changes.
– The bounding box is now controlled in each macro (hopefully) to avoid the use of \tkzInit followed by
\tkzClip;
– Added macros for the bounding box: \tkzSaveBB \tkzClipBB and so on;
– Logically most macros accept Tik Z options. So I removed the ”duplicate” options when possible thus the
”label options” option is removed;
– Random points are now in tkz-euclide and the macro \tkzGetRandPointOn is replaced by \tkzDefRandPointOn.
For homogeneity reasons, the points must be retrieved with \tkzGetPoint;
– The options end and start which allowed to give a label to a straight line are removed. You now have to use
the macro \tkzLabelLine;
– Introduction of the libraries quotes and angles; it allows to give a label to a point, even if I am not in favour
of this practice;
– The notion of vector disappears, to draw a vector just pass ”->” as an option to \tkzDrawSegment;
– Many macros still exist, but are obsolete and will disappear:
– \tkzDrawMedians trace and create midpoints on the sides of a triangle. The creation and draw-
ing separation is not respected so it is preferable to first create the coordinates of these points with
\tkzSpcTriangle[median] and then to choose the ones you are going to draw with \tkzDrawSegments
or \tkzDrawLines;
– \tkzDrawMedians(A,B)(C) is now spelled \tkzDrawMedians(A,C,B). This defines the median from
𝐶;
– Another example \tkzDrawTriangle[equilateral] was handy but it is better to get the third point
with \tkzDefTriangle[equilateral] and then draw with \tkzDrawPolygon;
– \tkzDefRandPointOn is replaced by \tkzGetRandPointOn;
– now \tkzTangent is replaced by \tkzDefTangent;
– You can use global path name if you want find intersection but it’s very slow like in Tik Z.
tkz-euclide AlterMundus
4 Definition of a point 23
4 Definition of a point
\begin{tikzpicture}
\tkzGrid
\tkzDefPoint(0,0){O}
\tkzDrawPoint[red](O)
\tkzShowBB[line width=2pt,teal]
\end{tikzpicture}
\begin{tikzpicture}
\tkzDefPoint(0,0){O}
\tkzDefPoint(5,5){A}
\tkzDrawSegment[blue](O,A)
\tkzDrawPoints[red](O,A)
\tkzShowBB[line width=2pt,teal]
\end{tikzpicture}
tkz-euclide AlterMundus
4 Definition of a point 24
The Cartesian coordinate (𝑎, 𝑏) refers to the point 𝑎 centimeters in the 𝑥-direction and 𝑏 centimeters in the
𝑦-direction.
A point in polar coordinates requires an angle 𝛼, in degrees, and a distance 𝑑 from the origin with a dimensional
unit by default it’s the cm.
Cartesian coordinates Polar coordinates
𝑦 𝑦
𝑦1
𝐴1 (𝑥1 , 𝑦1 )
𝑃(𝛼 ∶ 𝑑)
𝑑
𝐽 𝐽
𝛼
𝑂 𝐼 𝑥1 𝑥 𝑂 𝐼 𝑥
\begin{tikzpicture}[scale=1] \begin{tikzpicture}[,scale=1]
\tkzInit[xmax=5,ymax=5] \tkzInit[xmax=5,ymax=5]
\tkzDefPoints{0/0/O,1/0/I,0/1/J} \tkzDefPoints{0/0/O,1/0/I,0/1/J}
\tkzDrawXY[noticks,>=latex] \tkzDefPoint(40:4){P}
\tkzDefPoint(3,4){A} \tkzDrawXY[noticks,>=triangle 45]
\tkzDrawPoints(O,A) \tkzDrawSegment[dim={$d$,
\tkzLabelPoint(A){$A_1 (x_1,y_1)$} 16pt,above=6pt}](O,P)
\tkzShowPointCoord[xlabel=$x_1$, \tkzDrawPoints(O,P)
ylabel=$y_1$](A) \tkzMarkAngle[mark=none,->](I,O,P)
\tkzLabelPoints(O,I) \tkzFillAngle[fill=blue!20,
\tkzLabelPoints[left](J) opacity=.5](I,O,P)
\tkzDrawPoints[shape=cross](I,J) \tkzLabelAngle[pos=1.25](I,O,P){$\alpha$}
\end{tikzpicture} \tkzLabelPoint(P){$P (\alpha : d )$}
\tkzDrawPoints[shape=cross](I,J)
\tkzLabelPoints(O,I)
\tkzLabelPoints[left](J)
\end{tikzpicture}
The \tkzDefPoint macro is used to define a point by assigning coordinates to it. This macro is based on
\coordinate, a macro of Tik Z. It can use Tik Z-specific options such as shift. If calculations are required
then the xfp package is chosen. We can use Cartesian or polar coordinates.
The obligatory arguments of this macro are two dimensions expressed with decimals, in the first case they are
two measures of length, in the second case they are a measure of length and the measure of an angle in degrees.
tkz-euclide AlterMundus
4 Definition of a point 25
\begin{tikzpicture}
\tkzInit[xmax=5,ymax=5]
\tkzDefPoint(0,0){A}
\tkzDefPoint(4,0){B}
\tkzDefPoint(0,3){C}
\tkzDrawPolygon(A,B,C)
\tkzDrawPoints(A,B,C)
\end{tikzpicture}
\begin{tikzpicture}[scale=1]
\tkzInit[xmax=4,ymax=4]
\tkzGrid
\tkzDefPoint(-1+2,sqrt(4)){O}
\tkzDefPoint({3*ln(exp(1))},{exp(1)}){A}
\tkzDefPoint({4*sin(pi/6)},{4*cos(pi/6)}){B}
\tkzDrawPoints[color=blue](O,B,A)
\end{tikzpicture}
\begin{tikzpicture}
\foreach \an [count=\i] in {0,60,...,300}
{ \tkzDefPoint(\an:3){A_\i}}
\tkzDrawPolygon(A_1,A_...,A_6)
\tkzDrawPoints(A_1,A_...,A_6)
\end{tikzpicture}
You must follow the syntax of xfp here. It is always possible to go through pgfmath but in this case, the coordinates
must be calculated before using the macro \tkzDefPoint.
tkz-euclide AlterMundus
4 Definition of a point 26
\begin{tikzpicture}[scale=.5]
\foreach \an [count=\i] in {0,2,...,358}
{ \tkzDefPoint(\an:sqrt(sqrt(\an mm))){A_\i}}
\tkzDrawPoints(A_1,A_...,A_180)
\end{tikzpicture}
First, we can use the scope environment from Tik Z. In the following example, we have a way to define an equilateral
triangle.
\begin{tikzpicture}[scale=1]
𝐵 𝐶
\tkzSetUpLine[color=blue!60]
\begin{scope}[rotate=30]
\tkzDefPoint(2,3){A}
\begin{scope}[shift=(A)]
\tkzDefPoint(90:5){B}
\tkzDefPoint(30:5){C}
\end{scope}
\end{scope}
\tkzDrawPolygon(A,B,C)
\tkzLabelPoints[above](B,C)
\tkzLabelPoints[below](A)
\tkzDrawPoints(A,B,C)
𝐴 \end{tikzpicture}
This macro allows you to place one point relative to another. This is equivalent to a translation. Here is how to
construct an isosceles triangle with main vertex 𝐴 and angle at vertex of 30∘ .
tkz-euclide AlterMundus
4 Definition of a point 27
\begin{tikzpicture}[rotate=-30]
𝐴
\tkzDefPoint(2,3){A}
𝐶 \tkzDefShiftPoint[A](0:4){B}
\tkzDefShiftPoint[A](30:4){C}
\tkzDrawSegments(A,B B,C C,A)
\tkzMarkSegments[mark=|,color=red](A,B A,C)
\tkzDrawPoints(A,B,C)
𝐵 \tkzLabelPoints(B,C)
\tkzLabelPoints[above left](A)
\end{tikzpicture}
\begin{tikzpicture}[scale=1]
𝐵 \tkzDefPoint(2,3){A}
\tkzDefShiftPoint[A](30:3){B}
𝐴 \tkzDefShiftPoint[A](-30:3){C}
\tkzDrawPolygon(A,B,C)
\tkzDrawPoints(A,B,C)
\tkzLabelPoints(B,C)
\tkzLabelPoints[above left](A)
\tkzMarkSegments[mark=|,color=red](A,B A,C B,C)
𝐶
\end{tikzpicture}
4.2.3 Parallelogram
\begin{tikzpicture}
\tkzDefPoint(0,0){A}
\tkzDefPoint(30:3){B}
\tkzDefShiftPointCoord[B](10:2){C}
\tkzDefShiftPointCoord[A](10:2){D}
\tkzDrawPolygon(A,...,D)
\tkzDrawPoints(A,...,D)
\end{tikzpicture}
tkz-euclide AlterMundus
5 Special points 28
\begin{tikzpicture}[scale=1]
\tkzDefPoints{0/0/A,4/0/B,4/3/C}
\tkzDrawPolygon(A,B,C)
\tkzDrawPoints(A,B,C)
\end{tikzpicture}
\begin{tikzpicture}[scale=1]
\tkzDefPoints{0/0/A,2/0/B,2/2/C,0/2/D}
\tkzDrawPolygon(A,...,D)
\tkzDrawPoints(A,B,C,D)
\end{tikzpicture}
5 Special points
The introduction of the dots was done in tkz-base, the most important macro being \tkzDefPoint. Here are
some special points.
\tkzDefMidPoint(⟨pt1,pt2⟩)
\begin{tikzpicture}[scale=1]
𝐴
\tkzDefPoint(2,3){A}
\tkzDefPoint(4,0){B}
\tkzDefMidPoint(A,B) \tkzGetPoint{C}
𝐶 \tkzDrawSegment(A,B)
\tkzDrawPoints(A,B,C)
\tkzLabelPoints[right](A,B,C)
\end{tikzpicture}
𝐵
tkz-euclide AlterMundus
5 Special points 29
⃗1 , 𝑣
𝑝𝑡1 , 𝑝𝑡2 , …, 𝑝𝑡𝑛 being 𝑛 points, they define 𝑛 vectors 𝑣 ⃗2 , …, 𝑣⃗𝑛 with the origin of the referential as the common
endpoint. 𝛼1 , 𝛼2 , …𝛼𝑛 are 𝑛 numbers, the vector obtained by:
⃗1 + 𝛼2 𝑣
𝛼1 𝑣 ⃗2 + ⋯ + 𝛼𝑛 𝑣⃗𝑛
𝛼1 + 𝛼2 + ⋯ + 𝛼𝑛
defines a single point.
In the following example, we obtain the barycentre of points 𝐴 and 𝐵 with coefficients 1 and 2, in other words:
2
⃗⃗⃗ ⃗⃗⃗
𝐴𝐼 = 𝐴𝐵
3
\begin{tikzpicture}
\tkzDefPoint(2,3){A}
𝐵 \tkzDefShiftPointCoord[2,3](30:4){B}
𝐼 \tkzDefBarycentricPoint(A=1,B=2)
\tkzGetPoint{I}
\tkzDrawPoints(A,B,I)
\tkzDrawLine(A,B)
𝐴 \tkzLabelPoints(A,B,I)
\end{tikzpicture}
This time 𝑀 is simply the centre of gravity of the triangle. For reasons of simplification and homogeneity, there is
also \tkzCentroid.
\begin{tikzpicture}[scale=.8]
𝐶
\tkzDefPoint(2,1){A}
\tkzDefPoint(5,3){B}
\tkzDefPoint(0,6){C}
𝐴′
\tkzDefBarycentricPoint(A=1,B=1,C=1)
\tkzGetPoint{M}
𝐵′ \tkzDefMidPoint(A,B) \tkzGetPoint{C'}
\tkzDefMidPoint(A,C) \tkzGetPoint{B'}
𝑀 𝐵 \tkzDefMidPoint(C,B) \tkzGetPoint{A'}
\tkzDrawPolygon(A,B,C)
𝐶′
\tkzDrawPoints(A',B',C')
\tkzDrawPoints(A,B,C,M)
\tkzDrawLines[add=0 and 1](A,M B,M C,M)
𝐴
\tkzLabelPoint(M){$M$}
\tkzAutoLabelPoints[center=M](A,B,C)
\tkzAutoLabelPoints[center=M,above right](A',B',C')
\end{tikzpicture}
tkz-euclide AlterMundus
5 Special points 30
The centres of the two homotheties in which two circles correspond are called external and internal centres of
similitude.
\begin{tikzpicture}[scale=.75,rotate=-30]
\tkzDefPoint(0,0){O}
\tkzDefPoint(4,-5){A}
\tkzDefIntSimilitudeCenter(O,3)(A,1)
\tkzGetPoint{I}
\tkzExtSimilitudeCenter(O,3)(A,1)
𝑂 \tkzGetPoint{J}
𝐹 \tkzDefTangent[from with R= I](O,3 cm)
\tkzGetPoints{D}{E}
𝐺 𝐷 \tkzDefTangent[from with R= I](A,1 cm)
𝐸
\tkzGetPoints{D'}{E'}
\tkzDefTangent[from with R= J](O,3 cm)
\tkzGetPoints{F}{G}
\tkzDefTangent[from with R= J](A,1 cm)
\tkzGetPoints{F'}{G'}
𝐼 \tkzDrawCircle[R,fill=red!50,opacity=.3](O,3 cm)
\tkzDrawCircle[R,fill=blue!50,opacity=.3](A,1 cm)
𝐸′ \tkzDrawSegments[add = .5 and .5,color=red](D,D' E,E')
𝐷′
𝐴
\tkzDrawSegments[add= 0 and 0.25,color=blue](J,F J,G)
𝐹′ \tkzDrawPoints(O,A,I,J,D,E,F,G,D',E',F',G')
𝐺′
\tkzLabelPoints[font=\scriptsize](O,A,I,J,D,E,F,G,D',E',F',G')
\end{tikzpicture}
tkz-euclide AlterMundus
6 Special points relating to a triangle 31
\tkzDefTriangleCenter[⟨local options⟩](⟨A,B,C⟩)
☞� Be careful, the arguments are lists of three points. This macro is used in conjunction with \tkzGetPoint to get
the center you are looking for. You can use tkzPointResult if it is not necessary to keep the results.
tkz-euclide AlterMundus
6 Special points relating to a triangle 32
\begin{tikzpicture}[scale=.75]
\tkzDefPoints{-1/1/A,5/1/B}
\tkzDefEquilateral(A,B)
\tkzGetPoint{C}
\tkzDefTriangleCenter[centroid](A,B,C)
\tkzGetPoint{G}
\tkzDrawPolygon[color=brown](A,B,C)
\tkzDrawPoints(A,B,C,G)
\tkzDrawLines[add = 0 and 2/3](A,G B,G C,G)
\end{tikzpicture}
\begin{tikzpicture}
\tkzDefPoints{0/1/A,3/2/B,1/4/C}
\tkzDefTriangleCenter[circum](A,B,C)
\tkzGetPoint{G}
\tkzDrawPolygon[color=brown](A,B,C)
\tkzDrawCircle(G,A)
\tkzDrawPoints(A,B,C,G)
\end{tikzpicture}
6.1.4 Option in
In geometry, the incircle or inscribed circle of a triangle is the largest circle contained in the triangle; it touches
(is tangent to) the three sides. The center of the incircle is a triangle center called the triangle’s incenter. The
center of the incircle, called the incenter, can be found as the intersection of the three internal angle bisectors.
The center of an excircle is the intersection of the internal bisector of one angle (at vertex 𝐴, for example) and
the external bisectors of the other two. The center of this excircle is called the excenter relative to the vertex
𝐴, or the excenter of 𝐴. Because the internal bisector of an angle is perpendicular to its external bisector, it
follows that the center of the incircle together with the three excircle centers form an orthocentric system.(https:
//en.wikipedia.org/wiki/Incircle_and_excircles_of_a_triangle)
We get the centre of the inscribed circle of the triangle. The result is of course in tkzPointResult. We can retrieve
it with \tkzGetPoint.
\begin{tikzpicture}
\tkzDefPoints{0/1/A,3/2/B,1/4/C}
\tkzDefTriangleCenter[in](A,B,C)\tkzGetPoint{I}
\tkzDefPointBy[projection=onto A--C](I)
\tkzGetPoint{Ib}
\tkzDrawPolygon[color=blue](A,B,C)
\tkzDrawPoints(A,B,C,I)
\tkzDrawLines[add = 0 and 2/3](A,I B,I C,I)
\tkzDrawCircle(I,Ib)
\end{tikzpicture}
6.1.5 Option ex
An excircle or escribed circle of the triangle is a circle lying outside the triangle, tangent to one of its sides and
tangent to the extensions of the other two. Every triangle has three distinct excircles, each tangent to one of the
tkz-euclide AlterMundus
6 Special points relating to a triangle 33
\begin{tikzpicture}[scale=.5]
\tkzDefPoints{0/1/A,3/2/B,1/4/C}
\tkzDefTriangleCenter[ex](B,C,A)
\tkzGetPoint{J_c}
\tkzDefPointBy[projection=onto A--B](J_c)
\tkzGetPoint{Tc}
%or
% \tkzDefCircle[ex](B,C,A)
𝐽𝑐
% \tkzGetFirstPoint{J_c}
% \tkzGetSecondPoint{Tc}
\tkzDrawPolygon[color=blue](A,B,C)
\tkzDrawPoints(A,B,C,J_c)
\tkzDrawCircle[red](J_c,Tc)
\tkzDrawLines[add=1.5 and 0](A,C B,C)
\tkzLabelPoints(J_c)
\end{tikzpicture}
This macro allows to obtain the center of the circle of the nine points or euler’s circle or Feuerbach’s circle.
The nine-point circle, also called Euler’s circle or the Feuerbach circle, is the circle that passes through the
perpendicular feet 𝐻𝐴 , 𝐻𝐵 , and 𝐻𝐶 dropped from the vertices of any reference triangle 𝐴𝐵𝐶 on the sides opposite
them. Euler showed in 1765 that it also passes through the midpoints 𝑀𝐴 , 𝑀𝐵 , 𝑀𝐶 of the sides of 𝐴𝐵𝐶. By
Feuerbach’s theorem, the nine-point circle also passes through the midpoints 𝐸𝐴 , 𝐸𝐵 , and 𝐸𝐶 of the segments
that join the vertices and the orthocenter 𝐻. These points are commonly referred to as the Euler points. (http:
//mathworld.wolfram.com/Nine-PointCircle.html)
𝐶
\begin{tikzpicture}[scale=1]
\tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
\tkzDefSpcTriangle[medial,
name=M](A,B,C){_A,_B,_C}
𝐻𝐴
\tkzDefTriangleCenter[euler](A,B,C)
𝐸𝐶
\tkzGetPoint{N} % I= N nine points
𝑀𝐵 𝑀𝐴 \tkzDefTriangleCenter[ortho](A,B,C)
\tkzGetPoint{H}
\tkzDefMidPoint(A,H) \tkzGetPoint{E_A}
𝐻𝐵 𝑁 \tkzDefMidPoint(C,H) \tkzGetPoint{E_C}
𝐻
\tkzDefMidPoint(B,H) \tkzGetPoint{E_B}
𝐸𝐴 𝐸𝐵
\tkzDefSpcTriangle[ortho,name=H](A,B,C){_A,_B,_C}
𝐴 𝐻𝐶 𝑀𝐶 𝐵 \tkzDrawPolygon[color=blue](A,B,C)
\tkzDrawCircle(N,E_A)
\tkzDrawSegments[blue](A,H_A B,H_B C,H_C)
\tkzDrawPoints(A,B,C,N,H)
\tkzDrawPoints[red](M_A,M_B,M_C)
\tkzDrawPoints[blue]( H_A,H_B,H_C)
\tkzDrawPoints[green](E_A,E_B,E_C)
\tkzAutoLabelPoints[center=N,
font=\scriptsize](A,B,C,%
M_A,M_B,M_C,%
H_A,H_B,H_C,%
E_A,E_B,E_C)
\tkzLabelPoints[font=\scriptsize](H,N)
\tkzMarkSegments[mark=s|,size=3pt,
color=blue,line width=1pt](B,E_B E_B,H)
\end{tikzpicture}
tkz-euclide AlterMundus
6 Special points relating to a triangle 34
\begin{tikzpicture}
\tkzDefPoint(0,0){A}
\tkzDefPoint(5,0){B}
\tkzDefPoint(1,4){C}
\tkzDefTriangleCenter[symmedian](A,B,C)\tkzGetPoint{K}
\tkzDefTriangleCenter[median](A,B,C)\tkzGetPoint{G}
\tkzDefTriangleCenter[in](A,B,C)\tkzGetPoint{I}
\tkzDefSpcTriangle[centroid,name=M](A,B,C){a,b,c}
\tkzDefSpcTriangle[incentral,name=I](A,B,C){a,b,c}
\tkzDrawPolygon[color=blue](A,B,C)
\tkzDrawLines[add = 0 and 2/3,blue](A,K B,K C,K)
\tkzDrawSegments[red,dashed](A,Ma B,Mb C,Mc)
\tkzDrawSegments[orange,dashed](A,Ia B,Ib C,Ic)
\tkzDrawLine[add=2 and 2](G,I)
\tkzDrawPoints(A,B,C,K,G,I)
\end{tikzpicture}
Let 𝑇𝑎 be the point at which the excircle with center 𝐽𝑎 meets the side 𝐵𝐶 of a triangle 𝐴𝐵𝐶, and define 𝑇𝑏 and
𝑇𝑐 similarly. Then the lines 𝐴𝑇𝑎, 𝐵𝑇𝑏, and 𝐶𝑇𝑐 concur in the Nagel point 𝑁𝑎. Weisstein, Eric W. ”Nagel point.”
From MathWorld–A Wolfram Web Resource.
\begin{tikzpicture}[scale=.5]
𝐽𝑏 \tkzDefPoints{0/0/A,6/0/B,4/6/C}
𝐶 \tkzDefSpcTriangle[ex](A,B,C){Ja,Jb,Jc}
𝐽𝑎 \tkzDefSpcTriangle[extouch](A,B,C){Ta,Tb,Tc}
\tkzDrawPoints(Ja,Jb,Jc,Ta,Tb,Tc)
𝑇𝑎 \tkzLabelPoints(Ja,Jb,Jc,Ta,Tb,Tc)
𝑇𝑏 \tkzDrawPolygon[blue](A,B,C)
𝑁𝑎 \tkzDefTriangleCenter[nagel](A,B,C) \tkzGetPoint{Na}
\tkzDrawPoints[blue](B,C,A)
\tkzDrawPoints[red](Na)
𝐴 𝑇𝑐 𝐵 \tkzLabelPoints[blue](B,C,A)
\tkzLabelPoints[red](Na)
\tkzDrawLines[add=0 and 1](A,Ta B,Tb C,Tc)
\tkzShowBB\tkzClipBB
\tkzDrawLines[add=1 and 1,dashed](A,B B,C C,A)
\tkzDrawCircles[ex,gray](A,B,C C,A,B B,C,A)
𝐽𝑐 \tkzDrawSegments[dashed](Ja,Ta Jb,Tb Jc,Tc)
\tkzMarkRightAngles[fill=gray!20](Ja,Ta,C
Jb,Tb,A Jc,Tc,B)
\end{tikzpicture}
tkz-euclide AlterMundus
7 Draw a point 35
\begin{tikzpicture}[scale=.5]
𝐽𝑏 \tkzDefPoints{0/0/A,6/0/B,4/6/C}
𝐽𝑎 \tkzDefSpcTriangle[centroid](A,B,C){Ma,Mb,Mc}
\tkzDefSpcTriangle[ex](A,B,C){Ja,Jb,Jc}
\tkzDefSpcTriangle[extouch](A,B,C){Ta,Tb,Tc}
𝑀𝑏 \tkzDefTriangleCenter[mittenpunkt](A,B,C)
𝑀𝑎 \tkzGetPoint{Mi}
𝑀𝑖 \tkzDrawPoints(Ma,Mb,Mc,Ja,Jb,Jc)
\tkzClipBB
\tkzDrawPolygon[blue](A,B,C)
𝑀𝑐 \tkzDrawLines[add=0 and 1](Ja,Ma
Jb,Mb Jc,Mc)
\tkzDrawLines[add=1 and 1](A,B A,C B,C)
\tkzDrawCircles[gray](Ja,Ta Jb,Tb Jc,Tc)
\tkzDrawPoints[blue](B,C,A)
𝐽𝑐 \tkzDrawPoints[red](Mi)
𝐽𝑐 \tkzLabelPoints[red](Mi)
\tkzLabelPoints[left](Mb)
\tkzLabelPoints(Ma,Mc,Jb,Jc)
\tkzLabelPoints[above left](Ja,Jc)
\tkzShowBB
\end{tikzpicture}
7 Draw a point
\tkzDrawPoint[⟨local options⟩](⟨name⟩)
The argument is required. The disc takes the color of the circle, but lighter. It is possible to change everything.
The point is a node and therefore it is invariant if the drawing is modified by scaling.
Note that scale does not affect the shape of the dots. Which is normal. Most of the time, we are satisfied with a
single point shape that we can define from the beginning, either with a macro or by modifying a configuration file.
tkz-euclide AlterMundus
7 Draw a point 36
\begin{tikzpicture}[scale=.5]
\tkzDefPoint(1,3){A}
\tkzDefPoint(4,1){B}
\tkzDefPoint(0,0){O}
\tkzDrawPoint[color=red](A)
\tkzDrawPoint[fill=blue!20,draw=blue](B)
\tkzDrawPoint[color=green](O)
\end{tikzpicture}
It is possible to draw several points at once but this macro is a little slower than the previous one. Moreover, we
have to make do with the same options for all the points.
\tkzDrawPoints[⟨local options⟩](⟨liste⟩)
☞� Beware of the final ”s”, an oversight leads to cascading errors if you try to draw multiple points. The options are
the same as for the previous macro.
\begin{tikzpicture}
\tkzDefPoint(1,3){A}
\tkzDefPoint(4,1){B}
\tkzDefPoint(0,0){C}
\tkzDrawPoints[size=6,color=red,
fill=red!50](A,B,C)
\end{tikzpicture}
\begin{tikzpicture}[scale=.5]
\tkzDefPoint(2,3){A} \tkzDefPoint(5,-1){B}
\tkzDefPoint[label=below:$\mathcal{C}$,
shift={(2,3)}](-30:5.5){E}
𝐶 \begin{scope}[shift=(A)]
\tkzDefPoint(30:5){C}
𝐴 \end{scope}
𝒞 \tkzCalcLength[cm](A,B)\tkzGetLength{rAB}
\tkzDrawCircle[R](A,\rAB cm)
\tkzDrawSegment(A,B)
\tkzDrawPoints(A,B,C)
\tkzLabelPoints(B,C)
𝐵 \tkzLabelPoints[above](A)
\end{tikzpicture}
tkz-euclide AlterMundus
8 Point on line or circle 37
\tkzDefPointOnLine[⟨local options⟩](⟨A,B⟩)
\begin{tikzpicture}
pos=−.2 pos=.5 pos=1.2
\tkzDefPoints{0/0/A,4/0/B}
𝐴 𝐵 \tkzDrawLine[red](A,B)
\tkzDefPointOnLine[pos=1.2](A,B)
\tkzGetPoint{P}
\tkzDefPointOnLine[pos=-0.2](A,B)
\tkzGetPoint{R}
\tkzDefPointOnLine[pos=0.5](A,B)
\tkzGetPoint{S}
\tkzDrawPoints(A,B,P)
\tkzLabelPoints(A,B)
\tkzLabelPoint[above](P){pos=$1.2$}
\tkzLabelPoint[above](R){pos=$-.2$}
\tkzLabelPoint[above](S){pos=$.5$}
\tkzDrawPoints(A,B,P,R,S)
\tkzLabelPoints(A,B)
\end{tikzpicture}
\tkzDefPointOnCircle[⟨local options⟩]
tkz-euclide AlterMundus
8 Point on line or circle 38
\begin{tikzpicture}
\tkzDefPoints{0/0/A,4/0/B,0.8/3/C}
\tkzDefPointOnCircle[angle=90,center=B,radius=1 cm]
\tkzGetPoint{I}
𝐽
\tkzDefCircle[circum](A,B,C)
\tkzGetPoint{G} \tkzGetLength{rG}
\tkzDefPointOnCircle[angle=30,center=G,radius=\rG pt]
𝐺
\tkzGetPoint{J}
\tkzDrawCircle[R,teal](B,1cm)
\tkzDrawPoint[teal](I)
\tkzDrawPoints(A,B,C)
\tkzDrawCircle(G,J)
\tkzDrawPoints(G,J)
\tkzDrawPoint[red](J)
\tkzLabelPoints(G,J)
\end{tikzpicture}
tkz-euclide AlterMundus
9 Definition of points by transformation; \tkzDefPointBy 39
\tkzDefPointBy[⟨local options⟩](⟨pt⟩)
The argument is a simple existing point and its image is stored in tkzPointResult. If you want to keep this point
then the macro \tkzGetPoint{M} allows you to assign the name M to the point.
options examples
translation = from #1 to #2 [translation=from A to B](E)
homothety = center #1 ratio #2 [homothety=center A ratio .5](E)
reflection = over #1--#2 [reflection=over A--B](E)
symmetry = center #1 [symmetry=center A](E)
projection = onto #1--#2 [projection=onto A--B](E)
rotation = center #1 angle #2 [rotation=center O angle 30](E)
rotation in rad = center #1 angle #2 [rotation in rad=center O angle pi/3](E)
inversion = center #1 through #2 [inversion =center O through A](E)
The image is only defined and not drawn.
tkz-euclide AlterMundus
9 Definition of points by transformation; \tkzDefPointBy 40
\begin{tikzpicture}[>=latex]
𝐵 \tkzDefPoint(0,0){A} \tkzDefPoint(3,1){B}
\tkzDefPoint(3,0){C}
𝐴 𝐶 \tkzDefPointBy[translation= from B to A](C)
\tkzGetPoint{D}
\tkzDrawPoints[teal](A,B,C,D)
𝐷 \tkzLabelPoints[color=teal](A,B,C,D)
\tkzDrawSegments[orange,->](A,B D,C)
\end{tikzpicture}
tkz-euclide AlterMundus
9 Definition of points by transformation; \tkzDefPointBy 41
\begin{tikzpicture}[scale=1]
\tkzDefPoints{1.5/-1.5/C,-4.5/2/D}
\tkzDefPoint(-4,-2){O}
\tkzDefPoint(-2,-2){A}
\foreach \i in {0,1,...,4}{%
\pgfmathparse{0+\i * 72}
\tkzDefPointBy[rotation=%
center O angle \pgfmathresult](A)
\tkzGetPoint{A\i}
\tkzDefPointBy[reflection = over C--D](A\i)
\tkzGetPoint{A\i'}}
\tkzDrawPolygon(A0, A2, A4, A1, A3)
\tkzDrawPolygon(A0', A2', A4', A1', A3')
\tkzDrawLine[add= .5 and .5](C,D)
\end{tikzpicture}
𝑎′
\begin{tikzpicture}[scale=1.2]
\tkzDefPoint(0,1){A} \tkzDefPoint(5,3){B} \tkzDefPoint(3,4){C}
\tkzDefLine[bisector](B,A,C) \tkzGetPoint{a}
\tkzDrawLine[add=0 and 0,color=magenta!50 ](A,a)
\tkzDefPointBy[homothety=center A ratio .5](a) \tkzGetPoint{a'}
\tkzDefPointBy[projection = onto A--B](a') \tkzGetPoint{k'}
\tkzDefPointBy[projection = onto A--B](a) \tkzGetPoint{k}
\tkzDrawLines[add= 0 and .3](A,k A,C)
\tkzDrawSegments[blue](a',k' a,k)
\tkzDrawPoints(a,a',k,k',A)
\tkzDrawCircles(a',k' a,k)
\tkzLabelPoints(a,a',k,A)
\end{tikzpicture}
tkz-euclide AlterMundus
9 Definition of points by transformation; \tkzDefPointBy 42
𝐹
𝐷
𝐴 𝐶
\begin{tikzpicture}[scale=1.5]
\tkzDefPoint(0,0){A}
\tkzDefPoint(0,4){B}
\tkzDefTriangle[pythagore](B,A) \tkzGetPoint{C}
\tkzDefLine[bisector](B,C,A) \tkzGetPoint{c}
\tkzInterLL(C,c)(A,B) \tkzGetPoint{D}
\tkzDefPointBy[projection=onto B--C](D) \tkzGetPoint{G}
\tkzInterLC(C,D)(D,A) \tkzGetPoints{E}{F}
\tkzDrawPolygon[teal](A,B,C)
\tkzDrawSegment(C,D)
\tkzDrawCircle(D,A)
\tkzDrawSegment[orange](D,G)
\tkzMarkRightAngle[fill=orange!20](D,G,B)
\tkzDrawPoints(A,C,F) \tkzLabelPoints(A,C,F)
\tkzDrawPoints(B,D,E,G)
\tkzLabelPoints[above right](B,D,E,G)
\end{tikzpicture}
𝐴′
60∘
𝑂
𝐵′
tkz-euclide AlterMundus
9 Definition of points by transformation; \tkzDefPointBy 43
\begin{tikzpicture}[scale=1]
\tkzDefPoint(0,0){O}
\tkzDefPoint(2,-1){A}
\tkzDefPoint(2,2){B}
\tkzDefPointsBy[symmetry=center O](B,A){}
\tkzDrawLine(A,A')
\tkzDrawLine(B,B')
\tkzMarkAngle[mark=s,arc=lll,
size=2 cm,mkcolor=red](A,O,B)
\tkzLabelAngle[pos=1,circle,draw,
fill=blue!10](A,O,B){$60^{\circ}$}
\tkzDrawPoints(A,B,O,A',B')
\tkzLabelPoints(A,B,O,A',B')
\end{tikzpicture}
\begin{tikzpicture}[scale=0.5]
\tkzDefPoint(0,0){A}
\tkzDefPoint(5,0){B}
\tkzDrawSegment(A,B)
\tkzDefPointBy[rotation=center A angle 60](B)
\tkzGetPoint{C}
\tkzDefPointBy[symmetry=center C](A)
\tkzGetPoint{D}
\tkzDrawSegment(A,tkzPointResult)
\tkzDrawLine(B,D)
\tkzDrawArc[orange,delta=10](A,B)(C)
\tkzDrawArc[orange,delta=10](B,C)(A)
\tkzDrawArc[orange,delta=10](C,D)(D)
\tkzMarkRightAngle(D,B,A)
\end{tikzpicture}
\begin{tikzpicture}
\tkzDefPoint["$A$" left](1,5){A}
𝐶 \tkzDefPoint["$B$" right](5,2){B}
\tkzDefPointBy[rotation in rad= center A angle pi/3](B)
\tkzGetPoint{C}
\tkzDrawSegment(A,B)
𝐴 \tkzDrawPoints(A,B,C)
\tkzCompass[color=red](A,C)
\tkzCompass[color=red](B,C)
\tkzLabelPoints(C)
\end{tikzpicture}
tkz-euclide AlterMundus
9 Definition of points by transformation; \tkzDefPointBy 44
\begin{tikzpicture}[scale=1.5]
\tkzDefPoint(0,0){O}
\tkzDefPoint(1,0){A}
\tkzDefPoint(-1.5,-1.5){z1}
\tkzDefPoint(0.35,0){z2}
𝑂 𝑧2 𝐴 𝑍2
\tkzDefPointBy[inversion =%
𝑍1 center O through A](z1)
\tkzGetPoint{Z1}
\tkzDefPointBy[inversion =%
center O through A](z2)
𝑧1 \tkzGetPoint{Z2}
\tkzDrawCircle(O,A)
\tkzDrawPoints[color=black,
fill=red,size=4](Z1,Z2)
\tkzDrawSegments(z1,Z1 z2,Z2)
\tkzDrawPoints[color=black,
fill=red,size=4](O,z1,z2)
\tkzLabelPoints(O,A,z1,z2,Z1,Z2)
\end{tikzpicture}
\begin{tikzpicture}[scale=1.5]
\tkzDefPoint(0,0){O}
\tkzDefPoint(1,0){A}
\tkzDrawCircle(O,A)
\tkzDefPoint(0.5,-0.25){z1}
\tkzDefPoint(-0.5,-0.5){z2}
\tkzDefPointBy[inversion = %
center O through A](z1)
\tkzGetPoint{Z1}
\tkzCircumCenter(z1,z2,Z1)
\tkzGetPoint{c}
\tkzDrawCircle(c,Z1)
\tkzDrawPoints[color=black,
fill=red,size=4](O,z1,z2,Z1,O,A)
\end{tikzpicture}
Variant of the previous macro for defining multiple images. You must give the names of the images as arguments,
or indicate that the names of the images are formed from the names of the antecedents, leaving the argument
empty.
tkz-euclide AlterMundus
9 Definition of points by transformation; \tkzDefPointBy 45
The image is 𝐵 ′ .
arguments examples
(⟨list of points⟩){⟨list of pts⟩} (A,B){E,F} 𝐸 is the image of 𝐴 and 𝐹 is the image of 𝐵.
If the list of images is empty then the name of the image is the name of the antecedent to which ” ’ ” is added.
options examples
translation = from #1 to #2 [translation=from A to B](E){}
homothety = center #1 ratio #2 [homothety=center A ratio .5](E){F}
reflection = over #1--#2 [reflection=over A--B](E){F}
symmetry = center #1 [symmetry=center A](E){F}
projection = onto #1--#2 [projection=onto A--B](E){F}
rotation = center #1 angle #2 [rotation=center angle 30](E){F}
rotation in rad = center #1 angle #2 for instance angle pi/3
\begin{tikzpicture}[>=latex]
𝐶′ \tkzDefPoint(0,0){A} \tkzDefPoint(3,1){A'}
\tkzDefPoint(3,0){B} \tkzDefPoint(1,2){C}
𝐶 \tkzDefPointsBy[translation= from A to A'](B,C){}
\tkzDrawPolygon[color=blue](A,B,C)
\tkzDrawPolygon[color=red](A',B',C')
\tkzDrawPoints[color=blue](A,B,C)
𝐴′ 𝐵′ \tkzDrawPoints[color=red](A',B',C')
\tkzLabelPoints(A,B,A',B')
\tkzLabelPoints[above](C,C')
𝐴 𝐵 \tkzDrawSegments[color = gray,->,
style=dashed](A,A' B,B' C,C')
\end{tikzpicture}
tkz-euclide AlterMundus
10 Defining points using a vector 46
10.1 \tkzDefPointWith
There are several possibilities to create points that meet certain vector conditions. This can be done with
\tkzDefPointWith. The general principle is as follows, two points are passed as arguments, i.e. a vector. The
different options allow to obtain a new point forming with the first point (with some exceptions) a collinear
vector or a vector orthogonal to the first vector. Then the length is either proportional to that of the first one, or
proportional to the unit. Since this point is only used temporarily, it does not have to be named immediately. The
result is in tkzPointResult. The macro \tkzGetPoint allows you to retrieve the point and name it differently.
There are options to define the distance between the given point and the obtained point. In the general case this
distance is the distance between the 2 points given as arguments if the option is of the ”normed” type then the
distance between the given point and the obtained point is 1 cm. Then the 𝐾 option allows to obtain multiples.
\tkzDefPointWith(⟨pt1,pt2⟩)
𝐴𝐵 = ⃗⃗⃗⃗
(⃗⃗⃗ 𝐶𝐷)
\begin{tikzpicture}[scale=1.2,
𝐴
vect/.style={->,shorten >=3pt,>=latex'}]
\tkzDefPoint(2,3){A} \tkzDefPoint(4,2){B}
\tkzDefPoint(0,1){C}
𝐵 \tkzDefPointWith[colinear=at C](A,B)
\tkzGetPoint{D}
\tkzDrawPoints[color=red](A,B,C,D)
𝐶 \tkzLabelPoints[above right=3pt](A,B,C,D)
\tkzDrawSegments[vect](A,B C,D)
\end{tikzpicture}
𝐷
tkz-euclide AlterMundus
10 Defining points using a vector 47
\begin{tikzpicture}[vect/.style={->,
𝐶 𝐻 𝐺 shorten >=3pt,>=latex'}]
\tkzDefPoint(0,0){A}
\tkzDefPoint(5,0){B}
\tkzDefPoint(1,2){C}
\tkzDefPointWith[colinear=at C](A,B)
𝐴 𝐵 \tkzGetPoint{G}
\tkzDefPointWith[colinear=at C,K=0.5](A,B)
\tkzGetPoint{H}
\tkzLabelPoints(A,B,C,G,H)
\tkzDrawPoints(A,B,C,G,H)
\tkzDrawSegments[vect](A,B C,H)
\end{tikzpicture}
√2
10.1.3 Option colinear at with 𝐾 = 2
\begin{tikzpicture}[vect/.style={->,
shorten >=3pt,>=latex'}]
\tkzDefPoint(1,1){A}
\tkzDefPoint(4,2){B}
\tkzDefPoint(2,2){CU}
\tkzDefPointWith[colinear=at C,K=sqrt(2)/2](A,B)
\tkzGetPoint{D}
\tkzDrawPoints[color=red](A,B,C,D)
\tkzDrawSegments[vect](A,B C,D)
\end{tikzpicture}
AB=AC since 𝐾 = 1.
\begin{tikzpicture}[scale=1.2,
𝐶
vect/.style={->,shorten >=3pt,>=latex'}]
\tkzDefPoint(2,3){A}
\tkzDefPoint(4,2){B}
\tkzDefPointWith[orthogonal,K=1](A,B)
\tkzGetPoint{C}
\tkzDrawPoints[color=red](A,B,C)
\tkzLabelPoints[right=3pt](B,C)
𝐴 \tkzLabelPoints[below=3pt](A)
\tkzDrawSegments[vect](A,B A,C)
𝐵 \tkzMarkRightAngle(B,A,C)
\end{tikzpicture}
tkz-euclide AlterMundus
10 Defining points using a vector 48
\begin{tikzpicture}[scale=.75]
𝐼 \tkzDefPoint(1,2){O}
\tkzDefPoint(2,5){I}
\tkzDefPointWith[orthogonal](O,I)
\tkzGetPoint{J}
𝐽 \tkzDefPointWith[orthogonal,K=-1](O,I)
\tkzGetPoint{K}
𝑂
\tkzDrawSegment(O,I)
\tkzDrawSegments[->](O,J O,K)
𝐾
\tkzMarkRightAngles(I,O,J I,O,K)
\tkzDrawPoints(O,I,J,K)
\tkzLabelPoints(O,I,J,K)
\end{tikzpicture}
\begin{tikzpicture}[scale=.75]
\tkzDefPoints{0/0/A,6/0/B}
𝐶 \tkzDefMidPoint(A,B)
\tkzGetPoint{I}
\tkzDefPointWith[orthogonal,K=-.75](B,A)
𝐹 \tkzGetPoint{C}
\tkzInterLC(B,C)(B,I)
\tkzGetPoints{D}{F}
\tkzDuplicateSegment(B,F)(A,F)
𝐸
\tkzGetPoint{E}
\tkzDrawArc[delta=10](F,E)(B)
𝐴 𝑀 𝐵 \tkzInterLC(A,B)(A,E)
\tkzGetPoints{N}{M}
\tkzDrawArc[delta=10](A,M)(E)
\tkzDrawLines(A,B B,C A,F)
\tkzCompass(B,F)
\tkzDrawPoints(A,B,C,F,M,E)
\tkzLabelPoints(A,B,C,F,M,E)
\end{tikzpicture}
\begin{tikzpicture}[scale=1.2,
vect/.style={->,shorten >=3pt,>=latex'}]
\tkzDefPoint(2,1){A}
\tkzDefPoint(6,2){B}
\tkzDefPointWith[orthogonal,K=.5](A,B)
\tkzGetPoint{C}
\tkzDefPointWith[colinear=at C,K=.5](A,B)
\tkzGetPoint{D}
\tkzMarkRightAngle[fill=gray!20](B,A,C)
\tkzDrawSegments[vect](A,B A,C C,D)
\tkzDrawPoints(A,...,D)
\end{tikzpicture}
𝐴𝐶 = 1.
tkz-euclide AlterMundus
10 Defining points using a vector 49
\begin{tikzpicture}[scale=1.2,
vect/.style={->,shorten >=3pt,>=latex'}]
\tkzDefPoint(2,3){A} \tkzDefPoint(4,2){B}
\tkzDefPointWith[orthogonal normed](A,B)
\tkzGetPoint{C}
\tkzDrawPoints[color=red](A,B,C)
\tkzDrawSegments[vect](A,B A,C)
\tkzMarkRightAngle[fill=gray!20](B,A,C)
\end{tikzpicture}
𝐾 = 2 therefore 𝐴𝐶 = 2.
\begin{tikzpicture}[scale=1.2,
𝐶
vect/.style={->,shorten >=3pt,>=latex'}]
\tkzDefPoint(2,3){A} \tkzDefPoint(5,1){B}
\tkzDefPointWith[orthogonal normed,K=2](A,B)
\tkzGetPoint{C}
\tkzDrawPoints[color=red](A,B,C)
𝐴 \tkzDrawCircle[R](A,2cm)
\tkzDrawSegments[vect](A,B A,C)
\tkzMarkRightAngle[fill=gray!20](B,A,C)
\tkzLabelPoints[above=3pt](A,B,C)
\end{tikzpicture}
Here 𝐾 = 0.5.
This amounts to applying a homothety or a multiplication of a vector by a real. Here is the middle of [𝐴𝐵].
\begin{tikzpicture}[scale=1.2]
𝐴
\tkzDefPoint(1,3){A} \tkzDefPoint(4,2){B}
𝐶 \tkzDefPointWith[linear,K=0.5](A,B)
\tkzGetPoint{C}
𝐵 \tkzDrawPoints[color=red](A,B,C)
\tkzDrawSegment(A,B)
\tkzLabelPoints[above right=3pt](A,B,C)
\end{tikzpicture}
\begin{tikzpicture}[scale=1.2]
𝐴
1 \tkzDefPoint(1,3){A} \tkzDefPoint(4,2){B}
𝐶
\tkzDefPointWith[linear normed](A,B)
\tkzGetPoint{C}
𝐵 \tkzDrawPoints[color=red](A,B,C)
\tkzDrawSegment(A,B)
\tkzLabelSegment(A,C){$1$}
\tkzLabelPoints[above right=3pt](A,B,C)
\end{tikzpicture}
tkz-euclide AlterMundus
10 Defining points using a vector 50
10.2 \tkzGetVectxy
\tkzGetVectxy(⟨𝐴, 𝐵⟩){⟨text⟩}
\begin{tikzpicture}
𝐵 \tkzDefPoint(0,0){O}
\tkzDefPoint(1,1){A}
𝐴 𝑉 \tkzDefPoint(4,2){B}
\tkzGetVectxy(A,B){v}
\tkzDefPoint(\vx,\vy){V}
𝑂 \tkzDrawSegment[->,color=red](O,V)
\tkzDrawSegment[->,color=blue](A,B)
\tkzDrawPoints(A,B,O)
\tkzLabelPoints(A,B,O,V)
\end{tikzpicture}
tkz-euclide AlterMundus
11 Random point definition 51
\tkzDefRandPointOn[⟨local options⟩]
The result is a point with a random position that can be named with the macro \tkzGetPoint. It is possible to
use tkzPointResult if it is not necessary to retain the results.
\begin{tikzpicture}
𝐶 \tkzInit[xmax=5,ymax=5]\tkzGrid
\tkzDefPoints{0/0/A,2/2/B,5/5/C}
𝑑 \tkzDefRandPointOn[rectangle = A and B]
\tkzGetPoint{a}
\tkzDefRandPointOn[rectangle = B and C]
\tkzGetPoint{d}
\tkzDrawLine(a,d)
\tkzDrawPoints(A,B,C,a,d)
𝐵
\tkzLabelPoints(A,B,C,a,d)
\end{tikzpicture}
𝑎
tkz-euclide AlterMundus
11 Random point definition 52
\begin{tikzpicture}
𝑑𝐷 \tkzInit[xmax=5,ymax=5] \tkzGrid
\tkzDefPoints{0/0/A,2/2/B,3/3/C,5/5/D}
\tkzDefRandPointOn[segment = A--B]\tkzGetPoint{a}
\tkzDefRandPointOn[segment = C--D]\tkzGetPoint{d}
\tkzDrawPoints(A,B,C,D,a,d)
𝐶 \tkzLabelPoints(A,B,C,D,a,d)
\end{tikzpicture}
𝐵
\begin{tikzpicture}
𝐷 \tkzInit[xmax=5,ymax=5] \tkzGrid
\tkzDefPoints{0/0/A,2/2/B,3/3/C,5/5/D}
\tkzDefRandPointOn[line = A--B]\tkzGetPoint{E}
\tkzDefRandPointOn[line = C--D]\tkzGetPoint{F}
\tkzDrawPoints(A,...,F)
𝐶 \tkzLabelPoints(A,...,F)
𝐹
\end{tikzpicture}
𝐵
𝐸
\begin{tikzpicture}
𝐵 \tkzDefPoints{0/0/A,2/2/B,-1/-1/C}
\tkzDefCircle[through=](A,C)
\tkzGetLength{rAC}
𝑎 𝑏 \tkzDrawCircle(A,C)
\tkzDrawCircle(A,B)
\tkzDefRandPointOn[rectangle=A and B]
𝐴
\tkzGetPoint{a}
\tkzDefRandPointOn[segment=A--B]
𝑒 𝑐
𝐶 \tkzGetPoint{b}
𝑑
\tkzDefRandPointOn[circle=center A radius \rAC pt]
\tkzGetPoint{d}
\tkzDefRandPointOn[circle through= center A through B]
\tkzGetPoint{c}
\tkzDefRandPointOn[disk through=center A through B]
\tkzGetPoint{e}
\tkzLabelPoints[above right=3pt](A,B,C,a,b,...,e)
\tkzDrawPoints[](A,B,C,a,b,...,e)
\tkzDrawRectangle(A,B)
\end{tikzpicture}
tkz-euclide AlterMundus
11 Random point definition 53
\begin{tikzpicture}
\tkzInit[xmax=5,ymax=5] \tkzGrid
\tkzDefPoints{3/2/A,1/1/B}
\tkzCalcLength[cm](A,B) \tkzGetLength{rAB}
\tkzDrawCircle[R](A,\rAB cm)
\tkzDefRandPointOn[circle = center A radius
\rAB cm]\tkzGetPoint{a}
\tkzDrawSegment(A,a)
𝑎 \tkzDrawPoints(A,B,a)
𝐴
\tkzLabelPoints(A,B,a)
\end{tikzpicture}
𝐵
\begin{tikzpicture}[scale=1]
\tkzDefPoints{0/0/A,3/0/B}
\def\coeffK{2}
\tkzApolloniusCenter[K=\coeffK](A,B)
\tkzGetPoint{P}
\tkzDefApolloniusPoint[K=\coeffK](A,B)
𝐴 𝑀 𝐵 𝑃 \tkzGetPoint{M}
\tkzDefApolloniusRadius[K=\coeffK](A,B)
𝑀𝐴/𝑀𝐵 = 2
\tkzDrawCircle[R,color = blue!50!black,
𝑁𝐴/𝑁𝐵
𝑁 =2 fill=blue!20,
opacity=.4](tkzPointResult,\tkzLengthResult pt)
\tkzDefRandPointOn[circle through= center P through M]
\tkzGetPoint{N}
\tkzDrawPoints(A,B,P,M,N)
\tkzLabelPoints(A,B,P,M,N)
\tkzDrawSegments[red](N,A N,B)
\tkzDrawPoints(A,B)
\tkzDrawSegments[red](A,B)
\tkzLabelCircle[R,draw,fill=green!10,%
text width=3cm,%
text centered](P,\tkzLengthResult pt-20pt)(-
120)%
{ $MA/MB=\coeffK$\\$NA/NB=\coeffK$}
\end{tikzpicture}
To conclude this section, here is a more complex example. It involves determining the middle of a segment, using
only a compass.
tkz-euclide AlterMundus
11 Random point definition 54
\begin{tikzpicture}[scale=.75]
\tkzDefPoint(0,0){A}
\tkzDefRandPointOn[circle= center A radius 4cm]
\tkzGetPoint{B}
\tkzDrawPoints(A,B)
\tkzDefPointBy[rotation= center A angle 180](B)
\tkzGetPoint{C}
\tkzInterCC[R](A,4 cm)(B,4 cm)
𝐴 \tkzGetPoints{I}{I'}
\tkzInterCC[R](A,4 cm)(I,4 cm)
\tkzGetPoints{J}{B}
\tkzInterCC(B,A)(C,B)
𝑀 \tkzGetPoints{D}{E}
\tkzInterCC(D,B)(E,B)
\tkzGetPoints{M}{M'}
\tikzset{arc/.style={color=brown,style=dashed,delta=10}}
𝐵
\tkzDrawArc[arc](C,D)(E)
\tkzDrawArc[arc](B,E)(D)
\tkzDrawCircle[color=brown,line width=.2pt](A,B)
\tkzDrawArc[arc](D,B)(M)
\tkzDrawArc[arc](E,M)(B)
\tkzCompasss[color=red,style=solid](B,I I,J J,C)
\tkzDrawPoints(B,C,D,E,M)
\tkzLabelPoints(A,B,M)
\end{tikzpicture}
tkz-euclide AlterMundus
12 The straight lines 55
It is of course essential to draw straight lines, but before this can be done, it is necessary to be able to define certain
particular lines such as mediators, bisectors, parallels or even perpendiculars. The principle is to determine two
points on the straight line.
The argument is a list of two or three points. Depending on the case, the macro defines one or two points
necessary to obtain the line sought. Either the macro \tkzGetPoint or the macro \tkzGetPoints must be
used.
\begin{tikzpicture}[rotate=25]
\tkzDefPoints{-2/0/A,1/2/B}
\tkzDefLine[mediator](A,B) \tkzGetPoints{C}{D}
\tkzDefPointWith[linear,K=.75](C,D) \tkzGetPoint{D}
\tkzDefMidPoint(A,B) \tkzGetPoint{I}
\tkzFillPolygon[color=orange!30](A,C,B,D)
\tkzDrawSegments(A,B C,D)
\tkzMarkRightAngle(B,I,C)
\tkzDrawSegments(D,B D,A)
\tkzDrawSegments(C,B C,A)
\end{tikzpicture}
tkz-euclide AlterMundus
12 The straight lines 56
\begin{tikzpicture}[rotate=25,scale=.75]
\tkzDefPoints{0/0/C, 2/-3/A, 4/0/B}
\tkzDefLine[bisector,normed](B,A,C) \tkzGetPoint{a}
\tkzDrawLines[add= 0 and .5](A,B A,C)
\tkzShowLine[bisector,gap=4,size=2,color=red](B,A,C)
\tkzDrawLines[blue!50,dashed,add= 0 and 3](A,a)
\end{tikzpicture}
\begin{tikzpicture}
\tkzDefPoints{-1.5/-0.25/A,1/-0.75/B,-0.7/1/C}
\tkzDrawLine(A,B)
\tkzLabelLine[pos=1.25,below left](A,B){$(d_1)$}
(𝑑2 )
\tkzDrawPoints(A,B,C)
\tkzDefLine[orthogonal=through C](B,A) \tkzGetPoint{c}
\tkzDrawLine(C,c)
(𝑑1 ) \tkzLabelLine[pos=1.25,left](C,c){$(\delta)$}
\tkzInterLL(A,B)(C,c) \tkzGetPoint{I}
(𝛿) \tkzMarkRightAngle(C,I,B)
\tkzDefLine[parallel=through C](A,B) \tkzGetPoint{c'}
\tkzDrawLine(C,c')
\tkzLabelLine[pos=1.25,below left](C,c'){$(d_2)$}
\tkzMarkRightAngle(I,C,c')
\end{tikzpicture}
12.1.4 An envelope
tkz-euclide AlterMundus
12 The straight lines 57
\begin{tikzpicture}[scale=.75]
\tkzInit[xmin=-6,ymin=-4,xmax=6,ymax=6] % necessary
\tkzClip
\tkzDefPoint(0,0){O}
\tkzDefPoint(132:4){A}
\tkzDefPoint(5,0){B}
\foreach \ang in {5,10,...,360}{%
\tkzDefPoint(\ang:5){M}
\tkzDefLine[mediator](A,M)
\tkzDrawLine[color=magenta,add= 3 and 3](tkzFirstPointResult,tkzSecondPointResult)}
\end{tikzpicture}
12.1.5 A parabola
Based on a figure from O. Reboux with pst-eucl by D Rodriguez. It is not necessary to name the two points that
define the mediator.
\begin{tikzpicture}[scale=.75]
\tkzInit[xmin=-6,ymin=-4,xmax=6,ymax=6]
\tkzClip
\tkzDefPoint(0,0){O}
\tkzDefPoint(132:5){A}
\tkzDefPoint(4,0){B}
\foreach \ang in {5,10,...,360}{%
\tkzDefPoint(\ang:4){M}
\tkzDefLine[mediator](A,M)
\tkzDrawLine[color=magenta,add= 3 and 3](tkzFirstPointResult,tkzSecondPointResult)}
\end{tikzpicture}
Two constructions are proposed. The first one is the construction of a tangent to a circle at a given point of this
circle and the second one is the construction of a tangent to a circle passing through a given point outside a disc.
tkz-euclide AlterMundus
12 The straight lines 58
The parameter in brackets is the center of the circle or the center of the circle and a point on the circle or the
center and the radius. This macro replaces the old one: \tkzTangent.
\begin{tikzpicture}[scale=.75]
\tkzDefPoint(0,0){O}
\tkzDefPoint(6,6){E}
\tkzDefRandPointOn[circle=center O radius 3cm]
\tkzGetPoint{A}
\tkzDrawSegment(O,A)
\tkzDrawCircle(O,A)
\tkzDefTangent[at=A](O)
\tkzGetPoint{h}
\tkzDrawLine[add = 4 and 3](A,h)
\tkzMarkRightAngle[fill=red!30](O,A,h)
\end{tikzpicture}
\begin{tikzpicture}[scale=.8]
\tkzDefPoint(3,3){c}
\tkzDefPoint(6,3){a0}
\tkzRadius=1 cm
\tkzDrawCircle[R](c,\tkzRadius)
\foreach \an in {0,10,...,350}{
\tkzDefPointBy[rotation=center c angle \an](a0)
\tkzGetPoint{a}
\tkzDefTangent[from with R = a](c,\tkzRadius)
\tkzGetPoints{e}{f}
\tkzDrawLines[color=magenta](a,f a,e)
\tkzDrawSegments(c,e c,f)
}%
\end{tikzpicture}
tkz-euclide AlterMundus
12 The straight lines 59
\begin{tikzpicture}[scale=.5]
\tkzDefPoint(100:8){A}\tkzDefPoint(50:8){B}
\tkzDefPoint(0,0){C} \tkzDefPoint(0,4){R}
\tkzDrawCircle(C,R)
\tkzDefTangent[from = A](C,R) \tkzGetPoints{D}{E}
\tkzDefTangent[from = B](C,R) \tkzGetPoints{F}{G}
\tkzDrawSector[fill=blue!80!black,opacity=0.5](A,D)(E)
\tkzFillSector[color=red!80!black,opacity=0.5](B,F)(G)
\tkzInterCC(A,D)(B,F) \tkzGetSecondPoint{I}
\tkzDrawPoint[color=black](I)
\end{tikzpicture}
http://www.texample.net/tikz/examples/
\begin{tikzpicture}[scale=.5]
\tkzDefPoint(0,0){O}
\tkzDefRandPointOn[circle=center O radius 4cm]
\tkzGetPoint{A}
\tkzDefTangent[at=A](O)
\tkzGetPoint{h}
\tkzDrawSegments(O,A)
\tkzDrawCircle(O,A)
\tkzDrawLine[add = 1 and 1](A,h)
\tkzMarkRightAngle[fill=red!30](O,A,h)
\end{tikzpicture}
\begin{tikzpicture}[scale=.5]
\tkzDefPoint(0,0){B}
\tkzDefPoint(0,8){A}
\tkzDefSquare(A,B)
\tkzGetPoints{C}{D}
\tkzDrawSquare(A,B)
\tkzClipPolygon(A,B,C,D)
\tkzDefPoint(4,8){F}
\tkzDefPoint(4,0){E}
\tkzDefPoint(4,4){Q}
\tkzFillPolygon[color = green](A,B,C,D)
\tkzDrawCircle[fill = orange](B,A)
\tkzDrawCircle[fill = purple](E,B)
\tkzDefTangent[from=B](F,A)
\tkzInterLL(F,tkzFirstPointResult)(C,D)
\tkzInterLL(A,tkzPointResult)(F,E)
\tkzDrawCircle[fill = yellow](tkzPointResult,Q)
\tkzDefPointBy[projection= onto B--A](tkzPointResult)
\tkzDrawCircle[fill = blue!50!black](tkzPointResult,A)
\end{tikzpicture}
tkz-euclide AlterMundus
13 Drawing, naming the lines 60
To draw a normal straight line, just give a couple of points. You can use the add option to extend the line (This
option is due to Mark Wibrow, see the code below).
\tikzset{%
add/.style args={#1 and #2}{
to path={%
($(\tikztostart)!-#1!(\tikztotarget)$)--($(\tikztotarget)!-#2!(\tikztostart)$)%
\tikztonodes}}}
In the special case of lines defined in a triangle, the number of arguments is a list of three points (the vertices of
the triangle). The second point is where the line will come from. The first and last points determine the target
segment. The old method has therefore been slightly modified. So for \tkzDrawMedian, instead of (𝐴, 𝐵)(𝐶) you
have to write (𝐵, 𝐶, 𝐴) where 𝐶 is the point that will be linked to the middle of the segment [𝐴, 𝐵].
\begin{tikzpicture}
\tkzInit[xmin=-2,xmax=3,ymin=-2.25,ymax=2.25]
\tkzClip[space=.25]
𝐹 \tkzDefPoint(0,0){A} \tkzDefPoint(2,0.5){B}
\tkzDefPoint(0,-1){C}\tkzDefPoint(2,-0.5){D}
𝐸
\tkzDefPoint(0,1){E} \tkzDefPoint(2,1.5){F}
𝐵 \tkzDefPoint(0,-2){G} \tkzDefPoint(2,-1.5){H}
𝐴 \tkzDrawLine(A,B) \tkzDrawLine[add = 0 and .5](C,D)
𝐷 \tkzDrawLine[add = 1 and 0](E,F)
\tkzDrawLine[add = 0 and 0](G,H)
𝐶 \tkzDrawPoints(A,B,C,D,E,F,G,H)
𝐻 \tkzLabelPoints(A,B,C,D,E,F,G,H)
𝐺 \end{tikzpicture}
tkz-euclide AlterMundus
13 Drawing, naming the lines 61
Arguments are a list of pairs of points separated by spaces. The styles of Tik Z are available for the draws.
\begin{tikzpicture}
\tkzDefPoint(0,0){A}
𝐶 𝐷 \tkzDefPoint(2,0){B}
\tkzDefPoint(1,2){C}
\tkzDefPoint(3,2){D}
\tkzDrawLines(A,B C,D A,C B,D)
\tkzLabelPoints(A,B,C,D)
𝐴 𝐵 \end{tikzpicture}
\begin{tikzpicture}[scale=.5]
\tkzDefPoint(0,0){O}
\tkzDefPoint(3,1){I}
\tkzDefPoint(1,4){J}
\tkzDefLine[bisector](I,O,J)
\tkzGetPoint{i}
\tkzDefLine[bisector out](I,O,J)
\tkzGetPoint{j}
\tkzDrawLines[add = 1 and .5,color=red](O,I O,J)
\tkzDrawLines[add = 1 and .5,color=blue](O,i O,j)
\end{tikzpicture}
\begin{tikzpicture}[scale=1.25]
\tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
\tkzDefPoint(1,3){C} \tkzDrawPolygon(A,B,C)
\tkzSetUpLine[color=blue]
\tkzDrawLine[median](B,C,A)
\tkzDrawLine[median](C,A,B)
\tkzDrawLine[median](A,B,C)
\end{tikzpicture}
tkz-euclide AlterMundus
13 Drawing, naming the lines 62
\begin{tikzpicture}[scale=1.25]
\tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
\tkzDefPoint(1,3){C} \tkzDrawPolygon(A,B,C)
\tkzSetUpLine[color=magenta]
\tkzDrawLine[altitude](B,C,A)
\tkzDrawLine[altitude](C,A,B)
\tkzDrawLine[altitude](A,B,C)
\end{tikzpicture}
\begin{tikzpicture}[scale=1.25]
\tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
\tkzDefPoint(1,3){C} \tkzDrawPolygon(A,B,C)
\tkzSetUpLine[color=purple]
\tkzDrawLine[bisector](B,C,A)
\tkzDrawLine[bisector](C,A,B)
\tkzDrawLine[bisector](A,B,C)
\end{tikzpicture}
\tkzLabelLine[⟨local options⟩](⟨pt1,pt2⟩){⟨label⟩}
An important option is pos, it’s the one that allows you to place the label along the right. The value of pos can be
greater than 1 or negative.
tkz-euclide AlterMundus
14 Draw, Mark segments 63
\begin{tikzpicture}
again (𝛿) \tkzDefPoints{0/0/A,3/0/B,1/1/C}
\tkzDefLine[perpendicular=through C,K=-1](A,B)
\tkzGetPoint{c}
\tkzDrawLines(A,B C,c)
\tkzLabelLine[pos=1.25,blue,right](C,c){$(\delta)$}
\tkzLabelLine[pos=-0.25,red,left](C,c){again $(\delta)$}
\end{tikzpicture}
(𝛿)
There is, of course, a macro to simply draw a segment (it would be possible, as for a half line, to create a style with
\add).
\tkzDrawSegment[⟨local options⟩](⟨pt1,pt2⟩)
The arguments are a list of two points. The styles of Tik Z are available for the drawings.
\begin{tikzpicture}[scale=1.5]
𝐵 \tkzDefPoint(0,0){A}
\tkzDefPoint(2,1){B}
\tkzDrawSegment[color=red,thin](A,B)
\tkzDrawPoints(A,B)
𝐴 \tkzLabelPoints(A,B)
\end{tikzpicture}
tkz-euclide AlterMundus
14 Draw, Mark segments 64
\begin{tikzpicture}
\tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
\tkzDefTriangleCenter[euler](A,B,C)
\tkzGetPoint{E}
\tkzDrawCircle[euler,red](A,B,C)
\tkzDrawLines[add=.5 and .5](A,B A,C B,C)
𝐶 \tkzDrawPoints(A,B,C,E)
\tkzLabelPoints(A,B,C,E)
\end{tikzpicture}
𝐴 𝐵
2.2
4
41
1.
\begin{tikzpicture}[scale=4]
\pgfkeys{/pgf/number format/.cd,fixed,precision=2}
% Define the first two points
\tkzDefPoint(0,0){A}
\tkzDefPoint(3,0){B}
\tkzDefPoint(1,1){C}
% Draw the triangle and the points
\tkzDrawPolygon(A,B,C)
\tkzDrawPoints(A,B,C)
% Label the sides
\tkzCalcLength[cm](A,B)\tkzGetLength{ABl}
\tkzCalcLength[cm](B,C)\tkzGetLength{BCl}
\tkzCalcLength[cm](A,C)\tkzGetLength{ACl}
% add dim
\tkzDrawSegment[dim={\pgfmathprintnumber\BCl,6pt,transform shape}](C,B)
\tkzDrawSegment[dim={\pgfmathprintnumber\ACl,6pt,transform shape}](A,C)
\tkzDrawSegment[dim={\pgfmathprintnumber\ABl,-6pt,transform shape}](A,B)
\end{tikzpicture}
tkz-euclide AlterMundus
14 Draw, Mark segments 65
If the options are the same we can plot several segments with the same macro.
The arguments are a two-point couple list. The styles of Tik Z are available for the plots.
\begin{tikzpicture}
\tkzInit[xmin=-1,xmax=3,ymin=-1,ymax=2]
\tkzClip[space=1]
\tkzDefPoint(0,0){A}
\tkzDefPoint(2,1){B}
𝐵
\tkzDefPoint(3,0){C}
\tkzDrawSegments(A,B B,C)
\tkzDrawPoints(A,B,C)
𝐴 𝐶 \tkzLabelPoints(A,C)
\tkzLabelPoints[above](B)
\end{tikzpicture}
\begin{tikzpicture}
\tikzset{
arr/.style={postaction=decorate,
decoration={markings,
mark=at position .5 with {\arrow[thick]{#1}}
}}}
\tkzDefPoint(0,0){A}
\tkzDefPoint(4,-4){B}
\tkzDrawSegments[arr=stealth](A,B)
\tkzDrawPoints(A,B)
\end{tikzpicture}
\tkzMarkSegment[⟨local options⟩](⟨pt1,pt2⟩)
tkz-euclide AlterMundus
14 Draw, Mark segments 66
\begin{tikzpicture}
\tkzDefPoint(2,1){A}
\tkzDefPoint(6,4){B}
\tkzDrawSegment(A,B)
\tkzMarkSegment[color=brown,size=2pt,pos=0.4, mark=z](A,B)
\tkzMarkSegment[color=blue,pos=0.2, mark=oo](A,B)
\tkzMarkSegment[pos=0.8,mark=s,color=red](A,B)
\end{tikzpicture}
\begin{tikzpicture}
\tkzDefPoint(2,1){A}
\tkzDefPoint(6,4){B}
\tkzDrawSegment(A,B)
\tkzMarkSegment[color=gray,pos=0.2,mark=s|](A,B)
\tkzMarkSegment[color=gray,pos=0.4,mark=s||](A,B)
\tkzMarkSegment[color=brown,pos=0.6,mark=||](A,B)
\tkzMarkSegment[color=red,pos=0.8,mark=|||](A,B)
\end{tikzpicture}
Arguments are a list of pairs of points separated by spaces. The styles of Tik Z are available for plots.
\begin{tikzpicture}[scale=1]
\tkzDefPoints{0/0/O,2/2/A,4/0/B,6/2/C}
\tkzDrawSegments(O,A A,B)
\tkzDrawPoints(O,A,B)
\tkzDrawLine(O,B)
\tkzMarkSegments[mark=||,size=6pt](O,A A,B)
\end{tikzpicture}
tkz-euclide AlterMundus
14 Draw, Mark segments 67
\begin{tikzpicture}[scale=1]
𝐶′ \tkzDefPoint(0,0){A}\tkzDefPoint(3,2){B}
\tkzDefPoint(4,0){C}\tkzDefPoint(2.5,1){P}
𝑃′ \tkzDrawPolygon(A,B,C)
\tkzDefEquilateral(A,P) \tkzGetPoint{P'}
𝐵 \tkzDefPointsBy[rotation=center A angle 60](P,B){P',C'}
\tkzDrawPolygon(A,P,P')
\tkzDrawPolySeg(P',C',A,P,B)
\tkzDrawSegment(C,P)
𝑃 \tkzDrawPoints(A,B,C,C',P,P')
\tkzMarkSegments[mark=s|,size=6pt,
𝐴 𝐶 color=blue](A,P P,P' P',A)
\tkzMarkSegments[mark=||,color=orange](B,P P',C')
\tkzLabelPoints(A,C) \tkzLabelPoints[below](P)
\tkzLabelPoints[above right](P',C',B)
\end{tikzpicture}
\tkzLabelSegment[⟨local options⟩](⟨pt1,pt2⟩){⟨label⟩}
This macro allows you to place a label along a segment or a line. The options are those of Tik Z for example pos.
𝑎 \begin{tikzpicture}
\tkzInit
4 \tkzDefPoint(0,0){A}
\tkzDefPoint(6,0){B}
\tkzDrawSegment(A,B)
\tkzLabelSegment[above,pos=.8](A,B){$a$}
\tkzLabelSegment[below,pos=.2](A,B){$4$}
\end{tikzpicture}
tkz-euclide AlterMundus
14 Draw, Mark segments 68
\begin{tikzpicture}[rotate=-60]
𝐴 𝑏 𝐶 \tikzset{label seg style/.append style = {%
color = red,
}}
\tkzDefPoint(0,1){A}
\tkzDefPoint(2,4){C}
𝑃
\tkzDefPointWith[orthogonal normed,K=7](C,A)
\tkzGetPoint{B}
\tkzDrawPolygon[green!60!black](A,B,C)
\tkzDrawLine[altitude,dashed,color=magenta](B,C,A)
\tkzGetPoint{P}
𝑐 𝑎 \tkzLabelPoint[left](A){$A$}
\tkzLabelPoint[right](B){$B$}
\tkzLabelPoint[above](C){$C$}
\tkzLabelPoint[below](P){$P$}
\tkzLabelSegment[](B,A){$c$}
\tkzLabelSegment[swap](B,C){$a$}
\tkzLabelSegment[swap](C,A){$b$}
\tkzMarkAngles[size=1cm,
color=cyan,mark=|](C,B,A A,C,P)
𝐵 \tkzMarkAngle[size=0.75cm,
color=orange,mark=||](P,C,B)
\tkzMarkAngle[size=0.75cm,
color=orange,mark=||](B,A,C)
\tkzMarkRightAngles[german](A,C,B B,P,C)
\end{tikzpicture}
The arguments are a two-point couple list. The styles of Tik Z are available for plotting.
\begin{tikzpicture}[scale=1]
\tkzDefPoints{0/0/O,2/2/A,4/0/B,6/2/C}
𝑎 𝑎 \tkzDrawSegments(O,A A,B)
\tkzDrawPoints(O,A,B)
\tkzDrawLine(O,B)
\tkzLabelSegments[color=red,above=4pt](O,A A,B){$a$}
\end{tikzpicture}
tkz-euclide AlterMundus
15 Triangles 69
15 Triangles
The following macros will allow you to define or construct a triangle from at least two points.
At the moment, it is possible to define the following triangles:
– two angles determines a triangle with two angles;
– equilateral determines an equilateral triangle;
– half determines a right-angled triangle such that the ratio of the measurements of the two adjacent sides
to the right angle is equal to 2;
– pythagore determines a right-angled triangle whose side measurements are proportional to 3, 4 and 5;
– school determines a right-angled triangle whose angles are 30, 60 and 90 degrees;
– golden determines a right-angled triangle such that the ratio of the measurements on the two adjacent
sides to the right angle is equal to Φ = 1.618034, I chose ”golden triangle” as the denomination because it
comes from the golden rectangle and I kept the denomination ”gold triangle” or ”Euclid’s triangle” for the
isosceles triangle whose angles at the base are 72 degrees;
– euclide or gold for the gold triangle;
– cheops determines a third point such that the triangle is isosceles with side measurements proportional to
2, Φ and Φ.
\tkzDefTriangle[⟨local options⟩](⟨A,B⟩)
The points are ordered because the triangle is constructed following the direct direction of the trigonometric
circle. This macro is either used in partnership with \tkzGetPoint or by using tkzPointResult if it is not
necessary to keep the name.
\tkzGetPoint allows you to store the point otherwise tkzPointResult allows for immediate use.
\begin{tikzpicture}[scale=.8]
\tkzInit[xmax=5,ymax=3] \tkzClip[space=.5]
𝐶
\tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
\tkzDefTriangle[golden](A,B)\tkzGetPoint{C}
\tkzDrawPolygon(A,B,C) \tkzDrawPoints(A,B,C)
\tkzLabelPoints(A,B) \tkzDrawBisector(A,C,B)
\tkzLabelPoints[above](C)
\end{tikzpicture}
𝐴 𝐵
tkz-euclide AlterMundus
15 Triangles 70
\begin{tikzpicture}
𝐶 \tkzDefPoint(0,0){A}
\tkzDefPoint(4,0){B}
\tkzDefTriangle[equilateral](A,B)
\tkzGetPoint{C}
\tkzDrawPolygon(A,B,C)
\tkzDefTriangle[equilateral](B,A)
\tkzGetPoint{D}
\tkzDrawPolygon(B,A,D)
\tkzDrawPoints(A,B,C,D)
𝐴 𝐵 \tkzLabelPoints(A,B,C,D)
\end{tikzpicture}
\begin{tikzpicture}
𝐶
\tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
\tkzDefTriangle[euclide](A,B)\tkzGetPoint{C}
\tkzDrawPolygon(A,B,C)
\tkzDrawPoints(A,B,C)
\tkzLabelPoints(A,B)
\tkzLabelPoints[above](C)
\tkzDrawBisector(A,C,B)
\end{tikzpicture}
𝐴 𝐵
tkz-euclide AlterMundus
15 Triangles 71
\tkzDrawTriangle[⟨local options⟩](⟨A,B⟩)
Macro similar to the previous macro but the sides are drawn.
In all its definitions, the dimensions of the triangle depend on the two starting points.
\begin{tikzpicture}
\tkzDefPoint(0,0){A}
\tkzDefPoint(4,0){B}
\tkzDrawTriangle[pythagore,fill=blue!30](A,B)
\tkzMarkRightAngles(A,B,tkzPointResult)
\end{tikzpicture}
\begin{tikzpicture}
\tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
\tkzDrawTriangle[school,fill=red!30](A,B)
\tkzMarkRightAngles(tkzPointResult,B,A)
\end{tikzpicture}
\begin{tikzpicture}[scale=1]
\tkzDefPoint(0,-10){M}
\tkzDefPoint(3,-10){N}
\tkzDrawTriangle[golden,color=brown](M,N)
\end{tikzpicture}
tkz-euclide AlterMundus
16 Specific triangles with \tkzDefSpcTriangle 72
\begin{tikzpicture}[scale=1]
\tkzDefPoint(5,-5){I}
\tkzDefPoint(8,-5){J}
\tkzDrawTriangle[gold,color=blue!50](I,J)
\end{tikzpicture}
\begin{tikzpicture}[scale=1]
\tkzDefPoint(10,-5){K}
\tkzDefPoint(13,-5){L}
\tkzDrawTriangle[euclide,color=blue,fill=blue!10](K,L)
\end{tikzpicture}
The centers of some triangles have been defined in the ”points” section, here it is a question of determining the
three vertices of specific triangles.
\tkzDefSpcTriangle[⟨local options⟩](⟨A,B,C⟩)
\tkzGetPoint allows you to store the point otherwise tkzPointResult allows for immediate use.
The geometric centroid of the polygon vertices of a triangle is the point 𝐺 (sometimes also denoted 𝑀) which is
also the intersection of the triangle’s three triangle medians. The point is therefore sometimes called the median
tkz-euclide AlterMundus
16 Specific triangles with \tkzDefSpcTriangle 73
𝐵
\begin{tikzpicture}[rotate=90,scale=.75]
\tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
\tkzDefTriangleCenter[centroid](A,B,C)
\tkzGetPoint{M}
\tkzDefSpcTriangle[medial,name=M](A,B,C){_A,_B,_C}
\tkzDrawPolygon[color=blue](A,B,C)
𝑀𝐴 \tkzDrawSegments[dashed,red](A,M_A B,M_B C,M_C)
𝑀𝐶 \tkzDrawPolygon[color=red](M_A,M_B,M_C)
\tkzDrawPoints(A,B,C,M)
𝑀 \tkzDrawPoints[red](M_A,M_B,M_C)
\tkzAutoLabelPoints[center=M,font=\scriptsize]%
(A,B,C,M_A,M_B,M_C)
𝐶 \tkzLabelPoints[font=\scriptsize](M)
𝑀𝐵 \end{tikzpicture}
𝐴
The incentral triangle is the triangle whose vertices are determined by the intersections of the reference triangle’s
angle bisectors with the respective opposite sides.
Weisstein, Eric W. ”Incentral triangle” From MathWorld–A Wolfram Web Resource.
𝐶
\begin{tikzpicture}[scale=1]
\tkzDefPoints{ 0/0/A,5/0/B,1/3/C}
\tkzDefSpcTriangle[in,name=I](A,B,C){_a,_b,_c}
\tkzInCenter(A,B,C)\tkzGetPoint{I}
𝐼𝑎 \tkzDrawPolygon[red](A,B,C)
𝐼𝑏 \tkzDrawPolygon[blue](I_a,I_b,I_c)
\tkzDrawPoints(A,B,C,I,I_a,I_b,I_c)
\tkzDrawCircle[in](A,B,C)
\tkzDrawSegments[dashed](A,I_a B,I_b C,I_c)
𝐴 𝐼𝑐 𝐵 \tkzAutoLabelPoints[center=I,
blue,font=\scriptsize](I_a,I_b,I_c)
\tkzAutoLabelPoints[center=I,red,
font=\scriptsize](A,B,C,I_a,I_b,I_c)
\end{tikzpicture}
The excentral triangle of a triangle 𝐴𝐵𝐶 is the triangle 𝐽𝑎 𝐽𝑏 𝐽𝑐 with vertices corresponding to the excenters of 𝐴𝐵𝐶.
tkz-euclide AlterMundus
16 Specific triangles with \tkzDefSpcTriangle 74
\begin{tikzpicture}[scale=.6]
𝐽𝑎
\tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
\tkzDefSpcTriangle[excentral,name=J](A,B,C){_a,_b,_c}
\tkzDefSpcTriangle[extouch,name=T](A,B,C){_a,_b,_c}
\tkzDrawPolygon[blue](A,B,C)
\tkzDrawPolygon[red](J_a,J_b,J_c)
𝐶 \tkzDrawPoints(A,B,C)
\tkzDrawPoints[red](J_a,J_b,J_c)
𝐽𝑏 \tkzLabelPoints(A,B,C)
\tkzLabelPoints[red](J_b,J_c)
\tkzLabelPoints[red,above](J_a)
\tkzClipBB \tkzShowBB
\tkzDrawCircles[gray](J_a,T_a J_b,T_b J_c,T_c)
𝐴 𝐵 \end{tikzpicture}
𝐽𝑐
The contact triangle of a triangle 𝐴𝐵𝐶, also called the intouch triangle, is the triangle formed by the points of
tangency of the incircle of 𝐴𝐵𝐶 with 𝐴𝐵𝐶.
Weisstein, Eric W. ”Contact triangle” From MathWorld–A Wolfram Web Resource.
We obtain the intersections of the bisectors with the sides.
𝐶
\begin{tikzpicture}[scale=.75]
\tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
\tkzDefSpcTriangle[intouch,name=X](A,B,C){_a,_b,_c}
\tkzInCenter(A,B,C)\tkzGetPoint{I}
𝑋𝑎
\tkzDrawPolygon[red](A,B,C)
𝑋𝑏
\tkzDrawPolygon[blue](X_a,X_b,X_c)
\tkzDrawPoints[red](A,B,C)
\tkzDrawPoints[blue](X_a,X_b,X_c)
\tkzDrawCircle[in](A,B,C)
𝐴 𝑋𝑐 𝐵 \tkzAutoLabelPoints[center=I,blue,font=\scriptsize]%
(X_a,X_b,X_c)
\tkzAutoLabelPoints[center=I,red,font=\scriptsize]%
(A,B,C)
\end{tikzpicture}
The extouch triangle 𝑇𝑎 𝑇𝑏 𝑇𝑐 is the triangle formed by the points of tangency of a triangle 𝐴𝐵𝐶 with its excircles 𝐽𝑎 ,
𝐽𝑏 , and 𝐽𝑐 . The points 𝑇𝑎 , 𝑇𝑏 , and 𝑇𝑐 can also be constructed as the points which bisect the perimeter of 𝐴1 𝐴2 𝐴3
starting at 𝐴, 𝐵, and 𝐶.
Weisstein, Eric W. ”Extouch triangle” From MathWorld–A Wolfram Web Resource.
We obtain the points of contact of the exinscribed circles as well as the triangle formed by the centres of the
exinscribed circles.
tkz-euclide AlterMundus
16 Specific triangles with \tkzDefSpcTriangle 75
\begin{tikzpicture}[scale=.7]
\tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
\tkzDefSpcTriangle[excentral,
name=J](A,B,C){_a,_b,_c}
\tkzDefSpcTriangle[extouch,
𝐶
name=T](A,B,C){_a,_b,_c}
\tkzDefTriangleCenter[nagel](A,B,C)
\tkzGetPoint{N_a}
𝑇𝑏
\tkzDefTriangleCenter[centroid](A,B,C)
\tkzGetPoint{G}
𝑇𝑎 \tkzDrawPoints[blue](J_a,J_b,J_c)
𝑁𝑎 \tkzClipBB \tkzShowBB
\tkzDrawCircles[gray](J_a,T_a J_b,T_b J_c,T_c)
𝐴 𝑇𝑐 𝐵 \tkzDrawLines[add=1 and 1](A,B B,C C,A)
\tkzDrawSegments[gray](A,T_a B,T_b C,T_c)
\tkzDrawSegments[gray](J_a,T_a J_b,T_b J_c,T_c)
\tkzDrawPolygon[blue](A,B,C)
\tkzDrawPolygon[red](T_a,T_b,T_c)
\tkzDrawPoints(A,B,C,N_a)
\tkzLabelPoints(N_a)
\tkzAutoLabelPoints[center=Na,blue](A,B,C)
\tkzAutoLabelPoints[center=G,red,
dist=.4](T_a,T_b,T_c)
\tkzMarkRightAngles[fill=gray!15](J_a,T_a,B
J_b,T_b,C J_c,T_c,A)
\end{tikzpicture}
The Feuerbach triangle is the triangle formed by the three points of tangency of the nine-point circle with the
excircles.
Weisstein, Eric W. ”Feuerbach triangle” From MathWorld–A Wolfram Web Resource.
𝐽
The points of tangency define the Feuerbach triangle.
𝑎
\begin{tikzpicture}[scale=1]
\tkzDefPoint(0,0){A}
𝐶 \tkzDefPoint(3,0){B}
\tkzDefPoint(0.5,2.5){C}
𝐽𝑏 \tkzDefCircle[euler](A,B,C) \tkzGetPoint{N}
\tkzDefSpcTriangle[feuerbach,
𝐹𝑎
𝐹𝑏 name=F](A,B,C){_a,_b,_c}
\tkzDefSpcTriangle[excentral,
name=J](A,B,C){_a,_b,_c}
\tkzDefSpcTriangle[extouch,
𝐴 𝐵 name=T](A,B,C){_a,_b,_c}
𝐹𝑐
\tkzDrawPoints[blue](J_a,J_b,J_c,F_a,F_b,F_c,A,B,C)
\tkzClipBB \tkzShowBB
\tkzDrawCircle[purple](N,F_a)
\tkzDrawPolygon(A,B,C)
\tkzDrawPolygon[blue](F_a,F_b,F_c)
\tkzDrawCircles[gray](J_a,F_a J_b,F_b J_c,F_c)
\tkzAutoLabelPoints[center=N,dist=.3,
𝐽𝑐 font=\scriptsize](A,B,C,F_a,F_b,F_c,J_a,J_b,J_c)
\end{tikzpicture}
tkz-euclide AlterMundus
16 Specific triangles with \tkzDefSpcTriangle 76
The tangential triangle is the triangle 𝑇𝑎 𝑇𝑏 𝑇𝑐 formed by the lines tangent to the circumcircle of a given triangle
𝐴𝐵𝐶 at its vertices. It is therefore antipedal triangle of 𝐴𝐵𝐶 with respect to the circumcenter 𝑂.
Weisstein, Eric W. ”Tangential Triangle.” From MathWorld–A Wolfram Web Resource.
\begin{tikzpicture}[scale=.5,rotate=80]
𝑇𝑎 \tkzDefPoints{0/0/A,6/0/B,1.8/4/C}
\tkzDefSpcTriangle[tangential,
name=T](A,B,C){_a,_b,_c}
\tkzDrawPolygon[red](A,B,C)
𝐵 \tkzDrawPolygon[blue](T_a,T_b,T_c)
\tkzDrawPoints[red](A,B,C)
\tkzDrawPoints[blue](T_a,T_b,T_c)
\tkzDefCircle[circum](A,B,C)
\tkzGetPoint{O}
𝐶 \tkzDrawCircle(O,A)
𝑇𝑐 \tkzLabelPoints[red](A,B,C)
\tkzLabelPoints[blue](T_a,T_b,T_c)
𝐴 \end{tikzpicture}
𝑇𝑏
The Euler triangle of a triangle 𝐴𝐵𝐶 is the triangle 𝐸𝐴 𝐸𝐵 𝐸𝐶 whose vertices are the midpoints of the segments joining
the orthocenter 𝐻 with the respective vertices. The vertices of the triangle are known as the Euler points, and lie
on the nine-point circle.
𝐵
\begin{tikzpicture}[rotate=90,scale=1.25]
\tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
\tkzDefSpcTriangle[medial,
name=M](A,B,C){_A,_B,_C}
\tkzDefTriangleCenter[euler](A,B,C)
\tkzGetPoint{N} % I= N nine points
\tkzDefTriangleCenter[ortho](A,B,C)
\tkzGetPoint{H}
\tkzDefMidPoint(A,H) \tkzGetPoint{E_A}
\tkzDefMidPoint(C,H) \tkzGetPoint{E_C}
𝑀𝐴 𝐸𝐵 \tkzDefMidPoint(B,H) \tkzGetPoint{E_B}
\tkzDefSpcTriangle[ortho,name=H](A,B,C){_A,_B,_C}
𝑀𝐶
\tkzDrawPolygon[color=blue](A,B,C)
\tkzDrawCircle(N,E_A)
𝐻𝐴 \tkzDrawSegments[blue](A,H_A B,H_B C,H_C)
\tkzDrawPoints(A,B,C,N,H)
𝑁 \tkzDrawPoints[red](M_A,M_B,M_C)
\tkzDrawPoints[blue]( H_A,H_B,H_C)
\tkzDrawPoints[green](E_A,E_B,E_C)
\tkzAutoLabelPoints[center=N,font=\scriptsize]%
𝐶 𝐸𝐶 𝐻 𝐻𝐶
(A,B,C,M_A,M_B,M_C,H_A,H_B,H_C,E_A,E_B,E_C)
𝑀𝐵 𝐸𝐴 \tkzLabelPoints[font=\scriptsize](H,N)
𝐻𝐵 \tkzMarkSegments[mark=s|,size=3pt,
𝐴
color=blue,line width=1pt](B,E_B E_B,H)
\tkzDrawPolygon[color=red](M_A,M_B,M_C)
\end{tikzpicture}
tkz-euclide AlterMundus
17 Definition of polygons 77
17 Definition of polygons
We have seen the definitions of some triangles. Let us look at the definitions of some quadrilaterals and regular
polygons.
\tkzDefSquare(⟨pt1,pt2⟩)
The square is defined in the forward direction. From two points, two more points are obtained such that
the four taken in order form a square. The square is defined in the forward direction. The results are in
tkzFirstPointResult and tkzSecondPointResult.
We can rename them with \tkzGetPoints.
Note the inversion of the first two points and the result.
\begin{tikzpicture}[scale=.5]
\tkzDefPoint(0,0){A} \tkzDefPoint(3,0){B}
\tkzDefSquare(A,B)
\tkzDrawPolygon[color=red](A,B,tkzFirstPointResult,%
tkzSecondPointResult)
\tkzDefSquare(B,A)
\tkzDrawPolygon[color=blue](B,A,tkzFirstPointResult,%
tkzSecondPointResult)
\end{tikzpicture}
We may only need one point to draw an isosceles right-angled triangle so we use \tkzGetFirstPoint or \tkzGetSecondPoint.
\begin{tikzpicture}[scale=1]
\tkzDefPoint(0,0){A}
\tkzDefPoint(3,0){B}
\tkzDefSquare(A,B) \tkzGetFirstPoint{C}
\tkzDrawPolygon[color=blue,fill=blue!30](A,B,C)
\end{tikzpicture}
tkz-euclide AlterMundus
17 Definition of polygons 78
\begin{tikzpicture}[scale=.5]
\tkzInit
\tkzDefPoint(0,0){C}
\tkzDefPoint(4,0){A}
\tkzDefPoint(0,3){B}
\tkzDefSquare(B,A)\tkzGetPoints{E}{F}
\tkzDefSquare(A,C)\tkzGetPoints{G}{H}
𝑐
𝑏 \tkzDefSquare(C,B)\tkzGetPoints{I}{J}
\tkzFillPolygon[fill = red!50 ](A,C,G,H)
\tkzFillPolygon[fill = blue!50 ](C,B,I,J)
𝑎
\tkzFillPolygon[fill = purple!50](B,A,E,F)
\tkzFillPolygon[fill = orange,opacity=.5](A,B,C)
\tkzDrawPolygon[line width = 1pt](A,B,C)
\tkzDrawPolygon[line width = 1pt](A,C,G,H)
\tkzDrawPolygon[line width = 1pt](C,B,I,J)
\tkzDrawPolygon[line width = 1pt](B,A,E,F)
\tkzLabelSegment[](A,C){$a$}
\tkzLabelSegment[](C,B){$b$}
\tkzLabelSegment[swap](A,B){$c$}
\end{tikzpicture}
\tkzDefParallelogram(⟨pt1,pt2,pt3⟩)
From three points, another point is obtained such that the four taken in order form a parallelogram. The result is
in tkzPointResult.
We can rename it with the name \tkzGetPoint...
arguments default definition
(⟨pt1,pt2,pt3⟩) no default Three points are necessary
\begin{tikzpicture}[scale=1]
𝐷 𝐶
\tkzDefPoints{0/0/A,3/0/B,4/2/C}
\tkzDefParallelogram(A,B,C)
\tkzGetPoint{D}
\tkzDrawPolygon(A,B,C,D)
\tkzLabelPoints(A,B)
\tkzLabelPoints[above right](C,D)
𝐴 𝐵 \tkzDrawPoints(A,...,D)
\end{tikzpicture}
tkz-euclide AlterMundus
17 Definition of polygons 79
\begin{tikzpicture}[scale=1]
𝐷 𝐶
\tkzDefPoints{0/0/A,3/0/B,4/2/C}
\tkzDefPointWith[colinear= at C](B,A)
\tkzGetPoint{D}
\tkzDrawPolygon(A,B,C,D)
\tkzLabelPoints(A,B)
\tkzLabelPoints[above right](C,D)
𝐴 𝐵 \tkzDrawPoints(A,...,D)
\end{tikzpicture}
\begin{tikzpicture}[scale=.5]
\tkzInit[xmax=14,ymax=10]
\tkzClip[space=1]
\tkzDefPoint(0,0){A}
\tkzDefPoint(8,0){B}
𝐷 𝐹 𝐶
\tkzDefMidPoint(A,B)\tkzGetPoint{I}
\tkzDefSquare(A,B)\tkzGetPoints{C}{D}
\tkzDrawSquare(A,B)
\tkzInterLC(A,B)(I,C)\tkzGetPoints{G}{E}
\tkzDrawArc[style=dashed,color=gray](I,E)(D)
\tkzDefPointWith[colinear= at C](E,B)
\tkzGetPoint{F}
\tkzDrawPoints(C,D,E,F)
\tkzLabelPoints(A,B,C,D,E,F)
\tkzDrawSegments[style=dashed,color=gray]%
𝐴 𝐵 𝐸 (E,F C,F B,E)
\end{tikzpicture}
\tkzDrawSquare[⟨local options⟩](⟨pt1,pt2⟩)
The macro draws a square but not the vertices. It is possible to color the inside. The order of the points is that of
the direct direction of the trigonometric circle.
tkz-euclide AlterMundus
17 Definition of polygons 80
\begin{tikzpicture}[scale=.75]
\tkzInit[ymax=8,xmax=8]
\tkzClip[space=.25] \tkzDefPoint(0,0){A}
\tkzDefPoint(8,0){B} \tkzDefPoint(4,0){I}
\tkzDefSquare(A,B) \tkzGetPoints{C}{D}
\tkzInterLC(I,C)(I,B) \tkzGetPoints{E'}{E}
\tkzInterLC(I,D)(I,B) \tkzGetPoints{F'}{F}
\tkzDefPointsBy[projection=onto A--B](E,F){H,G}
\tkzDefPointsBy[symmetry = center H](I){J}
\tkzDefSquare(H,J) \tkzGetPoints{K}{L}
\tkzDrawSector[fill=yellow](I,B)(A)
\tkzFillPolygon[color=red!40](H,E,F,G)
\tkzFillPolygon[color=blue!40](H,J,K,L)
\tkzDrawPolySeg[color=red](H,E,F,G)
\tkzDrawPolySeg[color=red](J,K,L)
\tkzDrawPoints(E,G,H,F,J,K,L)
\end{tikzpicture}
\tkzDefGoldRectangle(⟨point,point⟩)
The macro determines a rectangle whose size ratio is the number Φ. The created points are in tkzFirstPointResult
and tkzSecondPointResult. They can be obtained with the macro \tkzGetPoints. The following macro is
used to draw the rectangle.
\tkzDrawGoldRectangle[⟨local options⟩](⟨point,point⟩)
\begin{tikzpicture}[scale=.6]
\tkzDefPoint(0,0){A} \tkzDefPoint(8,0){B}
\tkzDefGoldRectangle(A,B) \tkzGetPoints{C}{D}
\tkzDefGoldRectangle(B,C) \tkzGetPoints{E}{F}
\tkzDrawPolygon[color=red,fill=red!20](A,B,C,D)
\tkzDrawPolygon[color=blue,fill=blue!20](B,C,E,F)
\end{tikzpicture}
tkz-euclide AlterMundus
17 Definition of polygons 81
Just give a list of points and the macro plots the polygon using the Tik Z options present. You can replace
(𝐴, 𝐵, 𝐶, 𝐷, 𝐸) by (𝐴, ..., 𝐸) and (𝑃1 , 𝑃2 , 𝑃3 , 𝑃4 , 𝑃5 ) by (𝑃1 , 𝑃..., 𝑃5 )
17.6.1 \tkzDrawPolygon
\begin{tikzpicture} [rotate=18,scale=1.5]
\tkzDefPoint(0,0){A}
\tkzDefPoint(2.25,0.2){B}
\tkzDefPoint(2.5,2.75){C}
\tkzDefPoint(-0.75,2){D}
\tkzDrawPolygon[fill=black!50!blue!20!](A,B,C,D)
\tkzDrawSegments[style=dashed](A,C B,D)
\end{tikzpicture}
Just give a list of points and the macro plots the polygonal chain using the Tik Z options present.
tkz-euclide AlterMundus
17 Definition of polygons 82
\begin{tikzpicture}
\tkzDefPoints{0/0/A,6/0/B,3/4/C,2/2/D}
\tkzDrawPolySeg(A,...,D)
\tkzDrawPoints(A,...,D)
\end{tikzpicture}
\begin{tikzpicture}
\foreach \pt in {1,2,...,8} {%
\tkzDefPoint(\pt*20:3){P_\pt}}
\tkzDrawPolySeg(P_1,P_...,P_8)
\tkzDrawPoints(P_1,P_...,P_8)
\end{tikzpicture}
This macro makes it possible to contain the different plots in the designated polygon.
17.8.1 \tkzClipPolygon
\begin{tikzpicture}[scale=1.25]
\tkzInit[xmin=0,xmax=4,ymin=0,ymax=3]
\tkzClip[space=.5]
\tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
\tkzDefPoint(1,3){C} \tkzDrawPolygon(A,B,C)
𝐷 \tkzDefPoint(0,2){D} \tkzDefPoint(2,0){E}
\tkzDrawPoints(D,E) \tkzLabelPoints(D,E)
\tkzClipPolygon(A,B,C)
\tkzDrawLine[color=red](D,E)
\end{tikzpicture}
tkz-euclide AlterMundus
17 Definition of polygons 83
\begin{tikzpicture}[scale=.75]
\tkzDefPoint(0,0){A} \tkzDefPoint(8,0){B}
\tkzDefSquare(A,B) \tkzGetPoints{C}{D}
\tkzDrawPolygon(B,C,D,A)
\tkzClipPolygon(B,C,D,A)
\tkzDefPoint(4,8){F}
\tkzDefTriangle[equilateral](C,D)
\tkzGetPoint{I}
\tkzDrawPoint(I)
\tkzDefPointBy[projection=onto B--C](I)
\tkzGetPoint{J}
\tkzInterLL(D,B)(I,J) \tkzGetPoint{K}
\tkzDefPointBy[symmetry=center K](B)
\tkzGetPoint{M}
\tkzDrawCircle(M,I)
\tkzCalcLength(M,I) \tkzGetLength{dMI}
\tkzFillPolygon[color = orange](A,B,C,D)
\tkzFillCircle[R,color = yellow](M,\dMI pt)
\tkzFillCircle[R,color = blue!50!black](F,4 cm)%
\end{tikzpicture}
You can color by drawing the polygon, but in this case you color the inside of the polygon without drawing it.
17.9.1 \tkzFillPolygon
𝑦 \begin{tikzpicture}[scale=0.7]
𝑦′ \tkzInit[xmin=-3,xmax=6,ymin=-1,ymax=6]
\tkzDrawX[noticks]
\tkzDrawY[noticks]
\tkzDefPoint(0,0){O} \tkzDefPoint(4,2){A}
\tkzDefPoint(-2,6){B}
𝑣⃗ \tkzPointShowCoord[xlabel=$x$,ylabel=$y$](A)
\tkzPointShowCoord[xlabel=$x'$,ylabel=$y'$,%
𝑦 ystyle={right=2pt}](B)
𝑢⃗ \tkzDrawSegments[->](O,A O,B)
𝛼
\tkzLabelSegment[above=3pt](O,A){$\vec{u}$}
\tkzLabelSegment[above=3pt](O,B){$\vec{v}$}
\tkzMarkAngle[fill= yellow,size=1.8cm,%
𝑥′ 𝑥 𝑥 opacity=.5](A,O,B)
\tkzFillPolygon[red!30,opacity=0.25](A,B,O)
\tkzLabelAngle[pos = 1.5](A,O,B){$\alpha$}
\end{tikzpicture}
tkz-euclide AlterMundus
17 Definition of polygons 84
\tkzDefRegPolygon[⟨local options⟩](⟨pt1,pt2⟩)
From the number of sides, depending on the options, this macro determines a regular polygon according to its
center or one side.
arguments example explication
(⟨pt1,pt2⟩) (⟨O,A⟩) with option "center", 𝑂 is the center of the polygon.
(⟨pt1,pt2⟩) (⟨A,B⟩) with option "side", [𝐴𝐵] is a side.
\begin{tikzpicture}
\tkzDefPoints{0/0/P0,0/0/Q0,2/0/P1}
\tkzDefMidPoint(P0,P1) \tkzGetPoint{Q1}
\tkzDefRegPolygon[center,sides=7](P0,P1)
\tkzDefMidPoint(P1,P2) \tkzGetPoint{Q1}
\tkzDefRegPolygon[center,sides=7,name=Q](P0,Q1)
\tkzDrawPolygon(P1,P...,P7)
\tkzFillPolygon[gray!20](Q0,Q1,P2,Q2)
\foreach \j in {1,...,7} {\tkzDrawSegment[black](P0,Q\j)}
\end{tikzpicture}
\begin{tikzpicture}[scale=1]
\tkzDefPoints{-4/0/A, -1/0/B}
\tkzDefRegPolygon[side,sides=5,name=P](A,B)
\tkzDrawPolygon[thick](P1,P...,P5)
\end{tikzpicture}
tkz-euclide AlterMundus
18 The Circles 85
18 The Circles
Among the following macros, one will allow you to draw a circle, which is not a real feat. To do this, you will need
to know the center of the circle and either the radius of the circle or a point on the circumference. It seemed to me
that the most frequent use was to draw a circle with a given centre passing through a given point. This will be
the default method, otherwise you will have to use the R option. There are a large number of special circles, for
example the circle circumscribed by a triangle.
– I have created a first macro \tkzDefCircle which allows, according to a particular circle, to retrieve its
center and the measurement of the radius in cm. This recovery is done with the macros \tkzGetPoint and
\tkzGetLength;
– then a macro \tkzDrawCircle;
– then a macro that allows you to color in a disc, but without drawing the circle \tkzFillCircle;
– sometimes, it is necessary for a drawing to be contained in a disk, this is the role assigned to \tkzClipCircle;
– it finally remains to be able to give a label to designate a circle and if several possibilities are offered, we will
see here \tkzLabelCircle.
This macro allows you to retrieve the characteristics (center and radius) of certain circles.
☞� Attention the arguments are lists of two or three points. This macro is either used in partnership with \tkzGetPoint
and/or \tkzGetLength to obtain the center and the radius of the circle, or by using tkzPointResult and
tkzLengthResult if it is not necessary to keep the results.
tkz-euclide AlterMundus
18 The Circles 86
\begin{tikzpicture}[scale=1]
\tkzDefPoint(0,4){A}
\tkzDefPoint(2,2){B}
\tkzDefMidPoint(A,B) \tkzGetPoint{I}
\tkzDefRandPointOn[segment = I--B]
\tkzGetPoint{C}
\tkzDefCircle[through](A,C)
𝐴
\tkzGetLength{rACpt}
\tkzpttocm(\rACpt){rACcm}
\tkzDrawCircle(A,C)
The radius measurement is:
65.11271pt i.e. 2.28845cm \tkzDrawPoints(A,B,C)
𝐶 \tkzLabelPoints(A,B,C)
𝐵 \tkzLabelCircle[draw,fill=orange,
text width=3cm,text centered,
font=\scriptsize](A,C)(-90)%
{The radius measurement is:
\rACpt pt i.e. \rACcm cm}
\end{tikzpicture}
\begin{tikzpicture}[scale=1]
\tkzDefPoint(0,0){A}
𝐵 \tkzDefPoint(2,2){B}
\tkzDefCircle[diameter](A,B)
𝑂 \tkzGetPoint{O}
\tkzDrawCircle[blue,fill=blue!20](O,B)
\tkzDrawSegment(A,B)
𝐴 \tkzDrawPoints(A,B,O)
\tkzLabelPoints(A,B,O)
\end{tikzpicture}
You can also obtain the center of the inscribed circle and its projection on one side of the triangle with \tkzGetFirstPointI
and \tkzGetSecondPointIb.
\begin{tikzpicture}[scale=1]
𝐴
\tkzDefPoint(2,2){A}
\tkzDefPoint(5,-2){B}
\tkzDefPoint(1,-2){C}
\tkzDefCircle[in](A,B,C)
\tkzGetPoint{I} \tkzGetLength{rIN}
\tkzDefCircle[circum](A,B,C)
𝐾 \tkzGetPoint{K} \tkzGetLength{rCI}
𝐼 \tkzDrawPoints(A,B,C,I,K)
\tkzDrawCircle[R,blue](I,\rIN pt)
\tkzDrawCircle[R,red](K,\rCI pt)
\tkzLabelPoints[below](B,C)
𝐶 𝐵 \tkzLabelPoints[above left](A,I,K)
\tkzDrawPolygon(A,B,C)
\end{tikzpicture}
tkz-euclide AlterMundus
18 The Circles 87
\begin{tikzpicture}[scale=.75]
𝐶
\tkzDefPoints{ 0/0/A,4/0/B,0.8/4/C}
\tkzDefCircle[ex](B,C,A)
\tkzGetPoint{J_c} \tkzGetLength{rc}
\tkzDefPointBy[projection=onto A--C ](J_c)
\tkzGetPoint{X_c}
𝐹 \tkzDefPointBy[projection=onto A--B ](J_c)
𝐼 \tkzGetPoint{Y_c}
\tkzGetPoint{I}
\tkzDrawPolygon[color=blue](A,B,C)
𝐴 𝐷 𝑌𝑐 𝐵
\tkzDrawCircle[R,color=lightgray](J_c,\rc pt)
% possible \tkzDrawCircle[ex](A,B,C)
\tkzDrawCircle[in,color=red](A,B,C) \tkzGetPoint{I}
\tkzDefPointBy[projection=onto A--C ](I)
𝑋𝑐 \tkzGetPoint{F}
\tkzDefPointBy[projection=onto A--B ](I)
𝐽𝑐
\tkzGetPoint{D}
\tkzDrawLines[add=0 and 2.2,dashed](C,A C,B)
\tkzDrawSegments[dashed](J_c,X_c I,D I,F J_c,Y_c)
\tkzMarkRightAngles(A,F,I B,D,I J_c,X_c,A J_c,Y_c,B)
\tkzDrawPoints(B,C,A,I,D,F,X_c,J_c,Y_c)
\tkzLabelPoints(B,A,J_c,I,D,X_c,Y_c)
\tkzLabelPoints[above left](C)
\tkzLabelPoints[left](F)
\end{tikzpicture}
We verify that this circle passes through the middle of each side.
\begin{tikzpicture}[scale=.75]
𝐴
\tkzDefPoint(5,3.5){A}
\tkzDefPoint(0,0){B} \tkzDefPoint(7,0){C}
\tkzDefCircle[euler](A,B,C)
𝐸 \tkzGetPoint{E} \tkzGetLength{rEuler}
\tkzDefSpcTriangle[medial](A,B,C){M_a,M_b,M_c}
\tkzDrawPoints(A,B,C,E,M_a,M_b,M_c)
\tkzDrawCircle[R,blue](E,\rEuler pt)
𝐵 𝐶 \tkzDrawPolygon(A,B,C)
\tkzLabelPoints[below](B,C)
\tkzLabelPoints[left](A,E)
\end{tikzpicture}
tkz-euclide AlterMundus
18 The Circles 88
\begin{tikzpicture}[scale=0.75]
\tkzDefPoint(0,0){A}
\tkzDefPoint(4,0){B}
\tkzDefCircle[apollonius,K=2](A,B)
\tkzGetPoint{K1}
\tkzGetLength{rAp}
𝐴 𝐵 𝐾2 𝐾1 \tkzDrawCircle[R,color = blue!50!black,
fill=blue!20,opacity=.4](K1,\rAp pt)
\tkzDefCircle[apollonius,K=3](A,B)
\tkzGetPoint{K2} \tkzGetLength{rAp}
\tkzDrawCircle[R,color=red!50!black,
fill=red!20,opacity=.4](K2,\rAp pt)
\tkzLabelPoints[below](A,B,K1,K2)
\tkzDrawPoints(A,B,K1,K2)
\tkzDrawLine[add=.2 and 1](A,B)
\end{tikzpicture}
You can also get the center and the projection of it on one side of the triangle.
with \tkzGetFirstPoint{Jb} and \tkzGetSecondPoint{Tb}.
\begin{tikzpicture}[scale=.6]
\tkzDefPoint(0,0){A}
\tkzDefPoint(3,0){B}
\tkzDefPoint(1,2.5){C}
\tkzDefCircle[ex](A,B,C) \tkzGetPoint{I}
\tkzGetLength{rI}
𝐽 \tkzDefCircle[ex](C,A,B) \tkzGetPoint{J}
𝐶
𝐼 \tkzGetLength{rJ}
\tkzDefCircle[ex](B,C,A) \tkzGetPoint{K}
\tkzGetLength{rK}
𝐴 𝐵 \tkzDefCircle[in](B,C,A) \tkzGetPoint{O}
\tkzGetLength{rO}
\tkzDrawLines[add=1.5 and 1.5](A,B A,C B,C)
\tkzDrawPoints(I,J,K)
𝐾 \tkzDrawPolygon(A,B,C)
\tkzDrawPolygon[dashed](I,J,K)
\tkzDrawCircle[R,blue!50!black](O,\rO)
\tkzDrawSegments[dashed](A,K B,J C,I)
\tkzDrawPoints(A,B,C)
\tkzDrawCircles[R](J,{\rJ} I,{\rI} K,{\rK})
\tkzLabelPoints(A,B,C,I,J,K)
\end{tikzpicture}
tkz-euclide AlterMundus
19 Draw, Label the Circles 89
\begin{tikzpicture}[scale=1]
𝐶
\tkzDefPoints{ 0/0/A,4/0/B,0.8/4/C}
\tkzDefSpcTriangle[medial](A,B,C){M_a,M_b,M_c}
\tkzDefTriangleCenter[spieker](A,B,C)
\tkzGetPoint{S_p}
\tkzDrawPolygon[blue](A,B,C)
𝑀𝑏 𝑀𝑎 \tkzDrawPolygon[red](M_a,M_b,M_c)
\tkzDrawPoints[blue](B,C,A)
𝑆𝑝 \tkzDrawPoints[red](M_a,M_b,M_c,S_p)
\tkzDrawCircle[in,red](M_a,M_b,M_c)
\tkzAutoLabelPoints[center=S_p,dist=.3](M_a,M_b,M_c)
\tkzLabelPoints[blue,right](S_p)
\tkzAutoLabelPoints[center=S_p](A,B,C)
𝐴 𝑀𝑐 𝐵
\end{tikzpicture}
18.1.9 Orthogonal circle passing through two given points, option orthogonal through
\begin{tikzpicture}[scale=1]
\tkzDefPoint(0,0){O}
\tkzDefPoint(1,0){A}
𝑂 𝐴 \tkzDrawCircle(O,A)
\tkzDefPoint(-1.5,-1.5){z1}
\tkzDefPoint(1.5,-1.25){z2}
𝑧2 \tkzDefCircle[orthogonal through=z1 and z2](O,A)
𝑧1 \tkzGetPoint{c}
𝑐 \tkzDrawCircle[thick,color=red](tkzPointResult,z1)
\tkzDrawPoints[fill=red,color=black,
size=4](O,A,z1,z2,c)
\tkzLabelPoints(O,A,z1,z2,c)
\end{tikzpicture}
\begin{tikzpicture}[scale=.75]
\tkzDefPoints{0/0/O,1/0/A}
\tkzDefPoints{1.5/1.25/B,-2/-3/C}
\tkzDefCircle[orthogonal from=B](O,A)
𝐵 \tkzGetPoints{z1}{z2}
\tkzDefCircle[orthogonal from=C](O,A)
𝑂 𝐴 \tkzGetPoints{t1}{t2}
\tkzDrawCircle(O,A)
\tkzDrawCircle[thick,color=red](B,z1)
\tkzDrawCircle[thick,color=red](C,t1)
\tkzDrawPoints(t1,t2,C)
\tkzDrawPoints(z1,z2,O,A,B)
𝐶 \tkzLabelPoints(O,A,B,C)
\end{tikzpicture}
tkz-euclide AlterMundus
19 Draw, Label the Circles 90
– then a macro that allows you to color a disc, but without drawing the circle. \tkzFillCircle,
– sometimes, it is necessary for a drawing to be contained in a disc,this is the role assigned to \tkzClipCircle,
– It finally remains to be able to give a label to designate a circle and if several possibilities are offered, we will
see here \tkzLabelCircle.
\tkzDrawCircle[⟨local options⟩](⟨A,B⟩)
☞� Attention you need only two points to define a radius or a diameter. An additional option R is available to give a
measure directly.
Of course, you have to add all the styles of Tik Z for the tracings...
19.1.1 Circles and styles, draw a circle and color the disc
We’ll see that it’s possible to colour in a disc while tracing the circle.
\begin{tikzpicture}
\tkzDefPoint(0,0){O}
\tkzDefPoint(3,0){A}
% circle with centre O and passing through A
\tkzDrawCircle[color=blue](O,A)
% diameter circle $[OA]$
\tkzDrawCircle[diameter,color=red,%
line width=2pt,fill=red!40,%
opacity=.5](O,A)
% circle with centre O and radius = exp(1) cm
\edef\rayon{\fpeval{0.25*exp(1)}}
\tkzDrawCircle[R,color=orange](O,\rayon cm)
\end{tikzpicture}
☞� Attention, the arguments are lists of two points. The circles that can be drawn are the same as in the previous
macro. An additional option R is available to give a measure directly.
tkz-euclide AlterMundus
19 Draw, Label the Circles 91
Of course, you have to add all the styles of Tik Z for the tracings...
\begin{tikzpicture}
\tkzDefPoint(0,0){A}
\tkzDefPoint(2,0){B}
\tkzDefPoint(3,2){C}
\tkzDrawPolygon(A,B,C)
\tkzDrawCircles(A,B B,C C,A)
\tkzDrawPoints(A,B,C)
\tkzLabelPoints(A,B,C)
\end{tikzpicture}
𝐴 𝐵
\begin{tikzpicture}
\tkzDefPoint(0,0){A}
\tkzDrawCircles[R](A,1cm A,2cm A,3cm)
\tkzDrawPoint(A)
\tkzLabelPoints(A)
\end{tikzpicture}
tkz-euclide AlterMundus
19 Draw, Label the Circles 92
\begin{tikzpicture}[scale=1]
\tkzDefPoints{0/0/A,4/0/B,1/2.5/C}
\tkzDrawPolygon(A,B,C)
\tkzDefCircle[ex](B,C,A)
\tkzGetPoint{J_c} \tkzGetSecondPoint{T_c}
\tkzGetLength{rJc}
\tkzDrawCircle[R](J_c,{\rJc pt})
\tkzDrawLines[add=0 and 1](C,A C,B)
\tkzDrawSegment(J_c,T_c)
\tkzMarkRightAngle(J_c,T_c,B)
\tkzDrawPoints(A,B,C,J_c,T_c)
\end{tikzpicture}
19.2.4 Cardioid
\begin{tikzpicture}[scale=.5]
\tkzDefPoint(0,0){O}
\tkzDefPoint(2,0){A}
\foreach \ang in {5,10,...,360}{%
\tkzDefPoint(\ang:2){M}
\tkzDrawCircle(M,A)
}
\end{tikzpicture}
\tkzDrawSemiCircle[⟨local options⟩](⟨A,B⟩)
tkz-euclide AlterMundus
19 Draw, Label the Circles 93
\begin{tikzpicture}
\tkzDefPoint(0,0){A} \tkzDefPoint(6,0){B}
\tkzDefSquare(A,B) \tkzGetPoints{C}{D}
\tkzDrawPolygon(B,C,D,A)
\tkzDefPoint(3,6){F}
\tkzDefTriangle[equilateral](C,D) \tkzGetPoint{I}
\tkzDefPointBy[projection=onto B--C](I) \tkzGetPoint{J}
\tkzInterLL(D,B)(I,J) \tkzGetPoint{K}
\tkzDefPointBy[symmetry=center K](B) \tkzGetPoint{M}
\tkzDrawCircle(M,I)
\tkzCalcLength(M,I) \tkzGetLength{dMI}
\tkzFillPolygon[color = red!50](A,B,C,D)
\tkzFillCircle[R,color = yellow](M,\dMI pt)
\tkzDrawSemiCircle[fill = blue!50!black](F,D)%
\end{tikzpicture}
This was possible with the previous macro, but disk tracing was mandatory, this is no longer the case.
\tkzFillCircle[⟨local options⟩](⟨A,B⟩)
You don’t need to put radius because that’s the default option. Of course, you have to add all the styles of Tik Z
for the plots.
tkz-euclide AlterMundus
19 Draw, Label the Circles 94
\begin{tikzpicture}
\tkzInit[xmin=0,xmax = 6,ymin=0,ymax=6]
\tkzDefPoint(0,0){B} \tkzDefPoint(6,0){C}%
\tkzDefSquare(B,C) \tkzGetPoints{D}{A}
\tkzClipPolygon(B,C,D,A)
\tkzDefMidPoint(A,D) \tkzGetPoint{F}
\tkzDefMidPoint(B,C) \tkzGetPoint{E}
\tkzDefMidPoint(B,D) \tkzGetPoint{Q}
\tkzDefTangent[from = B](F,A) \tkzGetPoints{G}{H}
\tkzInterLL(F,G)(C,D) \tkzGetPoint{J}
\tkzInterLL(A,J)(F,E) \tkzGetPoint{K}
\tkzDefPointBy[projection=onto B--A](K)
\tkzGetPoint{M}
\tkzFillPolygon[color = green](A,B,C,D)
\tkzFillCircle[color = orange](B,A)
\tkzFillCircle[color = blue!50!black](M,A)
\tkzFillCircle[color = purple](E,B)
\tkzFillCircle[color = yellow](K,Q)
\end{tikzpicture}
19.5.1 Example
𝐶
\begin{tikzpicture}
\tkzInit[xmax=5,ymax=5]
\tkzGrid \tkzClip
𝐵 \tkzDefPoint(0,0){A}
\tkzDefPoint(2,2){O}
\tkzDefPoint(4,4){B}
\tkzDefPoint(6,6){C}
\tkzDrawPoints(O,A,B,C)
𝑂 \tkzLabelPoints(O,A,B,C)
\tkzDrawCircle(O,A)
\tkzClipCircle(O,A)
\tkzDrawLine(A,C)
\tkzDrawCircle[fill=red!20,opacity=.5](C,O)
\end{tikzpicture}
𝐴
tkz-euclide AlterMundus
19 Draw, Label the Circles 95
\tkzLabelCircle[⟨local options⟩](⟨A,B⟩)(⟨angle⟩){⟨label⟩}
You don’t need to put radius because that’s the default option. We can use the styles from Tik Z. The label is
created and therefore ”passed” between braces.
19.6.1 Example
\begin{tikzpicture}
𝒞
\tkzDefPoint(0,0){O} \tkzDefPoint(2,0){N}
𝑀 \tkzDefPointBy[rotation=center O angle 50](N)
\tkzGetPoint{M}
\tkzDefPointBy[rotation=center O angle -20](N)
\tkzGetPoint{P}
\tkzDefPointBy[rotation=center O angle 125](N)
\tkzGetPoint{P'}
𝑃 \tkzLabelCircle[above=4pt](O,N)(120){$\mathcal{C}$}
\tkzDrawCircle(O,M)
\tkzFillCircle[color=blue!20,opacity=.4](O,M)
\tkzLabelCircle[R,draw,fill=orange,%
The circle text width=2cm,text centered](O,3 cm)(-60)%
𝒞 {The circle\\ $\mathcal{C}$}
\tkzDrawPoints(M,P)\tkzLabelPoints[right](M,P)
\end{tikzpicture}
tkz-euclide AlterMundus
20 Intersections 96
20 Intersections
It is possible to determine the coordinates of the points of intersection between two straight lines, a straight line
and a circle, and two circles.
The associated commands have no optional arguments and the user must determine the existence of the intersec-
tion points himself.
\begin{tikzpicture}[rotate=-45,scale=.75]
\tkzDefPoint(2,1){A}
\tkzDefPoint(6,5){B}
\tkzDefPoint(3,6){C}
\tkzDefPoint(5,2){D}
\tkzDrawLines(A,B C,D)
\tkzInterLL(A,B)(C,D)
\tkzGetPoint{I}
\tkzDrawPoints[color=blue](A,B,C,D)
\tkzDrawPoint[color=red](I)
\end{tikzpicture}
As before, the line is defined by a couple of points. The circle is also defined by a couple:
– (𝑂, 𝐶) which is a pair of points, the first is the centre and the second is any point on the circle.
– (𝑂, 𝑟) The 𝑟 measure is the radius measure. The unit can be the cm or pt.
The macro defines the intersection points 𝐼 and 𝐽 of the line (𝐴𝐵) and the center circle 𝑂 with radius 𝑟 if they
exist; otherwise, an error will be reported in the .log file.
tkz-euclide AlterMundus
20 Intersections 97
In the following example, the drawing of the circle uses two points and the intersection of the straight line and the
circle uses two pairs of points:
\begin{tikzpicture}[scale=.75]
𝐴 \tkzInit[xmax=5,ymax=4]
𝐷
\tkzDefPoint(1,1){O}
𝐶 \tkzDefPoint(0,4){A}
\tkzDefPoint(5,0){B}
\tkzDefPoint(3,3){C}
\tkzInterLC(A,B)(O,C) \tkzGetPoints{D}{E}
𝑂 𝐸 \tkzDrawCircle(O,C)
\tkzDrawPoints[color=blue](O,A,B,C)
𝐵 \tkzDrawPoints[color=red](D,E)
\tkzDrawLine(A,B)
\tkzLabelPoints[above right](O,A,B,C,D,E)
\end{tikzpicture}
\begin{tikzpicture}[scale=.75]
\tkzDefPoint(0,0){A}
\tkzDefPoint(8,0){B}
\tkzDefMidPoint(A,B)
𝐷
\tkzGetPoint{O}
𝐸 \tkzDrawCircle(O,B)
\tkzDefMidPoint(O,B)
\tkzGetPoint{O'}
\tkzDrawCircle(O',B)
𝐴 𝑂 𝑂′ 𝐵
\tkzDefTangent[from=A](O',B)
\tkzGetSecondPoint{E}
\tkzInterLC(A,E)(O,B)
\tkzGetSecondPoint{D}
\tkzDefPointBy[projection=onto A--B](D)
\tkzGetPoint{F}
\tkzMarkRightAngle(D,F,B)
\tkzDrawSegments(A,D A,B D,F)
\tkzDrawSegments[color=red,line width=1pt,
opacity=.4](A,O F,B)
\tkzDrawPoints(A,B,O,O',E,D)
\tkzLabelPoints(A,B,O,O',E,D)
\end{tikzpicture}
Let’s look at some special cases like straight lines tangent to the circle.
tkz-euclide AlterMundus
20 Intersections 98
\begin{tikzpicture}[scale=.5]
\tkzDefPoint(0,8){A} \tkzDefPoint(8,0){B}
\tkzDefPoint(8,8){C} \tkzDefPoint(4,4){I}
\tkzDefPoint(2,7){E} \tkzDefPoint(6,4){F}
\tkzDrawCircle[R](I,4 cm)
\tkzInterLC[R](A,C)(I,4 cm) \tkzGetPoints{I1}{I2}
\tkzInterLC[R](B,C)(I,4 cm) \tkzGetPoints{J1}{J2}
\tkzInterLC[R](A,B)(I,4 cm) \tkzGetPoints{K1}{K2}
\tkzDrawPoints[color=red](I1,J1,K1,K2)
\tkzDrawLines(A,B B,C A,C)
\tkzInterLC[R](E,F)(I,4 cm) \tkzGetPoints{I2}{J2}
\tkzDrawPoints[color=blue](E,F)
\tkzDrawPoints[color=red](I2,J2)
\tkzDrawLine(I2,J2)
\end{tikzpicture}
☞� Be careful with the syntax. First of all, calculations for the points can be done during the passage of the arguments,
but the syntax of xfp must be respected. You can see that I use the term pi because xfp can work with radians. You
can also work with degrees but in this case, you need to use specific commands like sind or cosd. Furthermore,
when calculations require the use of parentheses, they must be inserted in a group... TEX{ …}.
\begin{tikzpicture}[scale=1.25]
\tkzDefPoint(0,1){J}
\tkzDefPoint(0,0){O}
\tkzDrawArc[R,line width=1pt,color=red](J,2.5 cm)(180,0)
\foreach \i in {0,-5,-10,...,-85,-90}{
\tkzDefPoint({2.5*cosd(\i)},{1+2.5*sind(\i)}){P}
\tkzDrawSegment[color=orange](J,P)
\tkzInterLC[R](P,J)(O,1 cm)
\tkzGetPoints{M}{N}
\tkzDrawPoints[red](N)
}
\foreach \i in {-90,-95,...,-175,-180}{
\tkzDefPoint({2.5*cosd(\i)},{1+2.5*sind(\i)}){P}
\tkzDrawSegment[color=orange](J,P)
\tkzInterLC[R](P,J)(O,1 cm)
\tkzGetPoints{M}{N}
\tkzDrawPoints[red](M)
}
\end{tikzpicture}
tkz-euclide AlterMundus
20 Intersections 99
\begin{tikzpicture}
\tkzDefPoint(2,2){A}
\tkzDefPoint(5,4){B}
\tkzDefPoint(4,4){O}
\edef\tkzLen{\fpeval{0.0002/0.0001}}
\tkzDrawCircle[R](O,\tkzLen cm)
\tkzInterLC[R](A,B)(O, \tkzLen cm)
\tkzGetPoints{I}{J}
\tkzDrawPoints[color=blue](A,B)
\tkzDrawPoints[color=red](I,J)
\tkzDrawLine(I,J)
\end{tikzpicture}
\begin{tikzpicture}
\tkzDefPoints{2/2/A,5/4/B,4/4/0}
\tkzLength=2cm
\tkzDrawCircle[R](O,\tkzLength)
\tkzInterLC[R](A,B)(O,\tkzLength)
\tkzGetPoints{I}{J}
\tkzDrawPoints[color=blue](A,B)
\tkzDrawPoints[color=red](I,J)
\tkzDrawLine(I,J)
\end{tikzpicture}
A Sangaku look! It is a question of proving that one can inscribe in a half-disc, two squares, and to determine the
length of their respective sides according to the radius.
\begin{tikzpicture}[scale=.75]
\tkzDefPoints{0/0/A,8/0/B,4/0/I}
\tkzDefSquare(A,B) \tkzGetPoints{C}{D}
\tkzInterLC(I,C)(I,B)\tkzGetPoints{E'}{E}
\tkzInterLC(I,D)(I,B)\tkzGetPoints{F'}{F}
\tkzDefPointsBy[projection = onto A--B](E,F){H,G}
\tkzDefPointsBy[symmetry = center H](I){J}
\tkzDefSquare(H,J)\tkzGetPoints{K}{L}
\tkzDrawSector[fill=brown!30](I,B)(A)
\tkzFillPolygon[color=red!40](H,E,F,G)
\tkzFillPolygon[color=blue!40](H,J,K,L)
\tkzDrawPolySeg[color=red](H,E,F,G)
\tkzDrawPolySeg[color=red](J,K,L)
\tkzDrawPoints(E,G,H,F,J,K,L)
\end{tikzpicture}
tkz-euclide AlterMundus
20 Intersections 100
\begin{tikzpicture}[scale=.75]
\tkzDefPoints{0/0/A,4/0/B,1/1/D,2/0/E}
\tkzDefTriangle[equilateral](A,B)
\tkzGetPoint{C}
\tkzDrawCircle(C,A)
\tkzInterLC[with nodes](D,E)(C,A,B)
\tkzGetPoints{F}{G}
\tkzDrawPolygon(A,B,C)
\tkzDrawPoints(A,...,G)
\tkzDrawLine(F,G)
\end{tikzpicture}
The most frequent case is that of two circles defined by their center and a point, but as before the option R allows
to use the radius measurements.
This macro defines the intersection point(s) 𝐼 and 𝐽 of the two center circles 𝑂 and 𝑂 ′ . If the two circles do not
have a common point then the macro ends with an error that is not handled.
It is also possible to use directly \tkzInterCCN and \tkzInterCCR.
\begin{tikzpicture}[trim left=-1cm,scale=.5]
𝐶
\tkzDefPoint(1,1){A}
\tkzDefPoint(5,1){B}
\tkzInterCC(A,B)(B,A)\tkzGetPoints{C}{D}
\tkzDrawPoint[color=black](C)
\tkzDrawCircle[dashed](A,B)
𝐴 𝐵 \tkzDrawCircle[dashed](B,A)
\tkzCompass[color=red](A,C)
\tkzCompass[color=red](B,C)
\tkzDrawPolygon(A,B,C)
\tkzMarkSegments[mark=s|](A,C B,C)
\tkzLabelPoints[](A,B)
\tkzLabelPoint[above](C){$C$}
\end{tikzpicture}
tkz-euclide AlterMundus
20 Intersections 101
\begin{tikzpicture}[scale=.5]
\tkzDefPoint(0,0){A}
\tkzDefPoint(2,2){B}
\tkzDrawCircle[color=blue](B,A)
\tkzDrawCircle[color=blue](A,B)
\tkzInterCC(B,A)(A,B)\tkzGetPoints{M}{N}
\tkzDrawLine(A,B)
\tkzDrawPoints(M,N)
\tkzDrawLine[color=red](M,N)
\end{tikzpicture}
\begin{tikzpicture}[rotate=120,scale=.75]
\tkzDefPoint(1,2){A}
\tkzDefPoint(4,0){B}
\tkzInterCC[R](A,4cm)(B,4cm)
\tkzGetPoints{C}{D}
\tkzDrawCircle[R,dashed](A,4 cm)
\tkzDrawCircle[R,dashed](B,4 cm)
\tkzCompass[color=red](A,C)
\tkzCompass[color=red](B,C)
\tkzDrawPolygon(A,B,C)
𝐵
\tkzDrawPoints[color=blue](A,B,C)
𝐶 \tkzMarkSegments[mark=s|](A,C B,C)
\tkzLabelPoints[](A,B)
\tkzLabelPoint[above](C){$C$}
\end{tikzpicture}
The idea here is to divide a segment with a ruler and a compass into three segments of equal length.
tkz-euclide AlterMundus
20 Intersections 102
\begin{tikzpicture}[scale=.8]
\tkzDefPoint(0,0){A}
\tkzDefPoint(3,2){B}
\tkzInterCC(A,B)(B,A)
\tkzGetPoints{C}{D}
\tkzInterCC(D,B)(B,A)
\tkzGetPoints{A}{E}
\tkzInterCC(D,B)(A,B)
𝐵 \tkzGetPoints{F}{B}
𝐽 \tkzInterLC(E,F)(F,A)
\tkzGetPoints{D}{G}
𝐼 \tkzInterLL(A,G)(B,E)
𝐸
𝐴 \tkzGetPoint{O}
\tkzInterLL(O,D)(A,B)
\tkzGetPoint{J}
\tkzInterLL(O,F)(A,B)
𝐷
\tkzGetPoint{I}
\tkzDrawCircle(D,A)
\tkzDrawCircle(A,B)
\tkzDrawCircle(B,A)
𝐹 \tkzDrawCircle(F,A)
\tkzDrawSegments[color=red](O,G
O,B O,D O,F)
\tkzDrawPoints(A,B,D,E,F,G,I,J)
𝐺 \tkzLabelPoints(A,B,D,E,F,G,I,J)
\tkzDrawSegments[blue](A,B B,D A,D%
A,F F,G E,G B,E)
\tkzMarkSegments[mark=s|](A,I I,J J,B)
\end{tikzpicture}
\begin{tikzpicture}[scale=.5]
𝑏 \tkzDefPoints{0/0/a,0/5/B,5/0/C}
\tkzDefPoint(54:5){F}
𝑎 \tkzDrawCircle[color=gray](A,C)
\tkzInterCC[with nodes](A,A,C)(C,B,F)
\tkzGetPoints{a}{e}
\tkzInterCC(A,C)(a,e) \tkzGetFirstPoint{b}
\tkzInterCC(A,C)(b,a) \tkzGetFirstPoint{c}
𝑐 \tkzInterCC(A,C)(c,b) \tkzGetFirstPoint{d}
\tkzDrawPoints(a,b,c,d,e)
\tkzDrawPolygon[color=red](a,b,c,d,e)
\foreach \vertex/\num in {a/36,b/108,c/180,
𝑒 d/252,e/324}{%
\tkzDrawPoint(\vertex)
\tkzLabelPoint[label=\num:$\vertex$](\vertex){}
𝑑 \tkzDrawSegment[color=gray,style=dashed](A,\vertex)
}
\end{tikzpicture}
tkz-euclide AlterMundus
21 The angles 103
21 The angles
\tkzFillAngle[⟨local options⟩](⟨A,O,B⟩)
𝑂 is the vertex of the angle. 𝑂𝐴 and 𝑂𝐵 are the sides. Attention the angle is determined by the order of the points.
Of course, you have to add all the styles of Tik Z, like the use of fill and shade...
\begin{tikzpicture}
\tkzInit
\tkzDefPoints{0/0/O,2.5/0/A,1.5/2/B}
\tkzFillAngle[size=2cm, fill=gray!10](A,O,B)
\tkzDrawLines(O,A O,B)
\tkzDrawPoints(O,A,B)
\end{tikzpicture}
\begin{tikzpicture}
\tkzInit
\tkzDefPoints{0/0/O,2.5/0/A,1.5/2/B}
\tkzFillAngle[size=2cm,fill=gray!10](B,O,A)
\tkzDrawLines(O,A O,B)
\tkzDrawPoints(O,A,B)
\end{tikzpicture}
tkz-euclide AlterMundus
21 The angles 104
\begin{tikzpicture}
\tkzInit
\tkzDefPoints{0/0/O,5/0/A,3/4/B}
% Don't forget {} to get, () to use
\tkzFillAngle[size=4cm,left color=white,
right color=red!50](A,O,B)
\tkzDrawLines(O,A O,B)
\tkzDrawPoints(O,A,B)
\end{tikzpicture}
\tkzFillAngles[⟨local options⟩](⟨A,O,B⟩)(⟨A',O',B'⟩)etc.
\begin{tikzpicture}[scale=0.75]
𝐴 𝐷
\tkzDefPoint(0,0){B}
\tkzDefPoint(8,0){C}
𝑀 \tkzDefPoint(0,8){A}
\tkzDefPoint(8,8){D}
𝑁 \tkzDrawPolygon(B,C,D,A)
\tkzDefTriangle[equilateral](B,C)
\tkzGetPoint{M}
\tkzInterLL(D,M)(A,B) \tkzGetPoint{N}
\tkzDefPointBy[rotation=center N angle -60](D)
𝑃
\tkzGetPoint{L}
\tkzInterLL(N,L)(M,B) \tkzGetPoint{P}
𝑄 \tkzInterLL(M,C)(D,L) \tkzGetPoint{Q}
\tkzDrawSegments(D,N N,L L,D B,M M,C)
\tkzDrawPoints(L,N,P,Q,M,A,D)
\tkzLabelPoints[left](N,P,Q)
\tkzLabelPoints[above](M,A,D)
𝐵 𝐿 𝐶 \tkzLabelPoints(L,B,C)
\tkzMarkAngles(C,B,M B,M,C M,C,B%
D,L,N L,N,D N,D,L)
\tkzFillAngles[fill=red!20,opacity=.2](C,B,M%
B,M,C M,C,B D,L,N L,N,D N,D,L)
\end{tikzpicture}
More delicate operation because there are many options. The symbols used for marking in addition to those of
Tik Z are defined in the file tkz-lib-marks.tex and designated by the following characters:
|, ||,|||, z, s, x, o, oo
tkz-euclide AlterMundus
21 The angles 105
\pgfdeclareplotmark{||}
%double bar
{%
\pgfpathmoveto{\pgfqpoint{2\pgflinewidth}{\pgfplotmarksize}}
\pgfpathlineto{\pgfqpoint{2\pgflinewidth}{-\pgfplotmarksize}}
\pgfpathmoveto{\pgfqpoint{-2\pgflinewidth}{\pgfplotmarksize}}
\pgfpathlineto{\pgfqpoint{-2\pgflinewidth}{-\pgfplotmarksize}}
\pgfusepathqstroke
}
%triple bar
\pgfdeclareplotmark{|||}
{%
\pgfpathmoveto{\pgfqpoint{0 pt}{\pgfplotmarksize}}
\pgfpathlineto{\pgfqpoint{0 pt}{-\pgfplotmarksize}}
\pgfpathmoveto{\pgfqpoint{-3\pgflinewidth}{\pgfplotmarksize}}
\pgfpathlineto{\pgfqpoint{-3\pgflinewidth}{-\pgfplotmarksize}}
\pgfpathmoveto{\pgfqpoint{3\pgflinewidth}{\pgfplotmarksize}}
\pgfpathlineto{\pgfqpoint{3\pgflinewidth}{-\pgfplotmarksize}}
\pgfusepathqstroke
}
% An bar slant
\pgfdeclareplotmark{s|}
{%
\pgfpathmoveto{\pgfqpoint{-.70710678\pgfplotmarksize}%
{-.70710678\pgfplotmarksize}}
\pgfpathlineto{\pgfqpoint{.70710678\pgfplotmarksize}%
{.70710678\pgfplotmarksize}}
\pgfusepathqstroke
}
% z
\pgfdeclareplotmark{z}
{%
\pgfpathmoveto{\pgfqpoint{0.75\pgfplotmarksize}{-\pgfplotmarksize}}
\pgfpathlineto{\pgfqpoint{-0.75\pgfplotmarksize}{-\pgfplotmarksize}}
\pgfpathlineto{\pgfqpoint{0.75\pgfplotmarksize}{\pgfplotmarksize}}
\pgfpathlineto{\pgfqpoint{-0.75\pgfplotmarksize}{\pgfplotmarksize}}
\pgfusepathqstroke
}
tkz-euclide AlterMundus
21 The angles 106
% s
\pgfdeclareplotmark{s}
{%
\pgfpathmoveto{\pgfqpoint{0pt}{0pt}}
\pgfpathcurveto
{\pgfpoint{0pt}{0pt}}
{\pgfpoint{-\pgfplotmarksize}{\pgfplotmarksize}}
{\pgfpoint{\pgfplotmarksize}{\pgfplotmarksize}}
\pgfpathmoveto{\pgfqpoint{0pt}{0pt}}
\pgfpathcurveto
{\pgfpoint{0pt}{0pt}}
{\pgfpoint{\pgfplotmarksize}{-\pgfplotmarksize}}
{\pgfpoint{-\pgfplotmarksize}{-\pgfplotmarksize}}
\pgfusepathqstroke
}
% infinity
\pgfdeclareplotmark{oo}
{%
\pgfpathmoveto{\pgfqpoint{0pt}{0pt}}
\pgfpathcurveto
{\pgfpoint{0pt}{0pt}}
{\pgfpoint{.5\pgfplotmarksize}{1\pgfplotmarksize}}
{\pgfpoint{\pgfplotmarksize}{0pt}}
\pgfpathmoveto{\pgfqpoint{0pt}{0pt}}
\pgfpathcurveto
{\pgfpoint{0pt}{0pt}}
{\pgfpoint{-.5\pgfplotmarksize}{1\pgfplotmarksize}}
{\pgfpoint{-\pgfplotmarksize}{0pt}}
\pgfpathmoveto{\pgfqpoint{0pt}{0pt}}
\pgfpathcurveto
{\pgfpoint{0pt}{0pt}}
{\pgfpoint{.5\pgfplotmarksize}{-1\pgfplotmarksize}}
{\pgfpoint{\pgfplotmarksize}{0pt}}
\pgfpathmoveto{\pgfqpoint{0pt}{0pt}}
\pgfpathcurveto
{\pgfpoint{0pt}{0pt}}
{\pgfpoint{-.5\pgfplotmarksize}{-1\pgfplotmarksize}}
{\pgfpoint{-\pgfplotmarksize}{0pt}}
\pgfusepathqstroke
}
\tkzMarkAngle[⟨local options⟩](⟨A,O,B⟩)
𝑂 is the vertex. Attention the arguments vary according to the options. Several markings are possible. You can
simply draw an arc or add a mark on this arc. The style of the arc is chosen with the option arc, the radius of the
arc is given by mksize, the arc can, of course, be colored.
tkz-euclide AlterMundus
21 The angles 107
\begin{tikzpicture}[scale=.75]
\tkzDefPoints{0/0/O,5/0/A,3/4/B}
\tkzMarkAngle[size = 4cm,mark = x,
arc=ll,mkcolor = red](A,O,B)
\tkzDrawLines(O,A O,B)
\tkzDrawPoints(O,A,B)
\end{tikzpicture}
\begin{tikzpicture}[scale=.75]
\tkzDefPoints{0/0/O,5/0/A,3/4/B}
\tkzMarkAngle[size = 4cm,mark = ||,
arc=ll,mkcolor = red](A,O,B)
\tkzDrawLines(O,A O,B)
\tkzDrawPoints(O,A,B)
\end{tikzpicture}
\tkzMarkAngles[⟨local options⟩](⟨A,O,B⟩)(⟨A',O',B'⟩)etc.
\tkzLabelAngle[⟨local options⟩](⟨A,O,B⟩)
There is only one option, dist (with or without unit), which can be replaced by the TikZ’s pos option (without unit
for the latter). By default, the value is in centimeters.
It is possible to move the label with all TikZ options : rotate, shift, below, etc.
tkz-euclide AlterMundus
21 The angles 108
\begin{tikzpicture}[scale=.75]
\tkzDefPoints{0/0/O,5/0/A,3/4/B}
\tkzMarkAngle[size = 4cm,mark = ||,
arc=ll,color = red](A,O,B)%
\tkzDrawLines(O,A O,B)
\tkzDrawPoints(O,A,B)
\tkzLabelAngle[pos=2,draw,circle,
fill=blue!10](A,O,B){$\alpha$}
𝛼
\end{tikzpicture}
\begin{tikzpicture}[rotate=30]
𝑃
\tkzDefPoint(2,1){S}
\tkzDefPoint(7,3){T}
\tkzDefPointBy[rotation=center S angle 60](T)
𝑇 \tkzGetPoint{P}
\tkzDefLine[bisector,normed](T,S,P)
\tkzGetPoint{s}
30∘ \tkzDrawPoints(S,T,P)
30∘ \tkzDrawPolygon[color=blue](S,T,P)
\tkzDrawLine[dashed,color=blue,add=0 and 3](S,s)
60∘ \tkzLabelPoint[above right](P){$P$}
\tkzLabelPoints(S,T)
\tkzMarkAngle[size = 1.8cm,mark = |,arc=ll,
color = blue](T,S,P)
\tkzMarkAngle[size = 2.1cm,mark = |,arc=l,
𝑆 color = blue](T,S,s)
\tkzMarkAngle[size = 2.3cm,mark = |,arc=l,
color = blue](s,S,P)
\tkzLabelAngle[pos = 1.5](T,S,P){$60^{\circ}$}%
\tkzLabelAngles[pos = 2.7](T,S,s s,S,P){$30^{\circ}$}%
\end{tikzpicture}
\tkzLabelAngles[⟨local options⟩](⟨A,O,B⟩)(⟨A',O',B'⟩)etc.
\tkzMarkRightAngle[⟨local options⟩](⟨A,O,B⟩)
The german option allows you to change the style of the drawing. The option size allows to change the size of
the drawing.
tkz-euclide AlterMundus
21 The angles 109
\begin{tikzpicture}
\tkzDefPoints{0/0/A,3/1/B,0.9/-1.2/P}
\tkzDefPointBy[projection = onto B--A](P) \tkzGetPoint{H}
\tkzDrawLines[add=.5 and .5](P,H)
\tkzMarkRightAngle[fill=blue!20,size=.5,draw](A,H,P)
\tkzDrawLines[add=.5 and .5](A,B)
\tkzMarkRightAngle[fill=red!20,size=.8](B,H,P)
\tkzDrawPoints[](A,B,P,H)
\end{tikzpicture}
\begin{tikzpicture}
\tkzDefPoints{0/0/A,3/1/B,0.9/-1.2/P}
\tkzDefPointBy[projection = onto B--A](P) \tkzGetPoint{H}
\tkzDrawLines[add=.5 and .5](P,H)
\tkzMarkRightAngle[german,size=.5,draw](A,H,P)
\tkzDrawPoints[](A,B,P,H)
\tkzDrawLines[add=.5 and .5,fill=blue!20](A,B)
\tkzMarkRightAngle[german,size=.8](P,H,B)
\end{tikzpicture}
\begin{tikzpicture}[scale=.75]
\tkzDefPoint(0,0){A}
\tkzDefPoint(4,1){B}
\tkzDefPoint(2,5){C}
\tkzDefPointBy[projection=onto B--A](C)
𝐶 \tkzGetPoint{H}
\tkzDrawLine(A,B)
\tkzDrawLine[add = .5 and .2,color=red](C,H)
\tkzMarkRightAngle[,size=1,color=red](C,H,A)
\tkzMarkRightAngle[german,size=.8,color=blue](B,H,C)
\tkzFillAngle[opacity=.2,fill=blue!20,size=.8](B,H,C)
\tkzLabelPoints(A,B,C,H)
\tkzDrawPoints(A,B,C)
𝐵
𝐻 \end{tikzpicture}
𝐴
tkz-euclide AlterMundus
22 Angles tools 110
\begin{tikzpicture}[rotate=-90]
𝐴
\tkzDefPoint(0,1){A}
\tkzDefPoint(2,4){C}
𝑏
\tkzDefPointWith[orthogonal normed,K=7](C,A)
\tkzGetPoint{B}
𝑃 𝐶 \tkzDrawSegment[green!60!black](A,C)
\tkzDrawSegment[green!60!black](C,B)
\tkzDrawSegment[green!60!black](B,A)
\tkzDrawLine[altitude,dashed,color=magenta](B,C,A)
\tkzGetPoint{P}
𝑐 \tkzLabelPoint[left](A){$A$}
\tkzLabelPoint[right](B){$B$}
\tkzLabelPoint[above](C){$C$}
\tkzLabelPoint[left](P){$P$}
𝑎 \tkzLabelSegment[auto](B,A){$c$}
\tkzLabelSegment[auto,swap](B,C){$a$}
\tkzLabelSegment[auto,swap](C,A){$b$}
\tkzMarkAngle[size=1cm,color=cyan,mark=|](C,B,A)
\tkzMarkAngle[size=1cm,color=cyan,mark=|](A,C,P)
\tkzMarkAngle[size=0.75cm,color=orange,mark=||](P,C,B)
\tkzMarkAngle[size=0.75cm,color=orange,mark=||](B,A,C)
𝐵 \tkzMarkRightAngle[german](A,C,B)
\tkzMarkRightAngle[german](B,P,C)
\end{tikzpicture}
21.5 \tkzMarkRightAngles
\tkzMarkRightAngles[⟨local options⟩](⟨A,O,B⟩)(⟨A',O',B'⟩)etc.
22 Angles tools
\tkzGetAngle(⟨name of macro⟩)
Assigns the value in degree of an angle to a macro. This macro retrieves \tkzAngleResult and stores the result
in a new macro.
̂ such that the 𝐴𝐷 slope is zero. We recover the slope of (𝐴𝐵) and
The point here is that (𝐴𝐵) is the bisector of 𝐶𝐴𝐷,
then rotate twice.
tkz-euclide AlterMundus
22 Angles tools 111
𝐴
𝐷
\begin{tikzpicture}
\tkzInit
\tkzDefPoint(1,5){A} \tkzDefPoint(5,2){B}
\tkzDrawSegment(A,B)
\tkzFindSlopeAngle(A,B)\tkzGetAngle{tkzang}
\tkzDefPointBy[rotation= center A angle \tkzang ](B)
\tkzGetPoint{C}
\tkzDefPointBy[rotation= center A angle -\tkzang ](B)
\tkzGetPoint{D}
\tkzCompass[length=1,dashed,color=red](A,C)
\tkzCompass[delta=10,brown](B,C)
\tkzDrawPoints(A,B,C,D)
\tkzLabelPoints(B,C,D)
\tkzLabelPoints[above left](A)
\tkzDrawSegments[style=dashed,color=orange!30](A,C A,D)
\end{tikzpicture}
\tkzFindAngle(⟨pt1,pt2,pt3⟩)
The result is between -180 degrees and +180 degrees. pt2 is the vertex and \tkzGetAngle can retrieve the angle.
tkz-euclide AlterMundus
22 Angles tools 112
\begin{tikzpicture}[scale=.75]
𝐶
\tkzDefPoint(-1,1){A}
\tkzDefPoint(5,2){B}
\tkzDefEquilateral(A,B)
\tkzGetPoint{C}
\tkzDrawPolygon(A,B,C)
\tkzFindAngle(B,A,C)
\tkzGetAngle{angleBAC}
\edef\angleBAC{\fpeval{round(\angleBAC)}}
\tkzDrawPoints(A,B,C)
60∘ 𝐵 \tkzLabelPoints(A,B)
\tkzLabelPoint[right](C){$C$}
𝐴 \tkzLabelAngle(B,A,C){\angleBAC$^\circ$}
\tkzMarkAngle[size=1.5cm](B,A,C)
\end{tikzpicture}
𝐵
𝐶
̂ =𝑀
𝐴𝑂𝐷 ̂𝐵𝐴 = 74.74∘
𝑀
̂ = 𝐴𝑂𝑀
𝐴𝑂𝐶 ̂ = 53.13∘
𝑂 𝐴
tkz-euclide AlterMundus
22 Angles tools 113
\begin{tikzpicture}
\tkzInit[xmin=-1,ymin=-1,xmax=7,ymax=7]
\tkzClip
\tkzDefPoint (0,0){O} \tkzDefPoint (6,0){A}
\tkzDefPoint (5,5){B} \tkzDefPoint (3,4){M}
\tkzFindAngle (A,O,M) \tkzGetAngle{an}
\tkzDefPointBy[rotation=center O angle \an](A)
\tkzGetPoint{C}
\tkzDrawSector[fill = blue!50,opacity=.5](O,A)(C)
\tkzFindAngle(M,B,A) \tkzGetAngle{am}
\tkzDefPointBy[rotation = center O angle \am](A)
\tkzGetPoint{D}
\tkzDrawSector[fill = red!50,opacity = .5](O,A)(D)
\tkzDrawPoints(O,A,B,M,C,D)
\tkzLabelPoints(O,A,B,M,C,D)
\edef\an{\fpeval{round(\an,2)}}\edef\am{\fpeval{round(\am,2)}}
\tkzDrawSegments(M,B B,A)
\tkzText(4,2){$\widehat{AOC}=\widehat{AOM}=\an^{\circ}$}
\tkzText(1,4){$\widehat{AOD}=\widehat{MBA}=\am^{\circ}$}
\end{tikzpicture}
\begin{tikzpicture}[scale=1.25,rotate=30]
𝐵
\tkzDefPoints{0.5/1.5/A, 3.5/4/B, 6/2.5/C}
𝐶 \tkzDrawPolygon(A,B,C)
41.27∘
\tkzDrawPoints(A,B,C)
109.23∘ \tkzLabelPoints[below](A,C)
\tkzLabelPoints[above](B)
\tkzMarkAngle[size=1cm](B,C,A)
\tkzFindAngle(B,C,A)
29.5∘ \tkzGetAngle{angleBCA}
\edef\angleBCA{\fpeval{round(\angleBCA,2)}}
\tkzLabelAngle[pos = 1](B,C,A){$\angleBCA^{\circ}$}
\tkzMarkAngle[size=1cm](C,A,B)
\tkzFindAngle(C,A,B)
\tkzGetAngle{angleBAC}
𝐴 \edef\angleBAC{\fpeval{round(\angleBAC,2)}}
\tkzLabelAngle[pos = 1.8](C,A,B){%
$\angleBAC^{\circ}$}
\tkzMarkAngle[size=1cm](A,B,C)
\tkzFindAngle(A,B,C)
\tkzGetAngle{angleABC}
\edef\angleABC{\fpeval{round(\angleABC,2)}}
\tkzLabelAngle[pos = 1](A,B,C){$\angleABC^{\circ}$}
\end{tikzpicture}
It is a question of determining whether it exists, the slope of a straight line defined by two points. No verification
of the existence is made.
\tkzFindSlope(⟨pt1,pt2⟩){⟨name of macro⟩}
tkz-euclide AlterMundus
22 Angles tools 114
\begin{tikzpicture}[scale=1.5]
\tkzInit[xmax=4,ymax=5]\tkzGrid[sub]
\tkzDefPoint(1,2){A} \tkzDefPoint(3,4){B}
\tkzDefPoint(3,2){C} \tkzDefPoint(3,1){D}
The slope of (AB) is : 1 \tkzDrawSegments(A,B A,C A,D)
𝐵
\tkzDrawPoints[color=red](A,B,C,D)
The slope of (AC) is : 0 \tkzLabelPoints(A,B,C,D)
\tkzFindSlope(A,B){SAB} \tkzFindSlope(A,C){SAC}
The slope of (AD) is : −0.5 \tkzFindSlope(A,D){SAD}
\pgfkeys{/pgf/number format/.cd,fixed,precision=2}
\tkzText[fill=Gold!50,draw=brown](1,4)%
{The slope of (AB) is : $\pgfmathprintnumber{\SAB}$}
𝐴 𝐶 \tkzText[fill=Gold!50,draw=brown](1,3.5)%
{The slope of (AC) is : $\pgfmathprintnumber{\SAC}$}
\tkzText[fill=Gold!50,draw=brown](1,3)%
{The slope of (AD) is : $\pgfmathprintnumber{\SAD}$}
𝐷 \end{tikzpicture}
22.6 Angle formed by a straight line with the horizontal axis \tkzFindSlopeAngle
Much more interesting than the last one. The result is between -180 degrees and +180 degrees.
\tkzFindSlopeAngle(⟨A,B⟩)
Determines the slope of the straight line (AB). The result is stored in a macro \tkzAngleResult.
\tkzGetAngle can retrieve the result. If retrieval is not necessary, you can use \tkzAngleResult.
tkz-euclide AlterMundus
22 Angles tools 115
22.6.1 Folding
\begin{tikzpicture}
𝐴
\tkzDefPoint(1,5){A}
𝐷 \tkzDefPoint(5,2){B}
\tkzDrawSegment(A,B)
\tkzFindSlopeAngle(A,B)
\tkzGetAngle{tkzang}
\tkzDefPointBy[rotation= center A angle \tkzang ](B)
\tkzGetPoint{C}
\tkzDefPointBy[rotation= center A angle -\tkzang ](B)
\tkzGetPoint{D}
𝐵
\tkzCompass[orange,length=1](A,C)
\tkzCompass[orange,delta=10](B,C)
\tkzDrawPoints(A,B,C,D)
\tkzLabelPoints(B,C,D)
𝐶 \tkzLabelPoints[above left](A)
\tkzDrawSegments[style=dashed,color=orange](A,C A,D)
\end{tikzpicture}
\begin{tikzpicture}
\tkzInit
\tkzDefPoint(0,0){A}
𝐼 \tkzDefPoint(3,2){B}
\tkzDefLine[mediator](A,B)
\tkzGetPoints{I}{J}
\tkzCalcLength[cm](A,B)
𝐵 \tkzGetLength{dAB}
\tkzFindSlopeAngle(A,B)
\tkzGetAngle{tkzangle}
\begin{scope}[rotate=\tkzangle]
\tikzset{arc/.style={color=gray,delta=10}}
\tkzDrawArc[orange,R,arc](B,3/4*\dAB)(120,240)
𝐴 \tkzDrawArc[orange,R,arc](A,3/4*\dAB)(-45,60)
\tkzDrawLine(I,J)
\tkzDrawSegment(A,B)
𝐽 \end{scope}
\tkzDrawPoints(A,B,I,J)
\tkzLabelPoints(A,B)
\tkzLabelPoints[right](I,J)
\end{tikzpicture}
tkz-euclide AlterMundus
23 Sectors 116
23 Sectors
23.1 \tkzDrawSector
\tkzDrawSector[⟨local options⟩](⟨O,…⟩)(⟨…⟩)
You have to add, of course, all the styles of Tik Z for tracings...
\begin{tikzpicture}[scale=1]
\tkzDefPoint(0,0){O}
\tkzDefPoint(-30:3){A}
\tkzDefPointBy[rotation = center O angle -60](A)
\tkzDrawSector[fill=red!50](O,A)(tkzPointResult)
\begin{scope}[shift={(-60:1cm)}]
\tkzDefPoint(0,0){O}
\tkzDefPoint(-30:3){A}
\tkzDefPointBy[rotation = center O angle -60](A)
\tkzDrawSector[fill=blue!50](O,tkzPointResult)(A)
\end{scope}
\end{tikzpicture}
tkz-euclide AlterMundus
23 Sectors 117
\begin{tikzpicture}[scale=2]
\tkzDefPoint(0,0){O}
\tkzDefPoint(2,2){A}
\tkzDrawSector[rotate,draw=red!50!black,%
fill=red!20](O,A)(30)
\tkzDrawSector[rotate,draw=blue!50!black,%
fill=blue!20](O,A)(-30)
\end{tikzpicture}
\begin{tikzpicture}[scale=1.25]
\tkzDefPoint(0,0){O}
\tkzDefPoint(2,-1){A}
\tkzDrawSector[R,draw=white,%
fill=red!50](O,2cm)(30,90)
\tkzDrawSector[R,draw=white,%
fill=red!60](O,2cm)(90,180)
\tkzDrawSector[R,draw=white,%
fill=red!70](O,2cm)(180,270)
\tkzDrawSector[R,draw=white,%
fill=red!90](O,2cm)(270,360)
\end{tikzpicture}
\begin{tikzpicture}[scale=1.25]
𝐶 \tkzDefPoint(0,0){O}
\tkzDefPoint(4,-2){A}
\tkzDefPoint(4,1){B}
\tkzDefPoint(3,3){C}
\tkzDrawSector[R with nodes,%
fill=blue!20](O,1 cm)(B,C)
𝐵 \tkzDrawSector[R with nodes,%
fill=red!20](O,1.25 cm)(A,B)
\tkzDrawSegments(O,A O,B O,C)
𝑂 \tkzDrawPoints(O,A,B,C)
\tkzLabelPoints(A,B,C)
\tkzLabelPoints[left](O)
\end{tikzpicture}
tkz-euclide AlterMundus
23 Sectors 118
\begin{tikzpicture} [scale=.5]
𝐶
3 \tkzDefPoint(-1,-2){A}
𝐷 \tkzDefPoint(1,3){B}
\tkzDefRegPolygon[side,sides=6](A,B)
2
\tkzGetPoint{O}
4 \tkzDrawPolygon[fill=black!10,
𝑆 draw=blue](P1,P...,P6)
𝐵 \tkzLabelRegPolygon[sep=1.05](O){A,...,F}
𝛼
\tkzDrawCircle[dashed](O,A)
6𝑚
𝐸 \tkzLabelSegment[above,sloped,
=1 1 midway](A,B){\(A B = 16m\)}
\foreach \i [count=\xi from 1] in {2,...,6,1}
𝐴𝐵
5 {%
\tkzDefMidPoint(P\xi,P\i)
𝐴 \path (O) to [pos=1.1] node {\xi} (tkzPointResult) ;
6
𝐹 }
\tkzDefRandPointOn[segment = P3--P5]
\tkzGetPoint{S}
\tkzDrawSegments[thick,dashed,red](A,S S,B)
\tkzDrawPoints(P1,P...,P6,S)
\tkzLabelPoint[left,above](S){$S$}
\tkzDrawSector[R with nodes,fill=red!20](S,2 cm)(A,B)
\tkzLabelAngle[pos=1.5](A,S,B){$\alpha$}
\end{tikzpicture}
23.2 \tkzFillSector
\tkzFillSector[⟨local options⟩](⟨O,…⟩)(⟨…⟩)
Of course, you have to add all the styles of Tik Z for the tracings...
It is useless to put towards and you will notice that the contours are not drawn, only the surface is colored.
tkz-euclide AlterMundus
23 Sectors 119
\begin{tikzpicture}[scale=.6]
\tkzDefPoint(0,0){O}
\tkzDefPoint(-30:3){A}
\tkzDefPointBy[rotation = center O angle -60](A)
\tkzFillSector[fill=red!50](O,A)(tkzPointResult)
\begin{scope}[shift={(-60:1cm)}]
\tkzDefPoint(0,0){O}
\tkzDefPoint(-30:3){A}
\tkzDefPointBy[rotation = center O angle -60](A)
\tkzFillSector[color=blue!50](O,tkzPointResult)(A)
\end{scope}
\end{tikzpicture}
\begin{tikzpicture}[scale=1.5]
\tkzDefPoint(0,0){O} \tkzDefPoint(2,2){A}
\tkzFillSector[rotate,color=red!20](O,A)(30)
\tkzFillSector[rotate,color=blue!20](O,A)(-30)
\end{tikzpicture}
23.3 \tkzClipSector
\tkzClipSector[⟨local options⟩](⟨O,…⟩)(⟨…⟩)
You have to add, of course, all the styles of Tik Z for tracings...
tkz-euclide AlterMundus
23 Sectors 120
23.3.1 \tkzClipSector
\begin{tikzpicture}[scale=1.5]
\tkzDefPoint(0,0){O}
\tkzDefPoint(2,-1){A}
\tkzDefPoint(1,1){B}
\tkzDrawSector[color=blue,dashed](O,A)(B)
\tkzDrawSector[color=blue](O,B)(A)
\tkzClipBB
\begin{scope}
\tkzClipSector(O,B)(A)
\draw[fill=gray!20] (-1,0) rectangle (3,3);
\end{scope}
\tkzDrawPoints(A,B,O)
\end{tikzpicture}
tkz-euclide AlterMundus
24 The arcs 121
24 The arcs
\tkzDrawArc[⟨local options⟩](⟨O,…⟩)(⟨…⟩)
This macro traces the arc of center 𝑂. Depending on the options, the arguments differ. It is a question of
determining a starting point and an end point. Either the starting point is given, which is the simplest, or the
radius of the arc is given. In the latter case, it is necessary to have two angles. Either the angles can be given
directly, or nodes associated with the center can be given to determine them. The angles are in degrees.
Of course, you have to add all the styles of Tik Z for the tracings...
It’s useless to put towards. In this first example the arc starts from 𝐴 and goes to 𝐵. The arc going from 𝐵 to 𝐴 is
different. The salient is obtained by going in the direct direction of the trigonometric circle.
\begin{tikzpicture}
\tkzDefPoint(0,0){O}
\tkzDefPoint(2,-1){A}
𝐵 \tkzDefPointBy[rotation= center O angle 90](A)
\tkzGetPoint{B}
\tkzDrawArc[color=blue,<->](O,A)(B)
\tkzDrawArc(O,B)(A)
\tkzDrawLines[add = 0 and .5](O,A O,B)
𝑂 \tkzDrawPoints(O,A,B)
\tkzLabelPoints[below](O,A,B)
\end{tikzpicture}
𝐴
In this one, the arc starts from A but stops on the right (OB).
tkz-euclide AlterMundus
24 The arcs 122
\begin{tikzpicture}[scale=1.5]
\tkzDefPoint(0,0){O}
\tkzDefPoint(2,-1){A}
𝐵 \tkzDefPoint(1,1){B}
\tkzDrawArc[color=blue,->](O,A)(B)
\tkzDrawArc[color=gray](O,B)(A)
\tkzDrawArc(O,B)(A)
𝑂 \tkzDrawLines[add = 0 and .5](O,A O,B)
\tkzDrawPoints(O,A,B)
\tkzLabelPoints[below](O,A,B)
\end{tikzpicture}
𝐴
\begin{tikzpicture}
\tkzDefPoint(0,0){O}
\tkzDefPoint(2,-2){A}
\tkzDefPoint(60:2){B}
𝐵 \tkzDrawLines[add = 0 and .5](O,A O,B)
\tkzDrawArc[rotate,color=red](O,A)(180)
\tkzDrawPoints(O,A,B)
\tkzLabelPoints[below](O,A,B)
\end{tikzpicture}
𝑂
24.4 Option R
\begin{tikzpicture}
\tkzDefPoints{0/0/O}
\tikzset{compass style/.append style={<->}}
\tkzDrawArc[R,color=orange,double](O,3cm)(270,360)
\tkzDrawArc[R,color=blue,double](O,2cm)(0,270)
\tkzDrawPoint(O)
𝑂 \tkzLabelPoint[below](O){$O$}
\end{tikzpicture}
tkz-euclide AlterMundus
24 The arcs 123
\begin{tikzpicture}
\tkzDefPoint(0,0){O}
\tkzDefPoint(2,-1){A}
\tkzDefPoint(1,1){B}
\tkzCalcLength(B,A)\tkzGetLength{radius}
\tkzDrawArc[R with nodes](B,\radius pt)(A,O)
\end{tikzpicture}
This option allows a bit like \tkzCompass to place an arc and overflow on either side. delta is a measure in degrees.
\begin{tikzpicture}
\tkzDefPoint(0,0){A}
\tkzDefPoint(5,0){B}
\tkzDefPointBy[rotation= center A angle 60](B)
\tkzGetPoint{C}
𝐷 \tkzSetUpLine[color=gray]
\tkzDefPointBy[symmetry= center C](A)
\tkzGetPoint{D}
\tkzDrawSegments(A,B A,D)
\tkzDrawLine(B,D)
\tkzSetUpCompass[color=orange]
\tkzDrawArc[orange,delta=10](A,B)(C)
\tkzDrawArc[orange,delta=10](B,C)(A)
\tkzDrawArc[orange,delta=10](C,D)(D)
\tkzDrawPoints(A,B,C,D)
\tkzLabelPoints(A,B,C,D)
𝐶 \tkzMarkRightAngle(D,B,A)
\end{tikzpicture}
𝐴 𝐵
tkz-euclide AlterMundus
24 The arcs 124
\begin{tikzpicture}[scale=.75]
\tkzDefPoint(0,0){A}
𝐸 \tkzDefPoint(5,0){B}
\tkzDefPoint(2.5,0){O}
\tkzDefPointBy[rotation=center O angle 60](B)
\tkzGetPoint{D}
\tkzDefPointBy[symmetry=center D](O)
𝐷
\tkzGetPoint{E}
\tkzSetUpLine[color=Maroon]
\tkzDrawArc[angles](O,B)(0,180)
\tkzDrawArc[angles,](B,O)(100,180)
𝐴 𝑂 𝐵 \tkzCompass[delta=20](D,E)
\tkzDrawLines(A,B O,E B,E)
\tkzDrawPoints(A,B,O,D,E)
\tkzLabelPoints(A,B,O,D,E)
\tkzMarkRightAngle(O,B,E)
\end{tikzpicture}
\begin{tikzpicture}
\tkzDefPoint(0,0){O}
\tkzDefPoint(5,0){I}
\tkzDefPoint(0,5){J}
\tkzInterCC(O,I)(I,O)\tkzGetPoints{B}{C}
\tkzInterCC(O,I)(J,O)\tkzGetPoints{D}{A}
\tkzInterCC(I,O)(J,O)\tkzGetPoints{L}{K}
\tkzDrawArc[angles](O,I)(0,90)
\tkzDrawArc[angles,color=gray,style=dashed](I,O)(90,180)
\tkzDrawArc[angles,color=gray,style=dashed](J,O)(-
90,0)
\tkzDrawPoints(A,B,K)
\foreach \point in {I,A,B,J,K}{\tkzDrawSegment(O,\point)}
\end{tikzpicture}
tkz-euclide AlterMundus
25 Miscellaneous tools 125
25 Miscellaneous tools
This involves constructing a segment on a given half-line of the same length as a given segment.
\tkzDuplicateSegment(⟨pt1,pt2⟩)(⟨pt3,pt4⟩){⟨pt5⟩}
This involves creating a segment on a given half-line of the same length as a given segment . It is in fact the defini-
arguments example
tion of a point. \tkzDuplicateSegment is the new name of \tkzDuplicateLen. (pt1,pt2)(pt3,pt4){pt5} \tkzDuplica
\begin{tikzpicture}
𝐶
\tkzDefPoint(0,0){A}
\tkzDefPoint(2,-3){B}
\tkzDefPoint(2,5){C}
\tkzDrawSegments[red](A,B A,C)
𝐷 \tkzDuplicateSegment(A,B)(A,C)
\tkzGetPoint{D}
\tkzDrawSegment[green](A,D)
\tkzDrawPoints[color=red](A,B,C,D)
\tkzLabelPoints[above right=3pt](A,B,C,D)
\end{tikzpicture}
tkz-euclide AlterMundus
25 Miscellaneous tools 126
\begin{tikzpicture}[rotate=-90,scale=.75]
𝑁 \tkzDefPoint(0,0){A}
\tkzDefPoint(10,0){B}
\tkzDefMidPoint(A,B)
\tkzGetPoint{I}
\tkzDefPointWith[orthogonal,K=-.75](B,A)
\tkzGetPoint{C}
\tkzInterLC(B,C)(B,I) \tkzGetSecondPoint{D}
\tkzDuplicateSegment(B,D)(D,A) \tkzGetPoint{E}
\tkzInterLC(A,B)(A,E) \tkzGetPoints{N}{M}
\tkzDrawArc[orange,delta=10](D,E)(B)
\tkzDrawArc[orange,delta=10](A,M)(E)
\tkzDrawLines(A,B B,C A,D)
𝐴 \tkzDrawArc[orange,delta=10](B,D)(I)
\tkzDrawPoints(A,B,D,C,M,I,N)
\tkzLabelPoints(A,B,D,C,M,I,N)
\end{tikzpicture}
𝐵 𝐷 𝐶
There’s an option in Tik Z named veclen. This option is used to calculate AB if A and B are two points.
The only problem for me is that the version of Tik Z is not accurate enough in some cases. My version uses the xfp
package and is slower, but more accurate.
tkz-euclide AlterMundus
25 Miscellaneous tools 127
\begin{tikzpicture}[scale=1]
\tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
\tkzDrawLine[add= .6 and .2](A,B)
𝐷 \tkzCalcLength[cm](A,B)\tkzGetLength{dAB}
\tkzDefLine[perpendicular=through A](A,B)
\tkzDrawLine(A,tkzPointResult) \tkzGetPoint{D}
\tkzShowLine[orthogonal=through A,gap=2](A,B)
\tkzMarkRightAngle(B,A,D)
\tkzVecKOrth[-1](B,A)\tkzGetPoint{C}
\tkzCompasss(A,D D,C)
\tkzDrawArc[R](B,\dAB)(80,110)
\tkzDrawPoints(A,B,C,D)
\tkzDrawSegments[color=gray,style=dashed](B,C C,D)
𝐴 𝐵 \tkzLabelPoints(A,B,C,D)
\end{tikzpicture}
Not sure if this is necessary and it is only a division by 28.45274 and a multiplication by the same number. The
macros are:
\tkzpttocm(⟨nombre⟩){⟨name of macro⟩}
You’ll have to use \len along with cm. The result is stored in a macro.
\tkzcmtopt(⟨nombre⟩){⟨name of macro⟩}
The result is stored in a macro. The result can be used with \len pt.
tkz-euclide AlterMundus
25 Miscellaneous tools 128
25.4.1 Example
The macro \tkzDefCircle[radius](A,B) defines the radius that we retrieve with \tkzGetLength, but this
result is in pt.
\begin{tikzpicture}[scale=.5]
\tkzDefPoint(0,0){A}
\tkzDefPoint(3,-4){B}
\tkzDefCircle[through](A,B)
\tkzGetLength{rABpt}
\tkzpttocm(\rABpt){rABcm}
\tkzDrawCircle(A,B)
𝐴 \tkzDrawPoints(A,B)
5 \tkzLabelPoints(A,B)
\tkzDrawSegment[dashed](A,B)
\tkzLabelSegment(A,B){$\pgfmathprintnumber{\rABcm}$}
\end{tikzpicture}
𝐵
\tkzGetPointCoord(⟨𝐴⟩){⟨name of macro⟩}
Stores in two macros the coordinates of a point. If the name of the macro is p, then \px and \py give the
coordinates of the chosen point with the cm as unit.
𝑦 \begin{tikzpicture}
\tkzInit[xmax=5,ymax=3]
3 \tkzGrid[sub,orange]
\tkzAxeXY
2 \tkzDefPoint(1,0){A}
\tkzDefPoint(4,2){B}
\tkzGetPointCoord(A){a}
1 \tkzGetPointCoord(B){b}
\tkzDefPoint(\ax,\ay){C}
0 \tkzDefPoint(\bx,\by){D}
0 1 2 3 4 5 𝑥 \tkzDrawPoints[color=red](C,D)
\end{tikzpicture}
tkz-euclide AlterMundus
25 Miscellaneous tools 129
\begin{tikzpicture}[>=latex]
\tkzDefPoint(1,4){a}
\tkzDefPoint(3,2){b}
\tkzDefPoint(1,1){c}
\tkzDrawSegment[->,red](a,b)
\tkzGetPointCoord(c){c}
\draw[color=blue,->](a) -- ([shift=(b)]\cx,\cy) ;
\draw[color=purple,->](b) -- ([shift=(b)]\cx,\cy) ;
\tkzDrawSegment[->,blue](a,c)
\tkzDrawSegment[->,purple](b,c)
\end{tikzpicture}
tkz-euclide AlterMundus
26 Using the compass 130
\tkzCompass[⟨local options⟩](⟨A,B⟩)
This macro allows you to leave a compass trace, i.e. an arc at a designated point. The center must be indicated.
Several specific options will modify the appearance of the arc as well as TikZ options such as style, color, line
thickness etc.
You can define the length of the arc with the option length or the option delta.
\begin{tikzpicture}
\tkzDefPoint(1,1){A}
\tkzDefPoint(6,1){B}
\tkzInterCC[R](A,4cm)(B,3cm)
\tkzGetPoints{C}{D}
\tkzDrawPoint(C)
\tkzCompass[color=red,length=1.5](A,C)
\tkzCompass[color=red](B,C)
\tkzDrawSegments(A,B A,C B,C)
\end{tikzpicture}
\begin{tikzpicture}
\tkzDefPoint(0,0){A}
\tkzDefPoint(5,0){B}
\tkzInterCC[R](A,4cm)(B,3cm)
\tkzGetPoints{C}{D}
\tkzDrawPoints(A,B,C)
\tkzCompass[color=red,delta=20](A,C)
\tkzCompass[color=red,delta=20](B,C)
\tkzDrawPolygon(A,B,C)
\tkzMarkAngle(A,C,B)
\end{tikzpicture}
☞� Attention the arguments are lists of two points. This saves a few lines of code.
tkz-euclide AlterMundus
26 Using the compass 131
\begin{tikzpicture}[scale=.75]
\tkzDefPoint(2,2){A} \tkzDefPoint(5,-2){B}
\tkzDefPoint(3,4){C} \tkzDrawPoints(A,B)
\tkzDrawPoint[color=red,shape=cross out](C)
\tkzCompasss[color=orange](A,B A,C B,C C,B)
𝐶 \tkzShowLine[mediator,color=red,
dashed,length = 2](A,B)
\tkzShowLine[parallel = through C,
𝑖 color=blue,length=2](A,B)
𝐴 \tkzDefLine[mediator](A,B) \tkzGetPoints{i}{j}
\tkzDefLine[parallel=through C](A,B) \tkzGetPoint{D}
\tkzDrawLines[add=.6 and .6](C,D A,C B,D)
\tkzDrawLines(i,j) \tkzDrawPoints(A,B,C,i,j,D)
𝐷 \tkzLabelPoints(A,B,C,i,j,D)
\end{tikzpicture}
𝐵
𝑗
\tkzSetUpCompass[⟨local options⟩]
\begin{tikzpicture}[scale=.75,
showbi/.style={bisector,size=2,gap=3}]
\tkzSetUpCompass[color=blue,line width=.3 pt]
\tkzDefPoints{0/1/A, 8/3/B, 3/6/C}
\tkzDrawPolygon(A,B,C)
\tkzDefLine[bisector](B,A,C) \tkzGetPoint{a}
\tkzDefLine[bisector](C,B,A) \tkzGetPoint{b}
\tkzShowLine[showbi](B,A,C)
\tkzShowLine[showbi](C,B,A)
\tkzInterLL(A,a)(B,b) \tkzGetPoint{I}
\tkzDefPointBy[projection= onto A--B](I)
\tkzGetPoint{H}
\tkzDrawCircle[radius,color=gray](I,H)
\tkzDrawSegments[color=gray!50](I,H)
\tkzDrawLines[add=0 and -.2,color=blue!50 ](A,a B,b)
\tkzShowBB
\end{tikzpicture}
tkz-euclide AlterMundus
27 The Show 132
27 The Show
These constructions concern mediatrices, perpendicular or parallel lines passing through a given point and
bisectors. The arguments are therefore lists of two or three points. Several options allow the adjustment of the
constructions. The idea of this macro comes from Yves Combe.
\begin{tikzpicture}
\tkzDefPoints{-1.5/-0.25/A,1/-0.75/B,-1.5/2/C}
\tkzDrawLine(A,B)
\tkzDefLine[parallel=through C](A,B) \tkzGetPoint{c}
\tkzShowLine[parallel=through C](A,B)
\tkzDrawLine(C,c) \tkzDrawPoints(A,B,C,c)
\end{tikzpicture}
\begin{tikzpicture}
\tkzDefPoints{0/0/A, 3/2/B, 2/2/C}
\tkzDefLine[perpendicular=through C,K=-.5](A,B) \tkzGetPoint{c}
\tkzShowLine[perpendicular=through C,K=-.5,gap=3](A,B)
\tkzDefPointBy[projection=onto A--B](c)\tkzGetPoint{h}
\tkzMarkRightAngle[fill=lightgray](A,h,C)
\tkzDrawLines[add=.5 and .5](A,B C,c)
\tkzDrawPoints(A,B,C,h,c)
\end{tikzpicture}
tkz-euclide AlterMundus
27 The Show 133
\begin{tikzpicture}[scale=1.25]
\tkzDefPoints{0/0/A, 4/2/B, 1/4/C}
\tkzDrawPolygon(A,B,C)
\tkzSetUpCompass[color=brown,line width=.1 pt]
\tkzDefLine[bisector](B,A,C) \tkzGetPoint{a}
\tkzDefLine[bisector](C,B,A) \tkzGetPoint{b}
\tkzInterLL(A,a)(B,b) \tkzGetPoint{I}
\tkzDefPointBy[projection = onto A--B](I)
\tkzGetPoint{H}
\tkzShowLine[bisector,size=2,gap=3,blue](B,A,C)
\tkzShowLine[bisector,size=2,gap=3,blue](C,B,A)
\tkzDrawCircle[radius,color=blue,%
line width=.2pt](I,H)
\tkzDrawSegments[color=red!50](I,tkzPointResult)
\tkzDrawLines[add=0 and -0.3,color=red!50](A,a B,b)
\end{tikzpicture}
\begin{tikzpicture}
\tkzDefPoint(2,2){A}
\tkzDefPoint(5,4){B}
\tkzDrawPoints(A,B)
\tkzShowLine[mediator,color=orange,length=1](A,B)
𝐵 \tkzGetPoints{i}{j}
\tkzDrawLines[add=-0.1 and -0.1](i,j)
\tkzDrawLines(A,B)
\tkzLabelPoints[below =3pt](A,B)
\end{tikzpicture}
𝐴
These constructions concern orthogonal symmetries, central symmetries, orthogonal projections and trans-
lations. Several options allow the adjustment of the constructions. The idea of this macro comes from Yves
Combe.
tkz-euclide AlterMundus
27 The Show 134
\begin{tikzpicture}[scale=.6]
𝐵 \tkzDefPoint(0,0){O} \tkzDefPoint(2,-2){A}
\tkzDefPoint(70:4){B} \tkzDrawPoints(A,O,B)
\tkzLabelPoints(A,O,B)
𝐶 \tkzDrawLine[add= 2 and 2](O,A)
\tkzDefPointBy[translation=from O to A](B)
\tkzGetPoint{C}
𝑂 \tkzDrawPoint[color=orange](C) \tkzLabelPoints(C)
𝐻 \tkzShowTransformation[translation=from O to A,%
𝐸 length=2](B)
𝐴 \tkzDrawSegments[->,color=orange](O,A B,C)
\tkzDefPointBy[reflection=over O--A](B) \tkzGetPoint{E}
\tkzDrawSegment[blue](B,E)
𝐹 \tkzDrawPoint[color=blue](E)\tkzLabelPoints(E)
\tkzShowTransformation[reflection=over O--A,size=2](B)
\tkzDefPointBy[symmetry=center O](B) \tkzGetPoint{F}
\tkzDrawSegment[color=green](B,F)
\tkzDrawPoint[color=green](F)\tkzLabelPoints(F)
\tkzShowTransformation[symmetry=center O,%
length=2](B)
\tkzDefPointBy[projection=onto O--A](C)
\tkzGetPoint{H}
\tkzDrawSegments[color=magenta](C,H)
\tkzDrawPoint[color=magenta](H)\tkzLabelPoints(H)
\tkzShowTransformation[projection=onto O--A,%
color=red,size=3,gap=-2](C)
\end{tikzpicture}
You’ll find this figure again, but without the construction features.
\begin{tikzpicture}[scale=.6]
𝐼
\tkzDefPoints{0/0/A,8/0/B,3.5/10/I}
\tkzDefMidPoint(A,B) \tkzGetPoint{O}
\tkzDefPointBy[projection=onto A--B](I)
\tkzGetPoint{J}
\tkzInterLC(I,A)(O,A) \tkzGetPoints{M'}{M}
\tkzInterLC(I,B)(O,A) \tkzGetPoints{N}{N'}
\tkzDrawSemiCircle[diameter](A,B)
\tkzDrawSegments(I,A I,B A,B B,M A,N)
\tkzMarkRightAngles(A,M,B A,N,B)
\tkzDrawSegment[style=dashed,color=blue](I,J)
𝑁 \tkzShowTransformation[projection=onto A--B,
color=red,size=3,gap=-3](I)
𝑀 \tkzDrawPoints[color=red](M,N)
\tkzDrawPoints[color=blue](O,A,B,I)
\tkzLabelPoints(O)
\tkzLabelPoints[above right](N,I)
𝐴 𝑂 \tkzLabelPoints[below left](M,A)
\end{tikzpicture}
tkz-euclide AlterMundus
28 Different points 135
28 Different points
28.1 \tkzDefEquiPoints
This macro makes it possible to obtain two points on a straight line equidistant from a given point.
\tkzDefEquiPoints[⟨local options⟩](⟨pt1,pt2⟩)
\begin{tikzpicture}
\tkzSetUpCompass[color=purple,line width=1pt]
𝐶 \tkzDefPoint(0,1){A}
\tkzDefPoint(5,2){B}
\tkzDefPoint(3,4){C}
\tkzDefEquiPoints[from=C,dist=1,show,
/tkzcompass/delta=20](A,B)
𝐻 𝐵 \tkzGetPoints{E}{H}
𝐸 \tkzDrawLines[color=blue](C,E C,H A,B)
\tkzDrawPoints[color=blue](A,B,C)
𝐴 \tkzDrawPoints[color=red](E,H)
\tkzLabelPoints(E,H)
\tkzLabelPoints[color=blue](A,B,C)
\end{tikzpicture}
tkz-euclide AlterMundus
29 Protractor 136
29 Protractor
Based on an idea by Yves Combe, the following macro allows you to draw a protractor. The operating principle
is even simpler. Just name a half-line (a ray). The protractor will be placed on the origin 𝑂, the direction of the
half-line is given by 𝐴. The angle is measured in the direct direction of the trigonometric circle.
\begin{tikzpicture}[scale=.5]
70 60 50 40 \tkzDefPoint(2,0){A}\tkzDefPoint(0,0){O}
80 30
10
0
90 20 \tkzDefShiftPoint[A](31:5){B}
\tkzDefShiftPoint[A](158:5){C}
10
0
11
20
\tkzDrawPoints(A,B,C)
01
350
150 140 13
\tkzDrawSegments[color = red,
340 330 320 310
\tkzProtractor[scale = 1](A,B)
170
\end{tikzpicture}
300
80
01
29
19
28
00 2
02
70
210 260
250 240 230 220
70 80
\begin{tikzpicture}[scale=.5]
50 60 90
30
40 10
01
10
\tkzDefPoint(2,3){A}
\tkzDefShiftPoint[A](31:5){B}
20
12
01
\tkzDefShiftPoint[A](158:5){C}
10
30
330 340 350 0
140
\tkzProtractor[return](A,C)
\end{tikzpicture}
320
01
310
90
0
30
20
0
0 21
29 02
80 20
70 2 230
0 250 260 2 24
tkz-euclide AlterMundus
30 Some examples 137
30 Some examples
The following is from the excellent site Descartes et les Mathématiques. I did not modify the text and I am only
the author of the programming of the figures.
http://debart.pagesperso-orange.fr/seconde/triangle.html
Bibliography:
– Géométrie au Bac - Tangente, special issue no. 8 - Exercise 11, page 11
– Elisabeth Busser and Gilles Cohen: 200 nouveaux problèmes du ”Monde” - POLE 2007 (200 new problems
of ”Le Monde”)
– Affaire de logique n° 364 - Le Monde February 17, 2004
Two statements were proposed, one by the magazine Tangente and the other by Le Monde.
Editor of the magazine ”Tangente” : Two similar isosceles triangles 𝐴𝑋𝐵 and 𝐵𝑌𝐶 are constructed with main
vertices 𝑋 and 𝑌, such that 𝐴, 𝐵 and 𝐶 are aligned and that these triangles are ”indirect”. Let 𝛼 be the angle at
̂ We then construct a third isosceles triangle 𝑋𝑍𝑌 similar to the first two, with main vertex 𝑍
̂ = 𝐵𝑌𝐶.
vertex 𝐴𝑋𝐵
and ”indirect”. We ask to demonstrate that point 𝑍 belongs to the straight line (𝐴𝐶).
Editor of ”Le Monde” : We construct two similar isosceles triangles 𝐴𝑋𝐵 and 𝐵𝑌𝐶 with principal vertices 𝑋 and 𝑌,
̂
̂ = 𝐵𝑌𝐶.
such that 𝐴, 𝐵 and 𝐶 are aligned and that these triangles are ”indirect”. Let 𝛼 be the angle at vertex 𝐴𝑋𝐵
The point Z of the line segment [𝐴𝐶] is equidistant from the two vertices 𝑋 and 𝑌.
At what angle does he see these two vertices?
The constructions and their associated codes are on the next two pages, but you can search before looking. The
programming respects (it seems to me ...) my reasoning in both cases.
tkz-euclide AlterMundus
30 Some examples 138
𝐶
𝑋
𝑂
𝐵
\begin{tikzpicture}[scale=.8,rotate=60]
\tkzDefPoint(6,0){X} \tkzDefPoint(3,3){Y}
\tkzDefShiftPoint[X](-110:6){A} \tkzDefShiftPoint[X](-70:6){B}
\tkzDefShiftPoint[Y](-110:4.2){A'} \tkzDefShiftPoint[Y](-70:4.2){B'}
\tkzDefPointBy[translation= from A' to B ](Y) \tkzGetPoint{Y}
\tkzDefPointBy[translation= from A' to B ](B') \tkzGetPoint{C}
\tkzInterLL(A,B)(X,Y) \tkzGetPoint{O}
\tkzDefMidPoint(X,Y) \tkzGetPoint{I}
\tkzDefPointWith[orthogonal](I,Y)
\tkzInterLL(I,tkzPointResult)(A,B) \tkzGetPoint{Z}
\tkzDefCircle[circum](X,Y,B) \tkzGetPoint{O}
\tkzDrawCircle(O,X)
\tkzDrawLines[add = 0 and 1.5](A,C) \tkzDrawLines[add = 0 and 3](X,Y)
\tkzDrawSegments(A,X B,X B,Y C,Y) \tkzDrawSegments[color=red](X,Z Y,Z)
\tkzDrawPoints(A,B,C,X,Y,O,Z)
\tkzLabelPoints(A,B,C,Z) \tkzLabelPoints[above right](X,Y,O)
\end{tikzpicture}
tkz-euclide AlterMundus
30 Some examples 139
𝐴 𝐵 𝑍 𝐶
\begin{tikzpicture}[scale=1.25]
\tkzDefPoint(0,0){A}
\tkzDefPoint(3,0){B}
\tkzDefPoint(9,0){C}
\tkzDefPoint(1.5,2){X}
\tkzDefPoint(6,4){Y}
\tkzDefCircle[circum](X,Y,B) \tkzGetPoint{O}
\tkzDefMidPoint(X,Y) \tkzGetPoint{I}
\tkzDefPointWith[orthogonal](I,Y) \tkzGetPoint{i}
\tkzDrawLines[add = 2 and 1,color=orange](I,i)
\tkzInterLL(I,i)(A,B) \tkzGetPoint{Z}
\tkzInterLC(I,i)(O,B) \tkzGetSecondPoint{M}
\tkzDefPointWith[orthogonal](B,Z) \tkzGetPoint{b}
\tkzDrawCircle(O,B)
\tkzDrawLines[add = 0 and 2,color=orange](B,b)
\tkzDrawSegments(A,X B,X B,Y C,Y A,C X,Y)
\tkzDrawSegments[color=red](X,Z Y,Z)
\tkzDrawPoints(A,B,C,X,Y,Z,M,I)
\tkzLabelPoints(A,B,C,Z)
\tkzLabelPoints[above right](X,Y,M,I)
\end{tikzpicture}
The following is again from the excellent site Descartes et les Mathématiques (Descartes and the Mathematics).
http://debart.pagesperso-orange.fr/geoplan/geometrie_triangle.html
tkz-euclide AlterMundus
30 Some examples 140
\begin{tikzpicture}[scale=.8]
𝐴 \tkzDefPoint(0,0){C}
\tkzDefPoint(7,0){B}
\tkzDefPoint(5,6){A}
\tkzDrawPolygon(A,B,C)
\tkzDefMidPoint(C,B)
𝐵′ \tkzGetPoint{I}
\tkzDrawArc(I,B)(C)
\tkzInterLC(A,C)(I,B)
𝐶′ \tkzGetSecondPoint{B'}
𝐻 \tkzInterLC(A,B)(I,B)
\tkzGetFirstPoint{C'}
\tkzInterLL(B,B')(C,C')
𝐶 𝐴′ 𝐵 \tkzGetPoint{H}
\tkzInterLL(A,H)(C,B)
\tkzGetPoint{A'}
\tkzDefCircle[circum](A,B',C')
\tkzGetPoint{O}
\tkzDrawCircle[color=red](O,A)
\tkzDrawSegments[color=orange](B,B' C,C' A,A')
\tkzMarkRightAngles(C,B',B B,C',C C,A',A)
\tkzDrawPoints(A,B,C,A',B',C',H)
\tkzLabelPoints(A,B,C,A',B',C',H)
\end{tikzpicture}
\begin{tikzpicture}[scale=.75]
𝐶
\tkzDefPoint(0,0){A}
\tkzDefPoint(8,0){B}
\tkzDefPoint(3.5,10){C}
\tkzDefMidPoint(A,B)
\tkzGetPoint{O}
\tkzDefPointBy[projection=onto A--B](C)
\tkzGetPoint{P}
\tkzInterLC(C,A)(O,A)
\tkzGetSecondPoint{M}
\tkzInterLC(C,B)(O,A)
\tkzGetFirstPoint{N}
\tkzInterLL(B,M)(A,N)
\tkzGetPoint{I}
\tkzDrawCircle[diameter](A,B)
𝑁 \tkzDrawSegments(C,A C,B A,B B,M A,N)
𝑀 \tkzMarkRightAngles[fill=brown!20](A,M,B A,N,B A,P,C)
𝐼 \tkzDrawSegment[style=dashed,color=orange](C,P)
\tkzLabelPoints(O,A,B,P)
\tkzLabelPoint[left](M){$M$}
\tkzLabelPoint[right](N){$N$}
𝐴 𝑃 𝑂 𝐵 \tkzLabelPoint[above](C){$C$}
\tkzLabelPoint[above right](I){$I$}
\tkzDrawPoints[color=red](M,N,P,I)
\tkzDrawPoints[color=brown](O,A,B,C)
\end{tikzpicture}
tkz-euclide AlterMundus
30 Some examples 141
\begin{tikzpicture}[scale=1.5]
\tkzDefPoint(0,0){O}
\tkzDefPoint(1,0){a0}
\tkzDrawSegment[blue](O,a0)
\foreach \i [count=\j] in {0,...,10}{%
\tkzDefPointWith[orthogonal normed](a\i,O)
\tkzGetPoint{a\j}
\tkzDrawPolySeg[color=blue](a\i,a\j,O)}
\end{tikzpicture}
We have a segment [𝐴𝐵] and we want to determine a point 𝐶 such that 𝐴𝐶 = 8 cm and 𝐴𝐵𝐶 is a right triangle in 𝐵.
\begin{tikzpicture}[scale=.5]
\tkzDefPoint["$A$" left](2,1){A}
\tkzDefPoint(6,4){B}
\tkzDrawSegment(A,B)
\tkzDrawPoint[color=red](A)
\tkzDrawPoint[color=red](B)
\tkzDefPointWith[orthogonal,K=-1](B,A)
\tkzDrawLine[add = .5 and .5](B,tkzPointResult)
\tkzInterLC[R](B,tkzPointResult)(A,8 cm)
\tkzGetPoints{C}{J}
\tkzDrawPoint[color=red](C)
\tkzCompass(A,C)
𝐴 \tkzMarkRightAngle(A,B,C)
\tkzDrawLine[color=gray,style=dashed](A,C)
\end{tikzpicture}
30.2.3 Archimedes
This is an ancient problem proved by the great Greek mathematician Archimedes . The figure below shows a
semicircle, with diameter 𝐴𝐵. A tangent line is drawn and touches the semicircle at 𝐵. An other tangent line at
a point, 𝐶, on the semicircle is drawn. We project the point 𝐶 on the line segment [𝐴𝐵] on a point 𝐷. The two
tangent lines intersect at the point 𝑇.
Prove that the line (𝐴𝑇) bisects (𝐶𝐷)
tkz-euclide AlterMundus
30 Some examples 142
𝐴 𝐼 𝐷 𝐵
\begin{tikzpicture}[scale=1.25]
\tkzDefPoint(0,0){A}\tkzDefPoint(6,0){D}
\tkzDefPoint(8,0){B}\tkzDefPoint(4,0){I}
\tkzDefLine[orthogonal=through D](A,D)
\tkzInterLC[R](D,tkzPointResult)(I,4 cm) \tkzGetFirstPoint{C}
\tkzDefLine[orthogonal=through C](I,C) \tkzGetPoint{c}
\tkzDefLine[orthogonal=through B](A,B) \tkzGetPoint{b}
\tkzInterLL(C,c)(B,b) \tkzGetPoint{T}
\tkzInterLL(A,T)(C,D) \tkzGetPoint{P}
\tkzDrawArc(I,B)(A)
\tkzDrawSegments(A,B A,T C,D I,C) \tkzDrawSegment[color=orange](I,C)
\tkzDrawLine[add = 1 and 0](C,T) \tkzDrawLine[add = 0 and 1](B,T)
\tkzMarkRightAngle(I,C,T)
\tkzDrawPoints(A,B,I,D,C,T)
\tkzLabelPoints(A,B,I,D) \tkzLabelPoints[above right](C,T)
\tkzMarkSegment[pos=.25,mark=s|](C,D) \tkzMarkSegment[pos=.75,mark=s|](C,D)
\end{tikzpicture}
𝐵
𝐶
𝑀
𝑂
𝐴′
tkz-euclide AlterMundus
30 Some examples 143
\begin{tikzpicture}[scale=1.25]
\tkzDefPoint(0,0){O}
\tkzDefPoint(2.5,0){N}
\tkzDefPoint(-4.2,0.5){M}
\tkzDefPointBy[rotation=center O angle 30](N)
\tkzGetPoint{B}
\tkzDefPointBy[rotation=center O angle -50](N)
\tkzGetPoint{A}
\tkzInterLC(M,B)(O,N) \tkzGetFirstPoint{C}
\tkzInterLC(M,A)(O,N) \tkzGetSecondPoint{A'}
\tkzMarkAngle[mkpos=.2, size=0.5](A,C,B)
\tkzMarkAngle[mkpos=.2, size=0.5](A,M,C)
\tkzDrawSegments(A,C M,A M,B)
\tkzDrawCircle(O,N)
\tkzLabelCircle[above left](O,N)(120){$\mathcal{C}$}
\tkzMarkAngle[mkpos=.2, size=1.2](C,A,M)
\tkzDrawPoints(O, A, B, M, B, C)
\tkzLabelPoints[right](O,A,B)
\tkzLabelPoints[above left](M,C)
\tkzLabelPoint[below left](A'){$A'$}
\end{tikzpicture}
A B
tkz-euclide AlterMundus
30 Some examples 144
\begin{tikzpicture}[scale=2]
\tkzDefPoint[label=below left:A](0,0){A}
\tkzDefPoint[label=below right:B](6,0){B}
\tkzDefTriangle[equilateral](A,B) \tkzGetPoint{C}
\tkzMarkSegments[mark=|](A,B A,C B,C)
\tkzDefBarycentricPoint(A=1,B=2) \tkzGetPoint{C'}
\tkzDefBarycentricPoint(A=2,C=1) \tkzGetPoint{B'}
\tkzDefBarycentricPoint(C=2,B=1) \tkzGetPoint{A'}
\tkzInterLL(A,A')(C,C') \tkzGetPoint{J}
\tkzInterLL(C,C')(B,B') \tkzGetPoint{K}
\tkzInterLL(B,B')(A,A') \tkzGetPoint{L}
\tkzLabelPoint[above](C){C}
\tkzDrawPolygon(A,B,C) \tkzDrawSegments(A,J B,L C,K)
\tkzMarkAngles[size=1 cm](J,A,C K,C,B L,B,A)
\tkzMarkAngles[thick,size=1 cm](A,C,J C,B,K B,A,L)
\tkzMarkAngles[opacity=.5](A,C,J C,B,K B,A,L)
\tkzFillAngles[fill= orange,size=1 cm,opacity=.3](J,A,C K,C,B L,B,A)
\tkzFillAngles[fill=orange, opacity=.3,thick,size=1,](A,C,J C,B,K B,A,L)
\tkzFillAngles[fill=green, size=1, opacity=.5](A,C,J C,B,K B,A,L)
\tkzFillPolygon[color=yellow, opacity=.2](J,A,C)
\tkzFillPolygon[color=yellow, opacity=.2](K,B,C)
\tkzFillPolygon[color=yellow, opacity=.2](L,A,B)
\tkzDrawSegments[line width=3pt,color=cyan,opacity=0.4](A,J C,K B,L)
\tkzDrawSegments[line width=3pt,color=red,opacity=0.4](A,L B,K C,J)
\tkzMarkSegments[mark=o](J,K K,L L,J)
\tkzLabelPoint[right](J){J}
\tkzLabelPoint[below](K){K}
\tkzLabelPoint[above left](L){L}
\end{tikzpicture}
𝐴𝐶 𝐵𝐷
Prove that = .
𝐶𝐸 𝐷𝐹
Another interesting example from John, you can see how to use some extra options like decoration and postaction
from Tik Z with tkz-euclide.
𝐴 𝐵
𝐶 𝐺 𝐷
𝐸 𝐹
tkz-euclide AlterMundus
30 Some examples 145
\begin{tikzpicture}[scale=2,decoration={markings,
mark=at position 3cm with {\arrow[scale=2]{>}}}]
\tkzDefPoints{0/0/E, 6/0/F, 0/1.8/P, 6/1.8/Q, 0/3/R, 6/3/S}
\tkzDrawLines[postaction={decorate}](E,F P,Q R,S)
\tkzDefPoints{3.5/3/A, 5/3/B}
\tkzDrawSegments(E,A F,B)
\tkzInterLL(E,A)(P,Q) \tkzGetPoint{C}
\tkzInterLL(B,F)(P,Q) \tkzGetPoint{D}
\tkzLabelPoints[above right](A,B)
\tkzLabelPoints[below](E,F)
\tkzLabelPoints[above left](C)
\tkzDrawSegments[style=dashed](A,F)
\tkzInterLL(A,F)(P,Q) \tkzGetPoint{G}
\tkzLabelPoints[above right](D,G)
\tkzDrawSegments[color=teal, line width=3pt, opacity=0.4](A,C A,G)
\tkzDrawSegments[color=magenta, line width=3pt, opacity=0.4](C,E G,F)
\tkzDrawSegments[color=teal, line width=3pt, opacity=0.4](B,D)
\tkzDrawSegments[color=magenta, line width=3pt, opacity=0.4](D,F)
\end{tikzpicture}
𝐵𝐶 𝐴𝐵
Prove that = (Angle Bisector).
𝐶𝐷 𝐴𝐷
𝑃
2
1
𝐵 𝐶 𝐷
tkz-euclide AlterMundus
30 Some examples 146
\begin{tikzpicture}[scale=2]
\tkzDefPoints{0/0/B, 5/0/D} \tkzDefPoint(70:3){A}
\tkzDrawPolygon(B,D,A)
\tkzDefLine[bisector](B,A,D) \tkzGetPoint{a}
\tkzInterLL(A,a)(B,D) \tkzGetPoint{C}
\tkzDefLine[parallel=through B](A,C) \tkzGetPoint{b}
\tkzInterLL(A,D)(B,b) \tkzGetPoint{P}
\begin{scope}[decoration={markings,
mark=at position .5 with {\arrow[scale=2]{>}}}]
\tkzDrawSegments[postaction={decorate},dashed](C,A P,B)
\end{scope}
\tkzDrawSegment(A,C) \tkzDrawSegment[style=dashed](A,P)
\tkzLabelPoints[below](B,C,D) \tkzLabelPoints[above](A,P)
\tkzDrawSegments[color=magenta, line width=3pt, opacity=0.4](B,C P,A)
\tkzDrawSegments[color=teal, line width=3pt, opacity=0.4](C,D A,D)
\tkzDrawSegments[color=magenta, line width=3pt, opacity=0.4](A,B)
\tkzMarkAngles[size=3mm](B,A,C C,A,D)
\tkzMarkAngles[size=3mm](B,A,C A,B,P)
\tkzMarkAngles[size=3mm](B,P,A C,A,D)
\tkzMarkAngles[size=3mm](B,A,C A,B,P B,P,A C,A,D)
\tkzFillAngles[fill=green, opacity=0.5](B,A,C A,B,P)
\tkzFillAngles[fill=yellow, opacity=0.3](B,P,A C,A,D)
\tkzFillAngles[fill=green, opacity=0.6](B,A,C A,B,P B,P,A C,A,D)
\tkzLabelAngle[pos=1](B,A,C){1} \tkzLabelAngle[pos=1](C,A,D){2}
\tkzLabelAngle[pos=1](A,B,P){3} \tkzLabelAngle[pos=1](B,P,A){4}
\tkzMarkSegments[mark=|](A,B A,P)
\end{tikzpicture}
𝐴 𝐵
𝐶 𝐷 𝐸
tkz-euclide AlterMundus
30 Some examples 147
\begin{tikzpicture}[scale=2]
\tkzDefPoint(0,3){A} \tkzDefPoint(6,3){E} \tkzDefPoint(1.35,3){B}
\tkzDefPoint(4.65,3){D} \tkzDefPoint(1,1){G} \tkzDefPoint(5,5){F}
\tkzDefMidPoint(A,E) \tkzGetPoint{C}
\tkzFillPolygon[yellow, opacity=0.4](B,G,C)
\tkzFillPolygon[yellow, opacity=0.4](D,F,C)
\tkzFillPolygon[blue, opacity=0.3](A,B,G)
\tkzFillPolygon[blue, opacity=0.3](E,D,F)
\tkzMarkAngles[size=0.5 cm](B,G,A D,F,E)
\tkzMarkAngles[size=0.5 cm](B,C,G D,C,F)
\tkzMarkAngles[size=0.5 cm](G,B,C F,D,C)
\tkzMarkAngles[size=0.5 cm](A,B,G E,D,F)
\tkzFillAngles[size=0.5 cm,fill=green](B,G,A D,F,E)
\tkzFillAngles[size=0.5 cm,fill=orange](B,C,G D,C,F)
\tkzFillAngles[size=0.5 cm,fill=yellow](G,B,C F,D,C)
\tkzFillAngles[size=0.5 cm,fill=red](A,B,G E,D,F)
\tkzMarkSegments[mark=|](B,C D,C) \tkzMarkSegments[mark=s||](G,C F,C)
\tkzMarkSegments[mark=o](A,G E,F) \tkzMarkSegments[mark=s](B,G D,F)
\tkzDrawSegment[color=red](A,E)
\tkzDrawSegment[color=blue](F,G)
\tkzDrawSegments(A,G G,B E,F F,D)
\tkzLabelPoints[below](C,D,E,G) \tkzLabelPoints[above](A,B,F)
\end{tikzpicture}
𝐷 𝐶 𝐹
𝐴 𝐵
tkz-euclide AlterMundus
30 Some examples 148
\begin{tikzpicture}[scale=3]
\tkzDefPoints{0/0/A,2/0/B}
\tkzDefSquare(A,B) \tkzGetPoints{C}{D}
\tkzDefPointBy[rotation=center D angle 45](C)\tkzGetPoint{G}
\tkzDefSquare(G,D)\tkzGetPoints{E}{F}
\tkzInterLL(B,C)(E,F)\tkzGetPoint{H}
\tkzFillPolygon[gray!10](D,E,H,C,D)
\tkzDrawPolygon(A,...,D)\tkzDrawPolygon(D,...,G)
\tkzDrawSegment(B,E)
\tkzMarkSegments[mark=|,size=3pt,color=gray](A,B B,C C,D D,A E,F F,G G,D D,E)
\tkzMarkSegments[mark=||,size=3pt,color=gray](B,E E,H)
\tkzLabelPoints[left](A,D)
\tkzLabelPoints[right](B,C,F,H)
\tkzLabelPoints[above](G)\tkzLabelPoints[below](E)
\tkzMarkRightAngles(D,A,B D,G,F)
\end{tikzpicture}
𝐻 𝑃 𝐺
𝑈 𝐾
𝐸
𝐹
𝐷 𝑁
𝐶
𝑀 𝑂 𝛼
𝐿 𝑅
𝐴 𝑆 𝐵
tkz-euclide AlterMundus
30 Some examples 149
\begin{tikzpicture}[pol/.style={fill=brown!40,opacity=.5},
seg/.style={tkzdotted,color=gray},
hidden pt/.style={fill=gray!40},
mra/.style={color=gray!70,tkzdotted,/tkzrightangle/size=.2},
scale=3]
\tkzSetUpPoint[size=2]
\tkzDefPoints{0/0/A,2.5/0/B,1.33/0.75/D,0/2.5/E,2.5/2.5/F}
\tkzDefLine[parallel=through D](A,B) \tkzGetPoint{I1}
\tkzDefLine[parallel=through B](A,D) \tkzGetPoint{I2}
\tkzInterLL(D,I1)(B,I2) \tkzGetPoint{C}
\tkzDefLine[parallel=through E](A,D) \tkzGetPoint{I3}
\tkzDefLine[parallel=through D](A,E) \tkzGetPoint{I4}
\tkzInterLL(E,I3)(D,I4) \tkzGetPoint{H}
\tkzDefLine[parallel=through F](E,H) \tkzGetPoint{I5}
\tkzDefLine[parallel=through H](E,F) \tkzGetPoint{I6}
\tkzInterLL(F,I5)(H,I6) \tkzGetPoint{G}
\tkzDefMidPoint(G,H) \tkzGetPoint{P}
\tkzDefMidPoint(G,C) \tkzGetPoint{Q}
\tkzDefMidPoint(B,C) \tkzGetPoint{R}
\tkzDefMidPoint(A,B) \tkzGetPoint{S}
\tkzDefMidPoint(A,E) \tkzGetPoint{T}
\tkzDefMidPoint(E,H) \tkzGetPoint{U}
\tkzDefMidPoint(A,D) \tkzGetPoint{M}
\tkzDefMidPoint(D,C) \tkzGetPoint{N}
\tkzInterLL(B,D)(S,R) \tkzGetPoint{L}
\tkzInterLL(H,F)(U,P) \tkzGetPoint{K}
\tkzDefLine[parallel=through K](D,H) \tkzGetPoint{I7}
\tkzInterLL(K,I7)(B,D) \tkzGetPoint{O}
\tkzFillPolygon[pol](P,Q,R,S,T,U)
\tkzDrawSegments[seg](K,O K,L P,Q R,S T,U
C,D H,D A,D M,N B,D)
\tkzDrawSegments(E,H B,C G,F G,H G,C Q,R S,T U,P H,F)
\tkzDrawPolygon(A,B,F,E)
\tkzDrawPoints(A,B,C,E,F,G,H,P,Q,R,S,T,U,K)
\tkzDrawPoints[hidden pt](M,N,O,D)
\tkzMarkRightAngle[mra](L,O,K)
\tkzMarkSegments[mark=|,size=1pt,thick,color=gray](A,S B,S B,R C,R
Q,C Q,G G,P H,P
E,U H,U E,T A,T)
\tkzLabelAngle[pos=.3](K,L,O){$\alpha$}
\tkzLabelPoints[below](O,A,S,B)
\tkzLabelPoints[above](H,P,G)
\tkzLabelPoints[left](T,E)
\tkzLabelPoints[right](C,Q)
\tkzLabelPoints[above left](U,D,M)
\tkzLabelPoints[above right](L,N)
\tkzLabelPoints[below right](F,R)
\tkzLabelPoints[below left](K)
\end{tikzpicture}
tkz-euclide AlterMundus
30 Some examples 150
tkz-euclide AlterMundus
30 Some examples 151
\begin{tikzpicture}[scale=1.5]
\tkzDefPoints{0/0/A,8/0/B,0/4/a,8/4/b,8/8/c}
\tkzDefTriangle[equilateral](A,B) \tkzGetPoint{C}
\tkzDrawPolygon(A,B,C)
\tkzDefSquare(A,B) \tkzGetPoints{D}{E}
\tkzClipBB
\tkzDefMidPoint(A,B) \tkzGetPoint{M}
\tkzDefMidPoint(B,C) \tkzGetPoint{N}
\tkzDefMidPoint(A,C) \tkzGetPoint{P}
\tkzDrawSemiCircle[gray,dashed](M,B)
\tkzDrawSemiCircle[gray,dashed](A,M)
\tkzDrawSemiCircle[gray,dashed](A,B)
\tkzDrawCircle[gray,dashed](B,A)
\tkzInterLL(A,N)(M,a) \tkzGetPoint{Ia}
\tkzDefPointBy[projection = onto A--B](Ia)
\tkzGetPoint{ha}
\tkzDrawCircle[gray](Ia,ha)
\tkzInterLL(B,P)(M,b) \tkzGetPoint{Ib}
\tkzDefPointBy[projection = onto A--B](Ib)
\tkzGetPoint{hb}
\tkzDrawCircle[gray](Ib,hb)
\tkzInterLL(A,c)(M,C) \tkzGetPoint{Ic}
\tkzDefPointBy[projection = onto A--C](Ic)
\tkzGetPoint{hc}
\tkzDrawCircle[gray](Ic,hc)
\tkzInterLL(A,Ia)(B,Ib) \tkzGetPoint{G}
\tkzDrawCircle[gray,dashed](G,Ia)
\tkzDrawPolySeg(A,E,D,B)
\tkzDrawPoints(A,B,C)
\tkzDrawPoints(G,Ia,Ib,Ic)
\tkzDrawSegments[gray,dashed](C,M A,N B,P M,a M,b A,a a,b b,B A,D Ia,ha)
\end{tikzpicture}
tkz-euclide AlterMundus
30 Some examples 152
𝐵𝑐
𝐴𝑐
𝐽𝑎
𝑋𝑏 𝐶 ′
𝐶
𝐽𝑏 𝐾 𝑂
𝑁 𝑆𝑝 𝑄
𝐵𝑎 𝑍𝑏 𝐴 𝐵 𝐵 ′ 𝑍𝑎
𝑋𝑐
𝐽𝑐
𝐶𝑎
tkz-euclide AlterMundus
30 Some examples 153
\begin{tikzpicture}[scale=.5]
\tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
\tkzDefTriangleCenter[euler](A,B,C) \tkzGetPoint{N}
\tkzDefTriangleCenter[circum](A,B,C) \tkzGetPoint{O}
\tkzDefTriangleCenter[lemoine](A,B,C) \tkzGetPoint{K}
\tkzDefTriangleCenter[spieker](A,B,C) \tkzGetPoint{Sp}
\tkzDefExCircle(A,B,C) \tkzGetPoint{Jb}
\tkzDefExCircle(C,A,B) \tkzGetPoint{Ja}
\tkzDefExCircle(B,C,A) \tkzGetPoint{Jc}
\tkzDefPointBy[projection=onto B--C ](Jc) \tkzGetPoint{Xc}
\tkzDefPointBy[projection=onto B--C ](Jb) \tkzGetPoint{Xb}
\tkzDefPointBy[projection=onto A--B ](Ja) \tkzGetPoint{Za}
\tkzDefPointBy[projection=onto A--B ](Jb) \tkzGetPoint{Zb}
\tkzDefLine[parallel=through Xc](A,C) \tkzGetPoint{X'c}
\tkzDefLine[parallel=through Xb](A,B) \tkzGetPoint{X'b}
\tkzDefLine[parallel=through Za](C,A) \tkzGetPoint{Z'a}
\tkzDefLine[parallel=through Zb](C,B) \tkzGetPoint{Z'b}
\tkzInterLL(Xc,X'c)(A,B) \tkzGetPoint{B'}
\tkzInterLL(Xb,X'b)(A,C) \tkzGetPoint{C'}
\tkzInterLL(Za,Z'a)(C,B) \tkzGetPoint{A''}
\tkzInterLL(Zb,Z'b)(C,A) \tkzGetPoint{B''}
\tkzDefPointBy[reflection= over Jc--Jb](B') \tkzGetPoint{Ca}
\tkzDefPointBy[reflection= over Jc--Jb](C') \tkzGetPoint{Ba}
\tkzDefPointBy[reflection= over Ja--Jb](A'')\tkzGetPoint{Bc}
\tkzDefPointBy[reflection= over Ja--Jb](B'')\tkzGetPoint{Ac}
\tkzDefCircle[circum](Ac,Ca,Ba) \tkzGetPoint{Q}
\tkzDrawCircle[circum](Ac,Ca,Ba)
\tkzDefPointWith[linear,K=1.1](Q,Ac) \tkzGetPoint{nAc}
\tkzClipCircle[through](Q,nAc)
\tkzDrawLines[add=1.5 and 1.5,dashed](A,B B,C A,C)
\tkzDrawPolygon[color=blue](A,B,C)
\tkzDrawPolygon[dashed,color=blue](Ja,Jb,Jc)
\tkzDrawCircles[ex](A,B,C B,C,A C,A,B)
\tkzDrawLines[add=0 and 0,dashed](Ca,Bc B,Za A,Ba B',C')
\tkzDrawLine[add=1 and 1,dashed](Xb,Xc)
\tkzDrawLine[add=7 and 3,blue](O,K)
\tkzDrawLine[add=8 and 15,red](N,Sp)
\tkzDrawLines[add=10 and 10](K,O N,Sp)
\tkzDrawSegments(Ba,Ca Bc,Ac)
\tkzDrawPoints(A,B,C,N,Ja,Jb,Jc,Xb,Xc,B',C',Za,Zb,Ba,Ca,Bc,Ac,Q,Sp,K,O)
\tkzLabelPoints(A,B,C,N,Ja,Jb,Jc,Xb,Xc,B',C',Za,Zb,Ba,Ca,Bc,Ac,Q,Sp)
\tkzLabelPoints[above](K,O)
\end{tikzpicture}
tkz-euclide AlterMundus
31 Customization 154
31 Customization
It is a macro that allows you to define the style of all the lines.
\tkzSetUpLine[⟨local options⟩]
\begin{tikzpicture}
𝐴
\tkzSetUpLine[color=blue,line width=1pt]
\begin{scope}[rotate=-90]
\tkzDefPoint(10,6){C}
\tkzDefPoint( 0,6){A}
\tkzDefPoint(10,0){B}
\tkzDefPointBy[projection = onto B--A](C)
\tkzGetPoint{H}
\tkzDrawPolygon(A,B,C)
\tkzMarkRightAngle[size=.4,fill=blue!20](B,C,A)
\tkzMarkRightAngle[size=.4,fill=red!20](B,H,C)
\tkzDrawSegment[color=red](C,H)
\end{scope}
\tkzLabelSegment[below](C,B){$a$}
𝑐 𝑏 \tkzLabelSegment[right](A,C){$b$}
\tkzLabelSegment[left](A,B){$c$}
\tkzLabelSegment[color=red](C,H){$h$}
\tkzDrawPoints(A,B,C)
\tkzLabelPoints[above left](H)
\tkzLabelPoints(B,C)
𝐻
\tkzLabelPoints[above](A)
\end{tikzpicture}
𝐵 𝑎 𝐶
tkz-euclide AlterMundus
31 Customization 155
\begin{tikzpicture}[scale=.6]
\tkzDefPoint(1,0){A} \tkzDefPoint(4,0){B}
𝐼 \tkzDefPoint(1,1){C} \tkzDefPoint(5,1){D}
\tkzDefPoint(1,2){E} \tkzDefPoint(6,2){F}
\tkzDefPoint(0,4){A'}\tkzDefPoint(3,4){B'}
\tkzCalcLength[cm](C,D) \tkzGetLength{rCD}
\tkzCalcLength[cm](E,F) \tkzGetLength{rEF}
\tkzInterCC[R](A',\rCD cm)(B',\rEF cm)
\tkzGetPoints{I}{J}
𝐴′ 𝐵′
\tkzSetUpLine[style=dashed,color=gray]
\tkzDrawLine(A',B')
\tkzCompass(A',B')
𝐸 𝐹
\tkzDrawSegments(A,B C,D E,F)
𝐶 𝐷 \tkzDrawCircle[R](A',\rCD cm)
\tkzDrawCircle[R](B',\rEF cm)
𝐽 𝐴 𝐵
\tkzSetUpLine[color=red]
\tkzDrawSegments(A',I B',I)
\tkzDrawPoints(A,B,C,D,E,F,A',B',I,J)
\tkzLabelPoints(A,B,C,D,E,F,A',B',I,J)
\end{tikzpicture}
\begin{tikzpicture}
\tkzSetUpLine[add=.5 and .5]
\tkzDefPoints{0/0/A,4/0/B,1/3/C}
\tkzDrawLines(A,B B,C A,C)
\end{tikzpicture}
\tkzSetUpPoint[⟨local options⟩]
tkz-euclide AlterMundus
31 Customization 156
\begin{tikzpicture}
\tkzSetUpPoint[shape = cross out,color=blue]
\tkzInit[xmax=100,xstep=20,ymax=.5]
\tkzDefPoint(20,1){A}
\tkzDefPoint(80,0){B}
\tkzDrawLine(A,B)
\tkzDrawPoints(A,B)
\end{tikzpicture}
\begin{tikzpicture}
𝐵 \tkzInit[ymin=-0.5,ymax=3,xmin=-0.5,xmax=7]
\tkzDefPoint(0,0){A}
\tkzDefPoint(02.25,04.25){B}
\tkzDefPoint(4,0){C}
\tkzDefPoint(3,2){D}
\tkzDrawSegments(A,B A,C A,D)
𝐷 {\tkzSetUpPoint[shape=cross out,
fill= teal!50,
size=4,color=teal]
\tkzDrawPoints(A,B)}
\tkzSetUpPoint[fill= teal!50,size=4,
𝐴 𝐶 color=teal]
\tkzDrawPoints(C,D)
\tkzLabelPoints(A,B,C,D)
\end{tikzpicture}
\tkzSetUpCompass[⟨local options⟩]
tkz-euclide AlterMundus
31 Customization 157
\begin{tikzpicture}[scale=0.75]
𝐶
\tkzDefPoints{0/1/A, 8/3/B, 3/6/C}
\tkzDrawPolygon(A,B,C)
\tkzSetUpCompass[color=red,line width=.2 pt]
\tkzDefLine[bisector](A,C,B) \tkzGetPoint{c}
\tkzDefLine[bisector](B,A,C) \tkzGetPoint{a}
\tkzDefLine[bisector](C,B,A) \tkzGetPoint{b}
\tkzShowLine[bisector,size=2,gap=3](A,C,B)
𝐵 \tkzShowLine[bisector,size=2,gap=3](B,A,C)
\tkzShowLine[bisector,size=1,gap=2](C,B,A)
\tkzDrawLines[add=0 and 0 ](B,b)
\tkzDrawLines[add=0 and -.4 ](A,a C,c)
𝐴
\tkzLabelPoints(A,B) \tkzLabelPoints[above](C)
\end{tikzpicture}
\begin{tikzpicture}[scale=1,rotate=90]
𝐵 \tkzDefPoints{0/1/A, 8/3/B, 3/6/C}
\tkzDrawPolygon(A,B,C)
\tkzSetUpCompass[color=brown,
line width=.3 pt,style=tkzdotted]
\tkzDefLine[bisector](B,A,C) \tkzGetPoint{a}
\tkzDefLine[bisector](C,B,A) \tkzGetPoint{b}
\tkzInterLL(A,a)(B,b) \tkzGetPoint{I}
\tkzDefPointBy[projection= onto A--B](I)
\tkzGetPoint{H}
\tkzMarkRightAngle(I,H,A)
\tkzDrawCircle[radius,color=red](I,H)
\tkzDrawSegments[color=red](I,H)
𝐶 \tkzDrawLines[add=0 and -.5,,color=red](A,a)
\tkzDrawLines[add=0 and 0,color=red](B,b)
\tkzShowLine[bisector,size=2,gap=3](B,A,C)
\tkzShowLine[bisector,size=1,gap=3](C,B,A)
\tkzLabelPoints(A,B)\tkzLabelPoints[left](C)
\end{tikzpicture}
You can set the normal style with tkzSetUpPoint and your own style
\tkzSetUpPoint[color=blue!50!white, fill=gray!20!red!50!white]
𝐴 \tikzset{/tikz/mystyle/.style={color=blue!20!black,fill=blue!20}}
\begin{tikzpicture}
𝑂 \tkzDefPoint(0,0){O}
\tkzDefPoint(0,1){A}
\tkzDrawPoints(O) % general style
\tkzDrawPoints[mystyle,size=4](A) % my style
\tkzLabelPoints(O,A)
\end{tikzpicture}
tkz-euclide AlterMundus
32 Summary of tkz-base 158
32 Summary of tkz-base
First of all, you don’t have to deal with Tik Z the size of the bounding box. Early versions of tkz-euclide did not
control the size of the bounding box, now the size of the bounding box is limited.
However, it is sometimes necessary to control the size of what will be displayed. To do this, you need to have
prepared the bounding box you are going to work in, this is the role of tkz-base and its main macro \tkzInit. It
is recommended to leave the graphic unit equal to 1 cm. For some drawings, it is interesting to fix the extreme
values (xmin,xmax,ymin and ymax) and to ”clip” the definition rectangle in order to control the size of the figure
as well as possible.
The two macros in tkz-base that are useful for tkz-euclide are:
– \tkzInit
– \tkzClip
To this, I added macros directly linked to the bounding box. You can now view it, backup it, restore it (see the
documentation of tkz-base section Bounding Box).
The rectangle around the figure shows you the bounding box.
\begin{tikzpicture}
\tkzInit[xmin=-1,xmax=3,ymin=-1, ymax=3]
\tkzGrid
\tkzShowBB[red,line width=2pt]
\end{tikzpicture}
32.3 \tkzClip
The role of this macro is to ”clip” the initial rectangle so that only the paths contained in this rectangle are drawn.
𝑦 \begin{tikzpicture}
\tkzInit[xmax=4, ymax=3]
3 \tkzAxeXY
\tkzGrid
2 \tkzClip
\draw[red] (-1,-1)--(5,2);
\end{tikzpicture}
1
0
0 1 2 3 4 𝑥
It is possible to add a bit of space
tkz-euclide AlterMundus
32 Summary of tkz-base 159
\tkzClip[space=1]
This option allows you to add some space around the ”clipped” rectangle.
\begin{tikzpicture}
𝑦 \tkzInit[xmax=4, ymax=3]
\tkzAxeXY
3
\tkzGrid
\tkzClip[space=1]
2 \draw[red] (-1,-1)--(5,2);
\end{tikzpicture}
0
0 1 2 3 4 𝑥
The dimensions of the ”clipped” rectangle are xmin-1, ymin-1, xmax+1 and ymax+1.
tkz-euclide AlterMundus
33 FAQ 160
33 FAQ
For the moment, I’m basing myself on my own, because having changed syntax several times, I’ve made a number
of mistakes. This section is going to be expanded.
– \tkzDrawPoint(A,B) when you need \tkzDrawPoints.
– \tkzGetPoint(A) When defining an object, use braces and not brackets, so write: \tkzGetPoint{A}.
– \tkzGetPoint{A} in place of \tkzGetFirstPoint{A}. When a macro gives two points as results, ei-
ther we retrieve these points using \tkzGetPoints{A}{B}, or we retrieve only one of the two points,
using \tkzGetFirstPoint{A} or \tkzGetSecondPoint{A}. These two points can be used with the ref-
erence tkzFirstPointResult or tkzSecondPointResult. It is possible that a third point is given as
tkzPointResult.
– \tkzDrawSegment(A,B A,C) when you need \tkzDrawSegments. It is possible to use only the versions
with an ”s” but it is less efficient!
– Mixing options and arguments; all macros that use a circle need to know the radius of the circle. If the radius
is given by a measure then the option includes a R.
– If an error occurs in a calculation when passing parameters, then it is better to make these calculations
before calling the macro.
– Do not mix the syntax of pgfmath and xfp. I’ve often chosen xfp but if you prefer pgfmath then do your
calculations before passing parameters.
– Use of \tkzClip: In order to get accurate results, I avoided using normalized vectors. The advantage of
normalization is to control the dimension of the manipulated objects, the disadvantage is that with TeX,
this implies inaccuracies. These inaccuracies are often small, in the order of a thousandth, but they lead to
disasters if the drawing is enlarged. Not normalizing implies that some points are far away from the working
area and \tkzClip allows you to reduce the size of the drawing.
– An error occurs if you use the macro \tkzDrawAngle with too small an angle. The error is produced by the
decoration library when you want to place a mark on an arc. Even if the mark is absent, the error is still
present. It is possible to get around this difficulty with the option mkpos=.2 for example, which will place
the mark before the arc. Another possibility is to use the macro \tkzFillAngle.
tkz-euclide AlterMundus
Index
\add, 57
\ang, 104
\Ax, 122
\Ay, 122
\coordinate, 18
\dAB, 120
\Delta, 56
\draw (A)--(B);, 57
Environment
scope, 20
\fpeval, 92
\len, 121
\newdimen, 93
Operating System
Windows, 14
Package
fp, 14, 16
numprint, 14
pgfmath, 19, 154
tikz 3.00, 14
tkz-base, 14, 17, 22, 152
tkz-euclide, 14, 152
xfp, 14, 16, 18, 19, 92, 120, 154
\pgflinewidth, 29, 30
\pgfmathsetmacro, 92
\px, 122
\py, 122
\slope, 107
standalone, 12
TeX Distributions
MiKTeX, 14
TeXLive, 14
TikZ Library
angles, 16
babel, 8
decoration, 154
quotes, 16
\tkzAngleResult, 104, 105, 108
\tkzCalcLength, 120
\tkzCalcLength: arguments
(pt1,pt2){name of macro}, 120
\tkzCalcLength: options
cm, 120
\tkzCalcLength[⟨local options⟩](⟨pt1,pt2⟩){⟨name of macro⟩}, 120
\tkzCentroid, 23
\tkzClip, 8, 16, 152–154
\tkzClipBB, 16
\tkzClipCircle, 79, 84, 88
\tkzClipCircle: arguments
(⟨A,B⟩) or (⟨A,r⟩), 88
Index 162
\tkzClipCircle: options
R, 88
radius, 88
\tkzClipCircle[⟨local options⟩](⟨A,B⟩) or (⟨A,r⟩), 88
\tkzClipPolygon, 76
\tkzClipPolygon: arguments
(⟨pt1,pt2⟩), 76
\tkzClipPolygon[⟨local options⟩](⟨points list⟩), 76
\tkzClipSector(O,A)(B), 113
\tkzClipSector[R](O,2 cm)(30,90), 113
\tkzClipSector[rotate](O,A)(90), 113
\tkzClipSector, 113, 114
\tkzClipSector: options
R, 113
rotate, 113
towards, 113
\tkzClipSector[⟨local options⟩](⟨O,…⟩)(⟨…⟩), 113
\tkzcmtopt, 121
\tkzcmtopt: arguments
(nombre){name of macro}, 121
\tkzcmtopt(⟨nombre⟩){⟨name of macro⟩}, 121
\tkzCompass, 117, 124
\tkzCompass: options
delta, 124
length, 124
\tkzCompasss, 124
\tkzCompasss: options
delta, 124
length, 124
\tkzCompasss[⟨local options⟩](⟨pt1,pt2 pt3,pt4,…⟩), 124
\tkzCompass[⟨local options⟩](⟨A,B⟩), 124
\tkzDefBarycentricPoint, 23
\tkzDefBarycentricPoint: arguments
(pt1=𝛼1 ,pt2=𝛼2 ,…), 23
\tkzDefBarycentricPoint(⟨pt1=𝛼1 ,pt2=𝛼2 ,…⟩), 23
\tkzDefCircle[radius](A,B), 122
\tkzDefCircle, 79
\tkzDefCircle: arguments
(⟨pt1,pt2⟩) or (⟨pt1,pt2,pt3⟩), 79
\tkzDefCircle: options
K, 79
apollonius, 79
circum, 79
diameter, 79
euler or nine, 79
ex, 79
in, 79
orthogonal through, 79
orthogonal, 79
spieker, 79
through, 79
\tkzDefCircle[⟨local options⟩](⟨A,B⟩) or (⟨A,B,C⟩), 79
\tkzDefEquiPoints, 129
\tkzDefEquiPoints: arguments
(pt1,pt2), 129
\tkzDefEquiPoints: options
/compass/delta, 129
dist, 129
from=pt, 129
show, 129
\tkzDefEquiPoints[⟨local options⟩](⟨pt1,pt2⟩), 129
tkz-euclide AlterMundus
Index 163
\tkzDefGoldRectangle, 74
\tkzDefGoldRectangle: arguments
(⟨pt1,pt2⟩), 74
\tkzDefGoldRectangle(⟨point,point⟩), 74
\tkzDefLine, 49
\tkzDefLine: arguments
(⟨pt1,pt2,pt3⟩), 49
(⟨pt1,pt2⟩), 49
\tkzDefLine: options
K, 49
bisector out, 49
bisector, 49
mediator, 49
normed, 49
orthogonal=through…, 49
parallel=through…, 49
perpendicular=through…, 49
\tkzDefLine[⟨local options⟩](⟨pt1,pt2⟩) or (⟨pt1,pt2,pt3⟩), 49
\tkzDefMidPoint, 22
\tkzDefMidPoint: arguments
(pt1,pt2), 22
\tkzDefMidPoint(⟨pt1,pt2⟩), 22
\tkzDefParallelogram, 72
\tkzDefParallelogram: arguments
(⟨pt1,pt2,pt3⟩), 72
\tkzDefParallelogram(⟨pt1,pt2,pt3⟩), 72
\tkzDefPoint, 18, 19, 22, 90
\tkzDefPoint: arguments
(𝛼:𝑑), 18
(𝑥, 𝑦), 18
{name}, 18
\tkzDefPoint: options
label, 19
shift, 19
\tkzDefPointBy, 33
\tkzDefPointBy: arguments
pt, 33
\tkzDefPointBy: options
homothety, 33
inversion, 33
projection , 33
reflection, 33
rotation in rad, 33
rotation , 33
symmetry , 33
translation, 33
\tkzDefPointBy[⟨local options⟩](⟨pt⟩), 33
\tkzDefPointOnCircle, 31
\tkzDefPointOnCircle: options
angle, 31
center, 31
radius, 31
\tkzDefPointOnCircle[⟨local options⟩], 31
\tkzDefPointOnLine, 31
\tkzDefPointOnLine: arguments
pt1,pt2, 31
\tkzDefPointOnLine: options
pos=nb, 31
\tkzDefPointOnLine[⟨local options⟩](⟨A,B⟩), 31
\tkzDefPoints{0/0/O,2/2/A}, 21
\tkzDefPoints, 21
tkz-euclide AlterMundus
Index 164
\tkzDefPoints: arguments
𝑥𝑖 /𝑦𝑖 /𝑛𝑖 , 21
\tkzDefPoints: options
shift, 21
\tkzDefPointsBy, 33, 38, 39
\tkzDefPointsBy: arguments
(⟨list of points⟩){⟨list of pts⟩}, 39
\tkzDefPointsBy: options
homothety = center #1 ratio #2, 39
projection = onto #1--#2, 39
reflection = over #1--#2, 39
rotation = center #1 angle #2, 39
rotation in rad = center #1 angle #2, 39
symmetry = center #1, 39
translation = from #1 to #2, 39
\tkzDefPointsBy[⟨local options⟩](⟨list of points⟩){⟨list of points⟩}, 39
\tkzDefPoints[⟨local options⟩]{⟨𝑥1 /𝑦1 /𝑛1 , 𝑥2 /𝑦2 /𝑛2 , ...⟩}, 21
\tkzDefPointWith, 40
\tkzDefPointWith: arguments
(pt1,pt2), 40
\tkzDefPointWith: options
K, 40
colinear normed= at #1, 40
colinear= at #1, 40
linear normed, 40
linear, 40
orthogonal normed, 40
orthogonal, 40
\tkzDefPointWith(⟨pt1,pt2⟩), 40
\tkzDefPoint[⟨local options⟩](⟨𝑥, 𝑦⟩){⟨name⟩} or (⟨𝛼:𝑑⟩){⟨name⟩}, 18
\tkzDefRandPointOn, 16, 45
\tkzDefRandPointOn: options
circle =center pt1 radius dim, 45
circle through=center pt1 through pt2, 45
disk through=center pt1 through pt2, 45
line=pt1--pt2, 45
rectangle=pt1 and pt2, 45
segment= pt1--pt2, 45
\tkzDefRandPointOn[⟨local options⟩], 45
\tkzDefRegPolygon, 78
\tkzDefRegPolygon: arguments
(⟨pt1,pt2⟩), 78
\tkzDefRegPolygon: options
Options TikZ, 78
center, 78
name, 78
sides, 78
side, 78
\tkzDefRegPolygon[⟨local options⟩](⟨pt1,pt2⟩), 78
\tkzDefShiftPoint, 20
\tkzDefShiftPoint: arguments
(𝛼:𝑑), 20
(𝑥, 𝑦), 20
\tkzDefShiftPoint: options
[pt], 20
\tkzDefShiftPoint[⟨Point⟩](⟨𝑥, 𝑦⟩){⟨name⟩} or (⟨𝛼:𝑑⟩){⟨name⟩}, 20
\tkzDefSpcTriangle, 66
\tkzDefSpcTriangle: options
centroid or medial, 66
euler, 66
ex or excentral, 66
tkz-euclide AlterMundus
Index 165
extouch, 66
feuerbach, 66
in or incentral, 66
intouch or contact, 66
name, 66
orthic, 66
tangential, 66
\tkzDefSpcTriangle[⟨local options⟩](⟨A,B,C⟩), 66
\tkzDefSquare, 71, 72
\tkzDefSquare: arguments
(⟨pt1,pt2⟩), 71
\tkzDefSquare(⟨pt1,pt2⟩), 71
\tkzDefTangent, 52
\tkzDefTangent: arguments
(⟨pt1,pt2 or (⟨pt1,dim⟩)⟩) , 52
\tkzDefTangent: options
at=pt, 52
from with R=pt, 52
from=pt, 52
\tkzDefTangent[⟨local options⟩](⟨pt1,pt2⟩) or (⟨pt1,dim⟩), 52
\tkzDefTriangle, 63
\tkzDefTriangle: options
cheops, 63
equilateral, 63
euclide, 63
golden, 63
gold, 63
pythagore, 63
school, 63
two angles= #1 and #2, 63
\tkzDefTriangleCenter, 25
\tkzDefTriangleCenter: arguments
(pt1,pt2,pt3), 25
\tkzDefTriangleCenter: options
centroid, 25
circum, 25
euler, 25
ex, 25
feuerbach, 25
in, 25
mittenpunkt, 25
nagel, 25
ortho, 25
spieker, 25
symmedian, 25
\tkzDefTriangleCenter[⟨local options⟩](⟨A,B,C⟩), 25
\tkzDefTriangle[⟨local options⟩](⟨A,B⟩), 63
\tkzDrawAngle, 154
\tkzDrawArc[angles](O,A)(0,90), 115
\tkzDrawArc[delta=10](O,A)(B), 115
\tkzDrawArc[R with nodes](O,2 cm)(A,B), 115
\tkzDrawArc[R](O,2 cm)(30,90), 115
\tkzDrawArc[rotate,color=red](O,A)(90), 115
\tkzDrawArc, 115
\tkzDrawArc: options
R with nodes, 115
R, 115
angles, 115
delta, 115
rotate, 115
towards, 115
tkz-euclide AlterMundus
Index 166
tkz-euclide AlterMundus
Index 167
\tkzDrawPolySeg: options
Options TikZ, 75
\tkzDrawPolySeg[⟨local options⟩](⟨points list⟩), 75
\tkzDrawSector(O,A)(B), 110
\tkzDrawSector[R with nodes](O,2 cm)(A,B), 110
\tkzDrawSector[R,color=blue](O,2 cm)(30,90), 110
\tkzDrawSector[rotate,color=red](O,A)(90), 110
\tkzDrawSector, 110–112
\tkzDrawSector: options
R with nodes, 110
R, 110
rotate, 110
towards, 110
\tkzDrawSector[⟨local options⟩](⟨O,…⟩)(⟨…⟩), 110
\tkzDrawSegment(A,B A,C), 154
\tkzDrawSegment, 16, 57
\tkzDrawSegment: arguments
(pt1,pt2), 57
\tkzDrawSegment: options
TikZ options, 57
…, 57
add, 57
dim, 57
\tkzDrawSegments[color = gray,style=dashed]{B,B' C,C'}, 154
\tkzDrawSegments, 59, 154
\tkzDrawSegments[⟨local options⟩](⟨pt1,pt2 pt3,pt4 ...⟩), 59
\tkzDrawSegment[⟨local options⟩](⟨pt1,pt2⟩), 57
\tkzDrawSemiCircle, 86, 87
\tkzDrawSemiCircle: arguments
(⟨pt1,pt2⟩), 86
\tkzDrawSemiCircle: options
diameter, 87
through, 87
\tkzDrawSemiCircle[⟨local options⟩](⟨A,B⟩), 86
\tkzDrawSquare, 73
\tkzDrawSquare: arguments
(⟨pt1,pt2⟩), 73
\tkzDrawSquare: options
Options TikZ, 73
\tkzDrawSquare[⟨local options⟩](⟨pt1,pt2⟩), 73
\tkzDrawTriangle, 65
\tkzDrawTriangle: options
cheops, 65
equilateral, 65
euclide, 65
golden, 65
gold, 65
pythagore, 65
school, 65
two angles= #1 and #2, 65
\tkzDrawTriangle[⟨local options⟩](⟨A,B⟩), 65
\tkzDuplicateLen, 119
\tkzDuplicateLength, 119
\tkzDuplicateSegment, 119, 120
\tkzDuplicateSegment: arguments
(pt1,pt2)(pt3,pt4){pt5}, 119
\tkzDuplicateSegment(⟨pt1,pt2⟩)(⟨pt3,pt4⟩){⟨pt5⟩}, 119
\tkzFillAngle, 97, 136, 154
\tkzFillAngle: options
size, 97
\tkzFillAngles, 98
tkz-euclide AlterMundus
Index 168
\tkzFillAngles[⟨local options⟩](⟨A,O,B⟩)(⟨A',O',B'⟩)etc., 98
\tkzFillAngle[⟨local options⟩](⟨A,O,B⟩), 97
\tkzFillCircle, 79, 84, 87
\tkzFillCircle: options
R, 87
radius, 87
\tkzFillCircle[⟨local options⟩](⟨A,B⟩), 87
\tkzFillPolygon, 77
\tkzFillPolygon: arguments
(⟨pt1,pt2,…⟩), 77
\tkzFillPolygon[⟨local options⟩](⟨points list⟩), 77
\tkzFillSector(O,A)(B), 112
\tkzFillSector[R with nodes](O,2 cm)(A,B), 112
\tkzFillSector[R,color=blue](O,2 cm)(30,90), 112
\tkzFillSector[rotate,color=red](O,A)(90), 112
\tkzFillSector, 112, 113
\tkzFillSector: options
R with nodes, 112
R, 112
rotate, 112
towards, 112
\tkzFillSector[⟨local options⟩](⟨O,…⟩)(⟨…⟩), 112
\tkzFindAngle, 105, 106
\tkzFindAngle: arguments
(pt1,pt2,pt3), 105
\tkzFindAngle(⟨pt1,pt2,pt3⟩), 105
\tkzFindSlope, 107
\tkzFindSlope: arguments
(pt1,pt2)pt3, 107
\tkzFindSlopeAngle, 108, 109
\tkzFindSlopeAngle: arguments
(pt1,pt2), 108
\tkzFindSlopeAngle(⟨A,B⟩), 108
\tkzFindSlope(⟨pt1,pt2⟩){⟨name of macro⟩}, 107
\tkzGetAngle, 104, 105, 108
\tkzGetAngle: arguments
name of macro, 104
\tkzGetAngle(⟨name of macro⟩), 104
\tkzGetFirstPoint{A}, 154
\tkzGetFirstPoint{Jb}, 82
\tkzGetFirstPoint, 71
\tkzGetFirstPointI, 80
\tkzGetLength, 79, 122
\tkzGetPoint(A), 154
\tkzGetPoint{A}, 154
\tkzGetPoint{C}, 40
\tkzGetPoint{M}, 33
\tkzGetPoint, 16, 22, 25–27, 40, 45, 49, 63, 66, 72, 79
\tkzGetPointCoord, 122, 123
\tkzGetPointCoord: arguments
(point){name of macro}, 122
\tkzGetPointCoord(⟨𝐴⟩){⟨name of macro⟩}, 122
\tkzGetPoints{A}{B}, 154
\tkzGetPoints{C}{D}, 73
\tkzGetPoints, 49, 71, 74
\tkzGetRandPointOn, 16, 45
\tkzGetSecondPoint{A}, 154
\tkzGetSecondPoint{Tb}, 82
\tkzGetSecondPoint, 71
\tkzGetSecondPointIb, 80
\tkzGetVectxy, 44
tkz-euclide AlterMundus
Index 169
\tkzGetVectxy: arguments
(point){name of macro}, 44
\tkzGetVectxy(⟨𝐴, 𝐵⟩){⟨text⟩}, 44
\tkzInit, 8, 16, 17, 152
\tkzInterCC, 94
\tkzInterCC: options
N, 94
R, 94
with nodes, 94
\tkzInterCCN, 94
\tkzInterCCR, 94
\tkzInterCC[⟨options⟩](⟨𝑂, 𝐴⟩)(⟨𝑂 ′ , 𝐴′ ⟩) or (⟨𝑂, 𝑟⟩)(⟨𝑂 ′ , 𝑟′ ⟩) or (⟨𝑂, 𝐴, 𝐵⟩) (⟨𝑂 ′ , 𝐶, 𝐷⟩), 94
\tkzInterLC, 90
\tkzInterLC: options
N, 90
R, 90
with nodes, 90
\tkzInterLC[⟨options⟩](⟨𝐴, 𝐵⟩)(⟨𝑂, 𝐶⟩) or (⟨𝑂, 𝑟⟩) or (⟨𝑂, 𝐶, 𝐷⟩), 90
\tkzInterLL, 90
\tkzInterLL(⟨𝐴, 𝐵⟩)(⟨𝐶, 𝐷⟩), 90
\tkzLabelAngle, 101
\tkzLabelAngle: options
pos, 101
\tkzLabelAngles, 102
\tkzLabelAngles[⟨local options⟩](⟨A,O,B⟩)(⟨A',O',B'⟩)etc., 102
\tkzLabelAngle[⟨local options⟩](⟨A,O,B⟩), 101
\tkzLabelCircle, 79, 84, 89
\tkzLabelCircle: options
R, 89
radius, 89
\tkzLabelCircle[⟨local options⟩](⟨A,B⟩)(⟨angle⟩){⟨label⟩}, 89
\tkzLabelLine(A,B), 56
\tkzLabelLine, 16, 56, 57
\tkzLabelLine: arguments
label, 56
\tkzLabelLine: options
pos, 56
\tkzLabelLine[⟨local options⟩](⟨pt1,pt2⟩){⟨label⟩}, 56
\tkzLabelSegment(A,B){5}, 61
\tkzLabelSegment, 61
\tkzLabelSegment: arguments
(pt1,pt2), 61
label, 61
\tkzLabelSegment: options
pos, 61
\tkzLabelSegments, 62
\tkzLabelSegments[⟨local options⟩](⟨pt1,pt2 pt3,pt4 ...⟩), 62
\tkzLabelSegment[⟨local options⟩](⟨pt1,pt2⟩){⟨label⟩}, 61
\tkzLength, 93
\tkzMarkAngle, 100, 136
\tkzMarkAngle: options
arc, 100
mark, 100
mkcolor, 100
mkpos, 100
mksize, 100
size, 100
\tkzMarkAngles, 101
\tkzMarkAngles[⟨local options⟩](⟨A,O,B⟩)(⟨A',O',B'⟩)etc., 101
\tkzMarkAngle[⟨local options⟩](⟨A,O,B⟩), 100
\tkzMarkRightAngle, 102
tkz-euclide AlterMundus
Index 170
\tkzMarkRightAngle: options
german, 102
size, 102
\tkzMarkRightAngles, 104
\tkzMarkRightAngles[⟨local options⟩](⟨A,O,B⟩)(⟨A',O',B'⟩)etc., 104
\tkzMarkRightAngle[⟨local options⟩](⟨A,O,B⟩), 102
\tkzMarkSegment, 59
\tkzMarkSegment: options
color, 59
mark, 59
pos, 59
size, 59
\tkzMarkSegments, 60
\tkzMarkSegments[⟨local options⟩](⟨pt1,pt2 pt3,pt4 ...⟩), 60
\tkzMarkSegment[⟨local options⟩](⟨pt1,pt2⟩), 59
\tkzProtractor, 130
\tkzProtractor: options
lw, 130
return, 130
scale, 130
\tkzProtractor[⟨local options⟩](⟨𝑂, 𝐴⟩), 130
\tkzpttocm, 121
\tkzpttocm: arguments
(number)name of macro, 121
\tkzpttocm(⟨nombre⟩){⟨name of macro⟩}, 121
\tkzSaveBB, 16
\tkzSetUpCompass, 125, 150, 151
\tkzSetUpCompass: options
color, 125, 150
line width, 125, 150
style, 125, 150
\tkzSetUpCompass[⟨local options⟩], 125, 150
\tkzSetUpLine, 148
\tkzSetUpLine: options
add, 148
color, 148
line width, 148
style, 148
\tkzSetUpLine[⟨local options⟩], 148
\tkzSetUpPoint, 149, 150
\tkzSetUpPoint: options
color, 149
fill, 149
shape, 149
size, 149
\tkzSetUpPoint[⟨local options⟩], 149
\tkzShowBB, 152
\tkzShowLine, 126, 127
\tkzShowLine: options
K, 126
bisector, 126
gap, 126
length, 126
mediator, 126
orthogonal, 126
perpendicular, 126
ratio, 126
size, 126
\tkzShowLine[⟨local options⟩](⟨pt1,pt2⟩) or (⟨pt1,pt2,pt3⟩), 126
\tkzShowTransformation, 127, 128
\tkzShowTransformation: options
tkz-euclide AlterMundus
Index 171
K, 127
gap, 127
length, 127
projection=onto pt1--pt2, 127
ratio, 127
reflection= over pt1--pt2, 127
size, 127
symmetry=center pt, 127
translation=from pt1 to pt2, 127
\tkzShowTransformation[⟨local options⟩](⟨pt1,pt2⟩) or (⟨pt1,pt2,pt3⟩), 127
\tkzTangent, 52
\usetkzobj{all}, 16
\usetkztool, 16
\Vx, 44
\Vy, 44
tkz-euclide AlterMundus