TKZ Euclide
TKZ Euclide
AlterMundus
tkz-euclide v5
tkz-euclide 5.10c
Euclidean Geometry
Alain Matthes
April 29, 2024 Documentation V.5.10c
http://altermundus.fr
tkz-euclide
Alain Matthes
AlterMundus
M
tkz-euclide is a set of convenient macros for drawing in a plane (fundamen-
tal 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 pack-
age. The aim is to provide a high-level user interface to build graphics relatively
effortlessly. The goal is to guide users through constructing diagrams step by
step, mirroring the natural process of manual construction as closely as possi-
ble.
Version 5 of tkz-euclide includes the option to utilize Lua for performing cer-
tain calculations, refer to the news and lua sections.
Please note: English is not my native language, so there may be some errors.
M Firstly, I would like to thank Till Tantau for the beautiful LATEX package, namely Tik Z.
M Acknowledgements : I received much valuable advices, 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, Paul Gaborit, Laurent
Van Deik and Muzimuzhi Z.
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 17
II. Setting 32
6. First step: fixed points 33
tkz-euclide AlterMundus
Contents 4
III. Calculating 38
8. Auxiliary tools 39
8.1. Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
8.2. New point by calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
9. Special points 40
9.1. Middle of a segment \tkzDefMidPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
9.1.1. Use of \tkzDefMidPoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
9.2. Golden ratio \tkzDefGoldenRatio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
9.2.1. Use the golden ratio to divide a line segment . . . . . . . . . . . . . . . . . . . . . . . . . 41
9.2.2. Golden arbelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
9.3. Barycentric coordinates with \tkzDefBarycentricPoint . . . . . . . . . . . . . . . . . 41
9.3.1. with two points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
9.3.2. with three points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
9.4. Internal and external Similitude Center . . . . . . . . . . . . . . . . . . . . . . . . . 42
9.4.1. Internal and external with node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
9.4.2. D’Alembert Theorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
9.4.3. Example with node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
9.5. Harmonic division with \tkzDefHarmonic . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
9.5.1. options ext and int . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
9.5.2. Bisector and harmonic division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
9.5.3. option both . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
9.6. Equidistant points with \tkzDefEquiPoints . . . . . . . . . . . . . . . . . . . . . . . . . 46
9.6.1. Using \tkzDefEquiPoints with options . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
9.7. Middle of an arc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
tkz-euclide AlterMundus
Contents 5
12.1.4. projection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
12.1.5. symmetry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
12.1.6. rotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
12.1.7. rotation in radian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
12.1.8. rotation with nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
12.1.9. inversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
12.1.10. Inversion of lines ex 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
12.1.11. inversion of lines ex 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
12.1.12. inversion of lines ex 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
12.1.13. inversion of circle and homothety . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
12.1.14. inversion of Triangle with respect to the Incircle . . . . . . . . . . . . . . . . . . . . . . 63
12.1.15. inversion: orthogonal circle with inversion circle . . . . . . . . . . . . . . . . . . . . . 63
12.1.16. inversion negative . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
12.2. Transformation of multiple points; \tkzDefPointsBy . . . . . . . . . . . . . . . . . . . . . . 65
12.2.1. translation of multiple points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
12.2.2. symmetry of multiple points: an oval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
tkz-euclide AlterMundus
Contents 6
15. Triangles 77
15.1. Definition of triangles \tkzDefTriangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
15.1.1. Option equilateral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
15.1.2. Option two angles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
15.1.3. Option school . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
15.1.4. Option pythagore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
15.1.5. Option pythagore and swap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
15.1.6. Option golden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
15.1.7. Option euclid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
15.1.8. Option isosceles right . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
15.1.9. Option gold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
15.2. Specific triangles with \tkzDefSpcTriangle . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
15.2.1. How to name the vertices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
15.3. Option medial or centroid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
15.3.1. Option in or incentral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
15.3.2. Option ex or excentral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
15.3.3. Option intouch or contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
15.3.4. Option extouch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
15.3.5. Option orthic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
15.3.6. Option feuerbach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
15.3.7. Option tangential . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
15.3.8. Option euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
15.3.9. Option euler and Option orthic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
15.3.10. Option symmedial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
15.4. Permutation of two points of a triangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
15.4.1. Modification of the school triangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
17. Circles 95
17.1. Characteristics of a circle: \tkzDefCircle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
17.1.1. Example with option R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
17.1.2. Example with option diameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
17.1.3. Circles inscribed and circumscribed for a given triangle . . . . . . . . . . . . . . . . . . . 96
17.1.4. Example with option ex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
17.1.5. Euler’s circle for a given triangle with option euler . . . . . . . . . . . . . . . . . . . . . 97
17.1.6. Apollonius circles for a given segment option apollonius . . . . . . . . . . . . . . . . . 98
17.1.7. Circles exinscribed to a given triangle option ex . . . . . . . . . . . . . . . . . . . . . . . 98
17.1.8. Spieker circle with option spieker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
tkz-euclide AlterMundus
Contents 7
tkz-euclide AlterMundus
Contents 8
tkz-euclide AlterMundus
Contents 9
tkz-euclide AlterMundus
Contents 10
V. Marking 157
29.9. Mark a segment \tkzMarkSegment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
29.9.1. Several marks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
29.9.2. Use of mark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
29.10. Marking segments \tkzMarkSegments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
29.10.1. Marks for an isosceles triangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
29.11. Another marking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
29.12. Mark an arc \tkzMarkArc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
29.12.1. Several marks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
29.13. Mark an angle mark : \tkzMarkAngle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
29.13.1. Example with mark = x and with mark = . . . . . . . . . . . . . . . . . . . . . . . . . . 160
29.14. Problem to mark a small angle: Option veclen . . . . . . . . . . . . . . . . . . . . . . . . . . 160
29.15. Marking a right angle: \tkzMarkRightAngle . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
29.15.1. Example of marking a right angle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
29.15.2. Example of marking a right angle, german style . . . . . . . . . . . . . . . . . . . . . . . 162
29.15.3. Mix of styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
29.15.4. Full example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
29.16. \tkzMarkRightAngles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
29.17. Angles Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
29.17.1. Angle with Tik Z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
tkz-euclide AlterMundus
Contents 11
tkz-euclide AlterMundus
Contents 12
tkz-euclide AlterMundus
Contents 13
X. FAQ 246
48. FAQ 247
48.1. Most common errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
tkz-euclide AlterMundus
Contents 14
Index 248
tkz-euclide AlterMundus
Part I.
– Added the mini option. You can use this option with the tkz-elements package. Only the modules re-
quired for tracing will be loaded. This option is currently only available if you are using tkz-elements.
tkz-euclide AlterMundus
1. Working with lua 17
2. Installation
tkz-euclide is 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:
– You need to have PGF installed on your computer. tkz-euclide use several libraries of Tik Z
1 tkz-euclide is part of TeXLive and tlmgr allows you to install them. This package is also part of MiKTeX under Windows.
tkz-euclide AlterMundus
3. Presentation and Overview 18
angles,
arrows,
arrows.meta,
calc,
decorations,
decorations.markings,
decorations.pathreplacing,
decorations.shapes,
decorations.text,
decorations.pathmorphing,
intersections,
math,
plotmarks,
positioning,
quotes,
shapes.misc,
through
– This documentation and all examples were obtained with lualatex but pdflatex or xelatex should be
suitable.
\begin{tikzpicture}[scale=.25]
\tkzDefPoints{0/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}
tkz-euclide AlterMundus
3. Presentation and Overview 19
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.
The main purpose is to define points to create geometrical figures. tkz-euclide allows you to draw the essential
objects of Euclidean geometry from these points but it may be insufficient for some actions like coloring surfaces.
In this case you will have to use Tik Z which is always possible.
Here are some comparisons between TikZ and tkz-euclide 4. For this I will use the geometry examples from
the PGFManual. The two most important Euclidean tools used by early Greeks to construct different geometrical
shapes and angles were a compass and a straightedge. My idea is to allow you to follow step by step a construction
that would be done by hand (with compass and straightedge) as naturally as possible.
Explanation :
The fourth tutorial of the PgfManual is about geometric constructions. T. Tantau proposes to get the drawing
with its beautiful tool TikZ. Here I propose the same construction with tkz-elements. The color of the TikZ code
is green!50!black and that of tkz-elements is red.
\usepackage{tikz}
\usetikzlibrary{calc,intersections,through,backgrounds}
\usepackage{tkz-euclide}
How to get the line AB ? To get this line, we use two fixed points.
\tkzInterCC(A,B)(B,A) \tkzGetPoints{C}{X}
tkz-euclide AlterMundus
3. Presentation and Overview 20
\tkzDrawPoints[fill=gray,opacity=.5](A,B,C)
ℰ
C
\colorlet{input}{red!80!black}
\colorlet{output}{red!70!black}
\colorlet{triangle}{green!50!black!40}
\begin{tikzpicture}[scale=1.25,thick,help lines/.style={thin,draw=black!50}]
\tkzDefPoint(0,0){A}
\tkzDefPoint(1.25+rand(),0.25+rand()){B}
\tkzInterCC(A,B)(B,A) \tkzGetPoints{C}{X}
\tkzFillPolygon[triangle,opacity=.5](A,B,C)
\tkzDrawSegment[input](A,B)
\tkzDrawSegments[red](A,C B,C)
\tkzDrawCircles[help lines](A,B B,A)
\tkzDrawPoints[fill=gray,opacity=.5](A,B,C)
\tkzLabelPoints(A,B)
\tkzLabelCircle[below=12pt](A,B)(180){$\mathcal{D}$}
\tkzLabelCircle[above=12pt](B,A)(180){$\mathcal{E}$}
\tkzLabelPoint[above,red](C){$C$}
\end{tikzpicture}
tkz-euclide AlterMundus
3. Presentation and Overview 21
To place a straight line equal to a given straight line with one end at a given point.
Explanation
In the first part, we need to find the midpoint of the straight line AB. With Tik Z we can use the calc library
\coordinate [label=left:$A$] (A) at (0,0);
\coordinate [label=right:$B$] (B) at (1.25,0.25);
\draw (A) -- (B);
\node [fill=red,inner sep=1pt,label=below:$X$] (X) at ($ (A)!.5!(B) $) {};
With tkz-euclide we have a macro \tkzDefMidPoint, we get the point X with \tkzGetPoint but we don’t need
this point to get the next step.
\tkzDefPoints{0/0/A,0.75/0.25/B,1/1.5/C}
\tkzDefMidPoint(A,B) \tkzGetPoint{X}
Then we need to construct a triangle equilateral. It’s easy with tkz-euclide . With TikZ you need some effort
because you need to use the midpoint X to get the point D with trigonometry calculation.
\node [fill=red,inner sep=1pt,label=below:$X$] (X) at ($ (A)!.5!(B) $) {};
\node [fill=red,inner sep=1pt,label=above:$D$] (D) at
($ (X) ! {sin(60)*2} ! 90:(B) $) {};
\draw (A) -- (D) -- (B);
\tkzDefTriangle[equilateral](A,B) \tkzGetPoint{D}
We can draw the triangle at the end of the picture with
\tkzDrawPolygon{A,B,C}
We know how to draw the circle ℋ around B through C and how to place the points E and F
\node (H) [label=135:$H$,draw,circle through=(C)] at (B) {};
\draw (D) -- ($ (D) ! 3.5 ! (B) $) coordinate [label=below:$F$] (F);
\draw (D) -- ($ (D) ! 2.5 ! (A) $) coordinate [label=below:$E$] (E);
\tkzDrawCircle(B,C)
\tkzDrawLines[add=0 and 2](D,A D,B)
We can place the points E and F at the end of the picture. We don’t need them now.
Intersecting a Line and a Circle : here we search the intersection of the circle around B through C and the line
DB. The infinite straight line DB intercepts the circle but with Tik Z we need to extend the lines DB and that can
be done using partway calculations. We get the point F and BF or DF intercepts the circle
\node (H) [label=135:$H$,draw,circle through=(C)] at (B) {};
\path let \p1 = ($ (B) - (C) $) in
coordinate [label=left:$G$] (G) at ($ (B) ! veclen(\x1,\y1) ! (F) $);
\fill[red,opacity=.5] (G) circle (2pt);
Like the intersection of two circles, it’s easy to find the intersection of a line and a circle with tkz-euclide. We
don’t need F
\tkzInterLC(B,D)(B,C)\tkzGetFirstPoint{G}
There are no more difficulties. Here the final code with some simplications. We draw the circle 𝒦 with center D
and passing through G. It intersects the line AD at point L. AL = BC.
\tkzDrawCircle(D,G)
tkz-euclide AlterMundus
3. Presentation and Overview 22
\tkzInterLC(D,A)(D,G)\tkzGetSecondPoint{L}
\begin{tikzpicture}[scale=1.5]
\tkzDefPoint(0,0){A}
\tkzDefPoint(0.75,0.25){B}
\tkzDefPoint(1,1.5){C}
(ℋ ) C \tkzDefTriangle[equilateral](A,B)\tkzGetPoint{D}
\tkzInterLC[near](D,B)(B,C) \tkzGetSecondPoint{G}
\tkzInterLC[near](A,D)(D,G) \tkzGetFirstPoint{L}
D \tkzDrawCircles(B,C D,G)
\tkzDrawLines[add=0 and 2](D,A D,B)
\tkzDrawSegment(A,B)
B
A
\tkzDrawSegments[red](A,L B,C)
\tkzDrawPoints[red](D,L,G)
G \tkzDrawPoints[fill=gray](A,B,C)
\tkzLabelPoints[left,red](A)
(𝒦 )
\tkzLabelPoints[below right,red](L)
\tkzLabelCircle[above](B,C)(20){$\mathcal{(H)}$}
L
\tkzLabelPoints[above left](D)
\tkzLabelPoints[above](G)
\tkzLabelPoints[above,red](C)
\tkzLabelPoints[right,red](B)
\tkzLabelCircle[below](D,G)(-90){$\mathcal{(K)}$}
\end{tikzpicture}
– 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}
\usepackage{tkz-euclide} or \usepackage[lua]{tkz-euclide}
You don’t need to load Tik Z because the tkz-euclide package works on top of TikZ and loads it.
– Start the document and open a TikZ picture environment:
\begin{document}
\begin{tikzpicture}
tkz-euclide AlterMundus
3. Presentation and Overview 23
\tkzDefPoint(0,0){A}
\tkzDefPoint(5,2){B}
\tkzInterCC(A,B)(B,A)
\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
\tkzDrawPoints(A,...,D)
– 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)
\end{tikzpicture}
\end{document}
\begin{tikzpicture}[scale=.5]
% fixed points
C \tkzDefPoint(0,0){A}
\tkzDefPoint(5,2){B}
% calculus
\tkzInterCC(A,B)(B,A)
\tkzGetPoints{C}{D}
B % drawings
c \tkzDrawCircles(A,B B,A)
\tkzDrawPolygon(A,B,C)
A
\tkzDrawPoints(A,...,D)
% marking
\tkzMarkSegments[mark=s||](A,B B,C C,A)
% labelling
D
\tkzLabelSegments[swap](A,B){$c$}
\tkzLabelPoints(A,B,D)
\tkzLabelPoints[above](C)
\end{tikzpicture}
tkz-euclide AlterMundus
3. Presentation and Overview 24
C D A
3. From this we deduce that the CBD and DBE angles are equal and have the same measure 𝛼
̂ + ABC
BAC ̂ + BCA
̂ = 180∘ in the triangle BAC
4. Finally
̂ = 𝛼 = 36∘
CBD
the triangle CBD is a golden triangle.
3. Then we trace an arc with center m through e. This arc cross the line (Cf) at n;
4. Now the two arcs with center C and D and radius Cn define the point B.
tkz-euclide AlterMundus
3. Presentation and Overview 25
n \begin{tikzpicture}
B
\tkzDefPoint(0,0){C}
\tkzDefPoint(4,0){D}
\tkzDefSquare(C,D)
\tkzGetPoints{e}{f}
\tkzDefMidPoint(C,f)
f e \tkzGetPoint{m}
\tkzInterLC(C,f)(m,e)
\tkzGetSecondPoint{n}
\tkzInterCC[with nodes](C,C,n)(D,C,n)
\tkzGetFirstPoint{B}
m \tkzDrawSegment[brown,dashed](f,n)
\pgfinterruptboundingbox% from tikz
\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)
C D \endpgfinterruptboundingbox
\tkzDrawPolygon(B,...,D)
\tkzDrawPoints(B,C,D,e,f,m,n)
\tkzLabelPoints[above](B)
\tkzLabelPoints[left](f,m,n)
\tkzLabelPoints(C,D)
\tkzLabelPoints[right](e)
\end{tikzpicture}
After building the golden triangle BCD, we build the point A by noticing that BD = DA. Then we get the point E
and finally the point F. This is done with already intersections of defined objects (line and circle).
3.5.3. Part II: two others methods with golden and euclid triangle
tkz-euclide knows how to define a golden or euclide triangle. We can define BCD and BCA like gold triangles.
\begin{tikzpicture}
\tkzDefPoint(0,0){C}
\tkzDefPoint(4,0){D}
\tkzDefTriangle[golden](C,D)
\tkzGetPoint{B}
\tkzDefTriangle[golden](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(B,F,C)
\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}
tkz-euclide AlterMundus
3. Presentation and Overview 26
\begin{tikzpicture}
\tkzDefPoint(0,0){C} % possible
% \tkzDefPoint[label=below:$C$](0,0){C}
% but don't do this
\tkzDefPoint(2,6){B}
% We get D and E with a rotation
\tkzDefPointBy[rotation= center B angle 36](C) \tkzGetPoint{D}
\tkzDefPointBy[rotation= center B angle 72](C) \tkzGetPoint{E}
% To get A we use an intersection of lines
\tkzInterLL(B,E)(C,D) \tkzGetPoint{A}
\tkzInterLL(C,E)(B,D) \tkzGetPoint{H}
% drawing
\tkzDrawArc[delta=10](B,C)(E)
\tkzDrawPolygon(C,B,D)
\tkzDrawSegments(D,A B,A C,E)
% angles
\tkzMarkAngles(C,B,D E,A,D) %this is to draw the arcs
\tkzLabelAngles[pos=1.5](C,B,D E,A,D){$\alpha$}
\tkzMarkRightAngle(B,H,C)
\tkzDrawPoints(A,...,E)
% Label only now
\tkzLabelPoints[below left](C,A)
\tkzLabelPoints[below right](D)
\tkzLabelPoints[above](B,E)
\end{tikzpicture}
√a2 = a (a > 0)
I M
A(0, 0) B(10, 0)
(a − 1)/2
1 (a + 1)/2
tkz-euclide AlterMundus
3. Presentation and Overview 27
\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) \tkzGetFirstPoint{C}
\tkzDrawSegment[style=purple](I,C)
\tkzDrawArc(M,B)(A)
\tkzDrawSegment[dim={$1$,-16pt,}](A,I)
\tkzDrawSegment[dim={$(a-1)/2$,-10pt,}](I,M)
\tkzDrawSegment[dim={$(a+1)/2$,-16pt,}](M,B)
\tkzMarkRightAngle[ra](A,I,C)
\tkzDrawPoints(I,A,B,C,M)
\tkzLabelPoint[left](A){$A(0,0)$}
\tkzLabelPoints[above right](I,M)
\tkzLabelPoints[above left](C)
\tkzLabelPoint[right](B){$B(10,0)$}
\tkzLabelSegment[right=4pt](I,C){$\sqrt{a^2}=a \ (a>0)$}
\end{tikzpicture}
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}
– The second part is dedicated to the creation of new points from the fixed points; a B point is placed at 10 cm
from A. The middle of [AB] is defined by M and then the orthogonal line to the (AB) line is searched for at
the I point. Then we look for the intersection of this line with the semi-circle of center M passing through
A.
tkz-euclide AlterMundus
4. The Elements of tkz code 28
\tkzDrawSegment[style=purple](I,H)
\tkzDrawPoints(O,I,A,B,M)
\tkzDrawArc(M,A)(O)
\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)
\tkzLabelPoint[left](A){$A(0,0)$}
\tkzLabelPoint[right](B){$B(10,0)$}
\tkzLabelSegment[right=4pt](I,C){$\sqrt{a^2}=a \ (a>0)$}
To work with my package, you need to have notions of LATEX as well as Tik Z.
In this paragraph, we start looking at the rules and symbols used to create a figure with tkz-euclide.
tkz-euclide AlterMundus
4. The Elements of tkz code 29
golden
\begin{tikzpicture}[scale=.5]
\tkzDefPoints{0/0/A,8/0/B}
\foreach \tr in {golden, equilateral}
{\tkzDefTriangle[\tr](A,B) \tkzGetPoint{C}
equilateral \tkzDrawPoint(C)
\tkzLabelPoint[right](C){\tr}
\tkzDrawSegments(A,C C,B)}
\tkzDrawPoints(A,B)
\tkzDrawSegments(A,B)
\tkzLabelPoints(A,B)
\end{tikzpicture}
A B
– 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}
B
\tkzDefPoints{0/0/A,4/2/B}
\tkzDrawPoints(A,B)
\tkzLabelPoints(A,B)
\end{tikzpicture}
A
or else
\begin{tikzpicture}
B
\tkzSetUpPoint[shape=cross, color=red]
\tkzDefPoints{0/0/A,4/2/B}
\tkzDrawPoints(A,B)
\tkzLabelPoints(A,B)
A
\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 A, B or C. For example:
– O is a center for a circle, a rotation, etc.;
– M defined a midpoint;
– H defined the foot of an altitude;
– P′ is the image of P by a transformation ;
tkz-euclide AlterMundus
4. The Elements of tkz code 30
It is important to note that the reference name of a point in the code may be different from the label to
designate it in the text. So we can define a point A and give it as label P. In particular the style will be
different, point A will be labeled A.
\begin{tikzpicture}
P
\tkzDefPoint(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 Ma , Mb and Mc or MA ,
MB and MC .
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: [AB].
– The straight lines are in Euclidean geometry defined by two points so A and B define the straight line (AB).
We can also designate this stright line using the Greek alphabet and name it (𝛿) or (𝛥). It is also possible to
designate the straight line with lowercase letters such as d and d′ .
– Relation between the straight lines. Two perpendicular (AB) and (CD) lines will be written (AB) ⟂ (CD) and
if they are parallel we will write (AB) � (CD).
– The lengths of the sides of triangle ABC are AB, AC and BC. The numbers are also designated by a lowercase
letter so we will write: AB = c, AC = b and BC = a. The letter a is also used to represent an angle, and r is
frequently used to represent a radius, d a diameter, l a length, d a distance.
– Polygons are designated afterwards by their vertices so ABC is a triangle, EFGH a quadrilateral.
̂=
– Angles are generally measured in degrees (ex 60∘ ) and in an equilateral ABC triangle we will write ABC
̂ ∘
B = 60 .
– The arcs are designated by their extremities. For example if A and B are two points of the same circle then
�
AB.
– Circles are noted either 𝒞 if there is no possible confusion or 𝒞 (O ; A) for a circle with center O and passing
through the point A or 𝒞 (O ; 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.
– (x1 ,y1 ) coordinates of the point A1 , (xA ,yA ) coordinates of the point A.
tkz-euclide AlterMundus
5. About this documentation and the examples 31
One last remark that I think is important, it is best to avoid introducing coordinates within a code as much as
possible. I think that the coordinates should appear at the beginning of the code with the fixed points. Then the
use of references is recommended. Most macros have the option nodes or with nodes.
I also think it’s best to define the styles of the different objects from the beginning.
tkz-euclide AlterMundus
Part II.
Setting
6. First step: fixed points 33
The first step in a geometric construction is to define the fixed points from which the figure will be constructed.
The general idea is to avoid manipulating coordinates and to prefer to use the references of the points fixed in
the first step or obtained using the tools provided by the package. Even if it’s possible, I think it’s a bad idea to
work directly with coordinates. Preferable is to use named points.
tkz-euclide uses macros and vocabulary specific to geometric construction. It is of course possible to use the
tools of Tik Z but it seems more logical to me not to mix the different syntaxes.
A point in tkz-euclide is a particular node for Tik Z. In the next section we will see how to define points using
coordinates. The style of the points (color and shape) will not be discussed. You will find some indications in
some examples; for more information you can read the following section 38.
– Cartesian coordinates;
– Polar coordinates;
– Named points;
– Relative points.
A point is defined if it has a name linked to a unique pair of decimal numbers. Let (x, y) or (a: d) i.e. (x abscissa,
y ordinate) or (a angle: d distance). This is possible because the plan has been provided with an orthonormed
Cartesian coordinate system. The working axes are (ortho)normed with unity equal to 1 cm.
The Cartesian coordinate (a, b) refers to the point a centimeters in the x-direction and b centimeters in the y-
direction.
A point in polar coordinates requires an angle 𝛼, in degrees, and a distance d from the origin with a dimensional
unit by default it’s the cm.
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.
Cartesian coordinates Polar coordinates
\begin{tikzpicture}[scale=1] \begin{tikzpicture}[scale=1]
\tkzInit[xmax=5,ymax=5] \tkzInit[xmax=5,ymax=5]
% necessary to limit \tkzDrawX[>=latex]
% the size of the axes \tkzDrawY[>=latex]
\tkzDrawX[>=latex] \tkzDefPoints{0/0/O,1/0/I,0/1/J}
\tkzDrawY[>=latex] \tkzDefPoint(40:4){P}
\tkzDefPoints{0/0/O,1/0/I,0/1/J} \tkzDrawSegment[dim={$d$,
\tkzDefPoint(3,4){A} 16pt,above=6pt}](O,P)
\tkzDrawPoints(O,A) \tkzDrawPoints(O,P)
\tkzLabelPoint[above](A){$A_1(x_1,y_1)$} \tkzMarkAngle[mark=none,->](I,O,P)
\tkzShowPointCoord[xlabel=$x_1$, \tkzFillAngle[opacity=.5](I,O,P)
ylabel=$y_1$](A) \tkzLabelAngle[pos=1.25](I,O,P){%
\tkzLabelPoints(O,I) $\alpha$}
\tkzLabelPoints[left](J) \tkzLabelPoint[right](P){$P(\alpha:d)$}
\tkzDrawPoints[shape=cross](I,J) \tkzDrawPoints[shape=cross](I,J)
\end{tikzpicture} \tkzLabelPoints(O,I)
\tkzLabelPoints[left](J)
\end{tikzpicture}
tkz-euclide AlterMundus
7. Definition of a point : \tkzDefPoint or \tkzDefPoints 34
y y
A1 (x1 , y1 )
y1
P(𝛼: d)
J J
O I x1 x O I x
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. Do not
confuse the reference with the name of a point. The reference is used by calculations, but frequently, the name is
identical to the reference.
y \begin{tikzpicture}
\tkzInit[xmax=5,ymax=5] % limits the size of the axes
\tkzDrawX[>=latex]
\tkzDrawY[>=latex]
\tkzDefPoint(0,0){A}
\tkzDefPoint(4,0){B}
\tkzDefPoint(0,3){C}
\tkzDrawPolygon(A,B,C)
\tkzDrawPoints(A,B,C)
\end{tikzpicture}
tkz-euclide AlterMundus
7. Definition of a point : \tkzDefPoint or \tkzDefPoints 35
y \begin{tikzpicture}[scale=1]
\tkzInit[xmax=4,ymax=4]
\tkzDrawX\tkzDrawY
\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(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}
B C
\begin{tikzpicture}[scale=1]
\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)
A \end{tikzpicture}
tkz-euclide AlterMundus
7. Definition of a point : \tkzDefPoint or \tkzDefPoints 36
A
\begin{tikzpicture}[rotate=-30]
C \tkzDefPoint(2,3){A}
\tkzDefShiftPoint[A](0:4){B}
\tkzDefShiftPoint[A](30:4){C}
\tkzDrawSegments(A,B B,C C,A)
\tkzMarkSegments[mark=|](A,B A,C)
B \tkzDrawPoints(A,B,C)
\tkzLabelPoints[right](B,C)
\tkzLabelPoints[above left](A)
\end{tikzpicture}
B
\begin{tikzpicture}[scale=1]
\tkzDefPoint(2,3){A}
\tkzDefShiftPoint[A](30:3){B}
\tkzDefShiftPoint[A](-30:3){C}
A
\tkzDrawPolygon(A,B,C)
\tkzDrawPoints(A,B,C)
\tkzLabelPoints[right](B,C)
\tkzLabelPoints[above left](A)
C \tkzMarkSegments[mark=|](A,B A,C B,C)
\end{tikzpicture}
7.2.3. Parallelogram
There’s a simpler way
\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
7. Definition of a point : \tkzDefPoint or \tkzDefPoints 37
\begin{tikzpicture}[scale=.75]
\tkzDefPoints{0/0/A,4/0/B,4/3/C}
\tkzDrawPolygon(A,B,C)
\tkzDrawPoints(A,B,C)
\end{tikzpicture}
tkz-euclide AlterMundus
Part III.
Calculating
8. Auxiliary tools 39
Now that the fixed points are defined, we can with their references using macros from the package or macros that
you will create get new points. The calculations may not be apparent but they are usually done by the package.
You may need to use some mathematical constants, here is the list of constants defined by the package.
8. Auxiliary tools
8.1. Constants
tkz-euclide knows some constants, here is the list:
\def\tkzPhi{1.618034}
\def\tkzInvPhi{0.618034}
\def\tkzSqrtPhi{1.27202}
\def\tkzSqrTwo{1.414213}
\def\tkzSqrThree{1.7320508}
\def\tkzSqrFive{2.2360679}
\def\tkzSqrTwobyTwo{0.7071065}
\def\tkzPi{3.1415926}
\def\tkzEuler{2.71828182}
\tkzGetPoint{⟨ref⟩}
If the result is in tkzPointResult, you can access it with \tkzGetPoint.
\tkzGetPoints{⟨ref1⟩}{⟨ref2⟩}
The result is in tkzPointFirstResult and tkzPointSecondResult.
arguments default example
{ref1,ref2} no default \tkzGetPoints{M,N} It's the case with \tkzInterCC
If you need only the first or the second point you can also use :
\tkzGetFirstPoint{⟨ref1⟩}
tkz-euclide AlterMundus
9. Special points 40
\tkzGetSecondPoint{⟨ref2⟩}
Sometimes the results consist of a point and a dimension. You get the point with \tkzGetPoint and the dimen-
sion with \tkzGetLength.
\tkzGetLength{⟨name of a macro⟩}
9. Special points
\tkzDefMidPoint(⟨pt1,pt2⟩)
tkz-euclide AlterMundus
9. Special points 41
a+b a 1+√5
a = b =𝜙= 2
1+√5
One of the two solutions to the equation x2 − x − 1 = 0 is the golden ratio 𝜙, 𝜙 = 2 .
\tkzDefGoldenRatio(⟨pt1,pt2⟩)
\begin{tikzpicture}
A B C
\tkzDefPoints{0/0/A,6/0/C}
\tkzDefMidPoint(A,C) \tkzGetPoint{I}
%\tkzDefPointWith[linear,K=\tkzInvPhi](A,C)
\tkzDefGoldenRatio(A,C) \tkzGetPoint{B}
\tkzDrawSegments(A,C)
\tkzDrawPoints(A,B,C)
\tkzLabelPoints(A,B,C)
\end{tikzpicture}
\begin{tikzpicture}[scale=.6]
\tkzDefPoints{0/0/A,10/0/B}
\tkzDefGoldenRatio(A,B) \tkzGetPoint{C}
\tkzDefMidPoint(A,B) \tkzGetPoint{O_1}
\tkzDefMidPoint(A,C) \tkzGetPoint{O_2}
\tkzDefMidPoint(C,B) \tkzGetPoint{O_3}
\tkzDrawSemiCircles[fill=purple!15](O_1,B)
\tkzDrawSemiCircles[fill=teal!15](O_2,C O_3,B)
\end{tikzpicture}
It is also possible to use the following macro.
tkz-euclide AlterMundus
9. Special points 42
C
\begin{tikzpicture}[scale=.8]
\tkzDefPoints{2/1/A,5/3/B,0/6/C}
\tkzDefBarycentricPoint(A=1,B=1,C=1)
A′ \tkzGetPoint{G}
\tkzDefMidPoint(A,B) \tkzGetPoint{C'}
G
\tkzDefMidPoint(A,C) \tkzGetPoint{B'}
B′ \tkzDefMidPoint(C,B) \tkzGetPoint{A'}
B \tkzDrawPolygon(A,B,C)
\tkzDrawLines[add=0 and 1,new](A,G B,G C,G)
C′ \tkzDrawPoints[new](A',B',C',G)
\tkzDrawPoints(A,B,C)
\tkzLabelPoint[above right](G){$G$}
A
\tkzAutoLabelPoints[center=G](A,B,C)
\tkzLabelPoints[above right](A')
\tkzLabelPoints[below](B',C')
\end{tikzpicture}
\tkzDefSimilitudeCenter[⟨options⟩](⟨O,A⟩)(⟨O',B⟩)
tkz-euclide AlterMundus
9. Special points 43
\begin{tikzpicture}[scale=.7]
\tkzDefPoints{0/0/O,4/-5/A,3/0/B,5/-5/C}
\tkzDefSimilitudeCenter[int](O,B)(A,C)
\tkzGetPoint{I}
\tkzDefSimilitudeCenter[ext](O,B)(A,C)
\tkzGetPoint{J}
\tkzDefLine[tangent from = I](O,B)
\tkzGetPoints{D}{E}
\tkzDefLine[tangent from = I](A,C)
\tkzGetPoints{D'}{E'}
\tkzDefLine[tangent from = J](O,B)
\tkzGetPoints{F}{G}
\tkzDefLine[tangent from = J](A,C)
\tkzGetPoints{F'}{G'}
\tkzDrawCircles(O,B A,C)
\tkzDrawSegments[add = .5 and .5,new](D,D' E,E')
\tkzDrawSegments[add= 0 and 0.25,new](J,F J,G)
\tkzDrawPoints(O,A,I,J,D,E,F,G,D',E',F',G')
\end{tikzpicture}
\begin{tikzpicture}[scale=.6,rotate=90]
\tkzDefPoints{0/0/A,3/0/a,7/-1/B,5.5/-1/b}
\tkzDefPoints{5/-4/C,4.25/-4/c}
\tkzDrawCircles(A,a B,b C,c)
\tkzDefExtSimilitudeCenter(A,a)(B,b) \tkzGetPoint{I}
\tkzDefExtSimilitudeCenter(A,a)(C,c) \tkzGetPoint{J}
\tkzDefExtSimilitudeCenter(C,c)(B,b) \tkzGetPoint{K}
\tkzDefIntSimilitudeCenter(A,a)(B,b) \tkzGetPoint{I'}
\tkzDefIntSimilitudeCenter(A,a)(C,c) \tkzGetPoint{J'}
\tkzDefIntSimilitudeCenter(C,c)(B,b) \tkzGetPoint{K'}
\tkzDrawPoints(A,B,C,I,J,K,I',J',K')
\tkzDrawSegments[new](I,K A,I A,J B,I B,K C,J C,K)
\tkzDrawSegments[new](I,J' I',J I',K)
\end{tikzpicture}
tkz-euclide AlterMundus
9. Special points 44
\begin{tikzpicture}[rotate=60,scale=.5]
\tkzDefPoints{0/0/A,5/0/C}
\tkzDefGoldenRatio(A,C) \tkzGetPoint{B}
\tkzDefSimilitudeCenter(A,B)(C,B)\tkzGetPoint{J}
\tkzDefTangent[from = J](A,B) \tkzGetPoints{F}{G}
\tkzDefTangent[from = J](C,B) \tkzGetPoints{F'}{G'}
\tkzDrawCircles(A,B C,B)
\tkzDrawSegments[add= 0 and 0.25,cyan](J,F J,G)
\tkzDrawPoints(A,J,F,G,F',G')
\end{tikzpicture}
tkz-euclide AlterMundus
9. Special points 45
\tkzDefHarmonic[⟨options⟩](⟨pt1,pt2,pt3⟩) or (⟨pt1,pt2,k⟩)
A I B J
\begin{tikzpicture}
\tkzDefPoints{0/0/A,6/0/B,4/0/C}
\tkzDefHarmonic[ext](A,B,C) \tkzGetPoint{J}
\tkzDefHarmonic[int](A,B,J) \tkzGetPoint{I}
\tkzDrawPoints(A,B,I,J)
\tkzDrawLine[add=.5 and 1](A,B)
\tkzLabelPoints(A,B,I,J)
\end{tikzpicture}
A B C D
\begin{tikzpicture}[scale=1.25]
\tkzDefPoints{0/0/A,4/0/C,5/3/X}
\tkzDefLine[bisector](A,X,C) \tkzGetPoint{x}
\tkzInterLL(X,x)(A,C) \tkzGetPoint{B}
\tkzDefHarmonic[ext](A,C,B) \tkzGetPoint{D}
\tkzDrawPolygon(A,X,C)
\tkzDrawSegments(X,B C,D D,X)
\tkzDrawPoints(A,B,C,D,X)
\tkzMarkAngles[mark=s|](A,X,B B,X,C)
\tkzMarkRightAngle[size=.4,
fill=gray!20,
opacity=.3](B,X,D)
\tkzLabelPoints(A,B,C,D)
\tkzLabelPoints[above right](X)
\end{tikzpicture}
tkz-euclide AlterMundus
9. Special points 46
J A I B
\begin{tikzpicture}
\tkzDefPoints{0/0/A,6/0/B}
\tkzDefHarmonic(A,B,{1/2})\tkzGetPoints{I}{J}
\tkzDrawPoints(A,B,I,J)
\tkzDrawLine[add=1 and .5](A,B)
\tkzLabelPoints(A,B,I,J)
\end{tikzpicture}
\tkzDefEquiPoints[⟨local options⟩](⟨pt1,pt2⟩)
\begin{tikzpicture}
\tkzSetUpCompass[color=purple,line width=1pt]
C
\tkzDefPoints{0/1/A,5/2/B,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)
H B
\tkzDrawPoints[color=blue](A,B,C)
E \tkzDrawPoints[color=red](E,H)
A \tkzLabelPoints(E,H)
\tkzLabelPoints[color=blue](A,B,C)
\end{tikzpicture}
\tkzDefMidArc(⟨pt1,pt2,pt3⟩)
tkz-euclide AlterMundus
9. Special points 47
L
D
P1
P′2
P′1
Q
P2 S′
P
S
P3
A C B
tkz-euclide AlterMundus
10. Point on line or circle 48
\begin{tikzpicture}[scale=1]
\tkzDefPoints{0/0/A,10/0/B}
\tkzDefGoldenRatio(A,B) \tkzGetPoint{C}
\tkzDefMidPoint(A,B) \tkzGetPoint{O_1}
\tkzDefMidPoint(A,C) \tkzGetPoint{O_2}
\tkzDefMidPoint(C,B) \tkzGetPoint{O_3}
\tkzDefMidArc(O_3,B,C) \tkzGetPoint{P}
\tkzDefMidArc(O_2,C,A) \tkzGetPoint{Q}
\tkzDefMidArc(O_1,B,A) \tkzGetPoint{L}
\tkzDefPointBy[rotation=center C angle 90](B) \tkzGetPoint{c}
\tkzInterCC[common=B](P,B)(O_1,B) \tkzGetFirstPoint{P_1}
\tkzInterCC[common=C](P,C)(O_2,C) \tkzGetFirstPoint{P_2}
\tkzInterCC[common=C](Q,C)(O_3,C) \tkzGetFirstPoint{P_3}
\tkzInterLC[near](c,C)(O_1,A) \tkzGetFirstPoint{D}
\tkzInterLL(A,P_1)(C,D) \tkzGetPoint{P_1'}
\tkzDefPointBy[inversion = center A through D](P_2) \tkzGetPoint{P_2'}
\tkzDefCircle[circum](P_3,P_2,P_1) \tkzGetPoint{O_4}
\tkzInterLL(B,Q)(A,P) \tkzGetPoint{S}
\tkzDefMidPoint(P_2',P_1') \tkzGetPoint{o}
\tkzDefPointBy[inversion = center A through D](S) \tkzGetPoint{S'}
\tkzDrawArc[cyan,delta=0](Q,A)(P_1)
\tkzDrawArc[cyan,delta=0](P,P_1)(B)
\tkzDrawSemiCircles[teal](O_1,B O_2,C O_3,B)
\tkzDrawCircles[new](o,P O_4,P_1)
\tkzDrawSegments(A,B)
\tkzDrawSegments[cyan](A,P_1 A,S' A,P_2')
\tkzDrawSegments[purple](B,L C,P_2' B,Q B,L S',P_1')
\tkzDrawLines[add=0 and .8](B,P_2')
\tkzDrawLines[add=0 and .4](C,D)
\tkzDrawPoints(A,B,C,P,Q,P_3,P_2,P_1,P_1',D,P_2',L,S,S')
\tkzLabelPoints(A,B,C,P_3)
\tkzLabelPoints[above](P,Q,P_1)
\tkzLabelPoints[above right](P_2,P_2',D,S')
\tkzLabelPoints[above left](L,S)
\tkzLabelPoints[below left](P_1')
\end{tikzpicture}
\tkzDefPointOnLine[⟨local options⟩](⟨A,B⟩)
tkz-euclide AlterMundus
10. Point on line or circle 49
\tkzDefPointOnCircle[⟨local options⟩]
A
\begin{tikzpicture}[scale=.4]
\tkzDefPoints{0/0/P,5/0/Q,3/2/I}
E \tkzDefCircle[orthogonal from=P](Q,I)
\tkzGetFirstPoint{E}
\tkzDrawCircles(P,E Q,E)
P
D
Q
\tkzInterCC[common=E](P,E)(Q,E) \tkzGetFirstPoint{F}
C \tkzDefPointOnCircle[through = center P angle 80 point E]
\tkzGetPoint{A}
F
\tkzInterLC[common=E](A,E)(Q,E) \tkzGetFirstPoint{C}
\tkzInterLL(A,F)(C,Q) \tkzGetPoint{D}
\tkzDrawLines[add=0 and .75](P,Q)
\tkzDrawLines[add=0 and 2](A,E)
\tkzDrawSegments(P,E E,F F,C A,F C,D)
\tkzDrawPoints(P,Q,E,F,A,C,D)
\tkzLabelPoints(P,Q,F,C,D)
\tkzLabelPoints[above](E,A)
\end{tikzpicture}
tkz-euclide AlterMundus
10. Point on line or circle 50
\begin{tikzpicture}
C
\tkzDefPoints{0/0/A,4/0/B,0.8/3/C}
\tkzDefPointOnCircle[R = center B angle 90 radius 1]
J \tkzGetPoint{I}
\tkzDefCircle[circum](A,B,C)
\tkzGetPoints{G}{g}
G I \tkzDefPointOnCircle[through = center G angle 30 point g]
\tkzGetPoint{J}
\tkzDefCircle[R](B,1) \tkzGetPoint{b}
A B \tkzDrawCircle[teal](B,b)
\tkzDrawCircle(G,J)
\tkzDrawPoints(A,B,C,G,I,J)
\tkzAutoLabelPoints[center=G](A,B,C,J)
\tkzLabelPoints[below](G,I)
\end{tikzpicture}
tkz-euclide AlterMundus
11. Special points relating to a triangle 51
\tkzDefTriangleCenter[⟨local options⟩](⟨A,B,C⟩)
M9 This macro allows you to define the center of a triangle.. 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.
C
\begin{tikzpicture}
\tkzDefPoint(0,0){A}
\tkzDefPoint(5,1){B}
\tkzDefPoint(1,4){C}
\tkzDefTriangleCenter[ortho](B,C,A)
\tkzGetPoint{H}
\tkzDefSpcTriangle[orthic,name=H](A,B,C){a,b,c}
H
\tkzDrawPolygon(A,B,C)
\tkzDrawSegments[new](A,Ha B,Hb C,Hc)
B \tkzDrawPoints(A,B,C,H)
\tkzLabelPoint(H){$H$}
A \tkzLabelPoints[below](A,B)
\tkzLabelPoints[above](C)
\tkzMarkRightAngles(A,Ha,B B,Hb,C C,Hc,A)
\end{tikzpicture}
tkz-euclide AlterMundus
11. Special points relating to a triangle 52
\begin{tikzpicture}[scale=.75]
\tkzDefPoints{0/0/A,5/0/B,1/4/C}
\tkzDefTriangleCenter[centroid](A,B,C)
\tkzGetPoint{G}
\tkzDrawPolygon(A,B,C)
G
\tkzDrawLines[add = 0 and 2/3,new](A,G B,G C,G)
\tkzDrawPoints(A,B,C,G)
\tkzLabelPoint(G){$G$}
\end{tikzpicture}
\begin{tikzpicture}
\tkzDefPoints{0/1/A,3/2/B,1/4/C}
\tkzDefTriangleCenter[circum](A,B,C)
\tkzGetPoint{O}
\tkzDrawPolygon(A,B,C)
O \tkzDrawCircle(O,A)
\tkzDrawPoints(A,B,C,O)
\tkzLabelPoint(O){$O$}
\end{tikzpicture}
11.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 A, for example) and the
external bisectors of the other two. The center of this excircle is called the excenter relative to the vertex A, or the
excenter of A. 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.
(Article on Wikipedia)
We get the center of the inscribed circle of the triangle. The result is of course in tkzPointResult. We can retrieve
it with \tkzGetPoint.
\begin{tikzpicture}
\tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
\tkzDefTriangleCenter[in](A,B,C)
\tkzGetPoint{I}
\tkzDrawLines(A,B B,C C,A)
\tkzDefCircle[in](A,B,C) \tkzGetPoints{I}{i}
\tkzDrawCircle(I,i)
\tkzDrawPoint[red](I)
\tkzDrawPoints(A,B,C)
I
\tkzLabelPoint(I){$I$}
\end{tikzpicture}
11.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
11. Special points relating to a triangle 53
triangle’s sides.
(Article on Wikipedia)
We get the center of an inscribed circle of the triangle. The result is of course in tkzPointResult. We can retrieve
it with \tkzGetPoint.
\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}
\tkzDrawPolygon(A,B,C)
Jc \tkzDrawCircle[new](J_c,Tc)
\tkzDrawLines[add=1.5 and 0](A,C B,C)
\tkzDrawPoints(A,B,C,J_c)
\tkzLabelPoints(J_c)
\end{tikzpicture}
B
\begin{tikzpicture}[scale=1.2,rotate=90]
\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}
MA EB \tkzDefSpcTriangle[ortho,name=H](A,B,C){_A,_B,_C}
\tkzDrawPolygon(A,B,C)
MC
\tkzDrawCircle[new](N,E_A)
\tkzDrawSegments[new](A,H_A B,H_B C,H_C)
HA \tkzDrawPoints(A,B,C,N,H)
N \tkzDrawPoints[new](M_A,M_B,M_C)
\tkzDrawPoints( H_A,H_B,H_C)
\tkzDrawPoints[green](E_A,E_B,E_C)
\tkzAutoLabelPoints[center=N,
H
C EC HC font=\scriptsize](A,B,C,M_A,M_B,M_C,H_A,H_B,H_C,%
MB EA
E_A,E_B,E_C)
HB \tkzLabelPoints[font=\scriptsize](H,N)
A \tkzMarkSegments[mark=s|,size=3pt,
color=blue,line width=1pt](B,E_B E_B,H)
\end{tikzpicture}
tkz-euclide AlterMundus
11. Special points relating to a triangle 54
C
\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}
K I 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}
A B \tkzDrawPolygon(A,B,C)
\tkzDrawLines[add = 0 and 2/3,new](A,K B,K C,K)
\tkzDrawSegments[color=cyan](A,Ma B,Mb C,Mc)
\tkzDrawSegments[color=green](A,Ia B,Ib C,Ic)
\tkzDrawPoints(A,B,C,K,G,I)
\tkzLabelPoints[font=\scriptsize](A,B,K,G,I)
\tkzLabelPoints[above,font=\scriptsize](C)
\end{tikzpicture}
C
\begin{tikzpicture}
\tkzDefPoints{0/0/A,6/0/B,5/5/C}
\tkzDefSpcTriangle[medial](A,B,C){Ma,Mb,Mc}
\tkzDefTriangleCenter[centroid](A,B,C)
\tkzGetPoint{G}
\tkzDefTriangleCenter[spieker](A,B,C)
\tkzGetPoint{Sp}
Mb Ma \tkzDrawPolygon[](A,B,C)
\tkzDrawPolygon[new](Ma,Mb,Mc)
Sp \tkzDefCircle[in](Ma,Mb,Mc) \tkzGetPoints{I}{i}
\tkzDrawCircle(I,i)
\tkzDrawPoints(B,C,A,Sp,Ma,Mb,Mc)
\tkzAutoLabelPoints[center=G,dist=.3](Ma,Mb)
\tkzLabelPoints[right](Sp)
A Mc B
\tkzLabelPoints[below](A,B,Mc)
\tkzLabelPoints[above](C)
\end{tikzpicture}
tkz-euclide AlterMundus
11. Special points relating to a triangle 55
\begin{tikzpicture}
\tkzDefPoints{0/0/B,3.6/0/C,2.8/4/A}
A \tkzDefTriangleCenter[gergonne](A,B,C)
\tkzGetPoint{Ge}
\tkzDefSpcTriangle[intouch](A,B,C){C_1,C_2,C_3}
\tkzDefCircle[in](A,B,C) \tkzGetPoints{I}{i}
\tkzDrawLines[add=.25 and .25,teal](A,B A,C B,C)
C3 \tkzDrawSegments[new](A,C_1 B,C_2 C,C_3)
C2 \tkzDrawPoints(A,...,C,C_1,C_2,C_3)
\tkzDrawPoints[red](Ge)
Ge \tkzLabelPoints(B,C,C_1,Ge)
\tkzLabelPoints[above](A,C_2,C_3)
\end{tikzpicture}
B C1 C
tkz-euclide AlterMundus
12. Definition of points by transformation 56
\begin{tikzpicture}[scale=.5]
Jb
\tkzDefPoints{0/0/A,6/0/B,4/6/C}
Ja
\tkzDefSpcTriangle[centroid](A,B,C){Ma,Mb,Mc}
\tkzDefSpcTriangle[ex](A,B,C){Ja,Jb,Jc}
\tkzDefSpcTriangle[extouch](A,B,C){Ta,Tb,Tc}
Mb \tkzDefTriangleCenter[mittenpunkt](A,B,C)
Ma
\tkzGetPoint{Mi}
Mi
\tkzDrawPoints[new](Ma,Mb,Mc,Ja,Jb,Jc)
\tkzClipBB
Mc \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[new](Ja,Ta Jb,Tb Jc,Tc)
Jc \tkzDrawPoints(B,C,A)
Jc \tkzDrawPoints[new](Mi)
\tkzLabelPoints(Mi)
\tkzLabelPoints[left](Mb)
\tkzLabelPoints[new](Ma,Mc,Jb,Jc)
\tkzLabelPoints[above left](Ja,Jc)
\end{tikzpicture}
Ge
G
M
A C
\begin{tikzpicture}
\tkzDefPoints{0/0/A,2/2/B,8/0/C}
\tkzDefTriangleCenter[gergonne](A,B,C) \tkzGetPoint{Ge}
\tkzDefTriangleCenter[centroid](A,B,C)
\tkzGetPoint{G}
\tkzDefTriangleCenter[mittenpunkt](A,B,C)
\tkzGetPoint{M}
\tkzDrawLines[add=.25 and .25,teal](A,B A,C B,C)
\tkzDrawLines[add=.25 and .25,new](Ge,M)
\tkzDrawPoints(A,...,C)
\tkzDrawPoints[red,size=2](G,M,Ge)
\tkzLabelPoints(A,...,C,M,G,Ge)
\tkzMarkSegment[mark=s||](Ge,G)
\tkzMarkSegment[mark=s|](G,M)
\end{tikzpicture}
– translation;
– homothety;
tkz-euclide AlterMundus
12. Definition of points by transformation 57
– central symmetry;
– orthogonal projection;
12.1. \tkzDefPointBy
The choice of transformations is made through the options. There are two macros, one for the transformation
of a single point \tkzDefPointBy and the other for the transformation of a list of points \tkzDefPointsBy. By
default the image of A is A′ . For example, we’ll write:
\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.
arguments definition examples
pt existing point name (A)
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)
rotation with nodes = center #1 from #2 to #3 [center O from A to B](E)
inversion = center #1 through #2 [inversion =center O through A](E)
inversion negative = center #1 through #2 ...
12.1.1. translation
\begin{tikzpicture}[>=latex]
B
\tkzDefPoints{0/0/A,3/1/B,3/0/C}
\tkzDefPointBy[translation= from B to A](C)
A C \tkzGetPoint{D}
\tkzDrawPoints[teal](A,B,C,D)
D
\tkzLabelPoints[color=teal](A,B,C,D)
\tkzDrawSegments[orange,->](A,B D,C)
\end{tikzpicture}
tkz-euclide AlterMundus
12. Definition of points by transformation 58
\begin{tikzpicture}[scale=.75]
\tkzDefPoints{-2/-2/A,-1/-1/C,-4/2/D,-4/0/O}
\tkzDrawCircle(O,A)
\tkzDefPointBy[reflection = over C--D](A)
\tkzGetPoint{A'}
\tkzDefPointBy[reflection = over C--D](O)
\tkzGetPoint{O'}
\tkzDrawCircle(O',A')
\tkzDrawLine[add= .5 and .5](C,D)
\tkzDrawPoints(C,D,O,O')
\end{tikzpicture}
\begin{tikzpicture}
\tkzDefPoints{0/1/A,5/3/B,3/4/C}
\tkzDefLine[bisector](B,A,C) \tkzGetPoint{a}
a \tkzDrawLine[add=0 and 0,color=magenta!50 ](A,a)
\tkzDefPointBy[homothety=center A ratio .5](a)
\tkzGetPoint{a'}
k
\tkzDefPointBy[projection = onto A--B](a')
a′
\tkzGetPoint{k'}
\tkzDefPointBy[projection = onto A--B](a)
\tkzGetPoint{k}
A \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
12. Definition of points by transformation 59
12.1.4. projection
B
\begin{tikzpicture}[scale=1.25]
\tkzDefPoints{0/0/A,0/4/B}
\tkzDefTriangle[pythagore](B,A) \tkzGetPoint{C}
\tkzDefLine[bisector](B,C,A) \tkzGetPoint{c}
\tkzInterLL(C,c)(A,B) \tkzGetPoint{D}
G \tkzDefPointBy[projection=onto B--C](D)
E \tkzGetPoint{G}
\tkzInterLC(C,D)(D,A) \tkzGetPoints{E}{F}
D \tkzDrawPolygon(A,B,C)
\tkzDrawSegment(C,D)
\tkzDrawCircle(D,A)
F \tkzDrawSegment[new](D,G)
\tkzMarkRightAngle[fill=orange!10](D,G,B)
\tkzDrawPoints(A,C,F) \tkzLabelPoints(A,C,F)
C A
\tkzDrawPoints(B,D,E,G)
\tkzLabelPoints[above right](B,D,E)
\tkzLabelPoints[above](G)
\end{tikzpicture}
12.1.5. symmetry
\begin{tikzpicture}[scale=1]
\tkzDefPoints{2/-1/A,2/2/B,0/0/O}
B
\tkzDefPointsBy[symmetry=center O](B,A){}
\tkzDrawLine(A,A')
\tkzDrawLine(B,B')
A′ \tkzMarkAngle[mark=s,arc=lll,
60∘ size=1.5,mkcolor=red](A,O,B)
O \tkzLabelAngle[pos=2,circle,draw,
fill=blue!10,font=\scriptsize](A,O,B){$60^{\circ}$}
\tkzDrawPoints(A,B,O,A',B')
A \tkzLabelPoints(B,B')
\tkzLabelPoints[below](A,O,A')
B′ \end{tikzpicture}
tkz-euclide AlterMundus
12. Definition of points by transformation 60
12.1.6. rotation
\begin{tikzpicture}[scale=0.75]
\tkzDefPoints{0/0/A,5/0/B}
\tkzDrawSegment(A,B)
D \tkzDefPointBy[rotation=center A angle 60](B)
\tkzGetPoint{C}
\tkzDefPointBy[symmetry=center C](A)
\tkzGetPoint{D}
\tkzDrawSegment(A,tkzPointResult)
\tkzDrawLine(B,D)
\tkzDrawArc(A,B)(C) \tkzDrawArc(B,C)(A)
\tkzDrawArc(C,D)(D)
C
\tkzMarkRightAngle(D,B,A)
\tkzDrawPoints(A,B)
\tkzLabelPoints(A,B)
\tkzLabelPoints[above](C)
\tkzLabelPoints[right](D)
\end{tikzpicture}
A B
\begin{tikzpicture}
\tkzDefPoint["$A$" left](1,5){A}
C
\tkzDefPoint["$B$" right](4,3){B}
\tkzDefPointBy[rotation in rad= center A angle pi/3](B)
\tkzGetPoint{C}
A \tkzDrawSegment(A,B)
\tkzDrawPoints(A,B,C)
\tkzCompass(A,C)
\tkzCompass(B,C)
\tkzLabelPoints(C)
B \end{tikzpicture}
\begin{tikzpicture}
D
\tkzDefPoint(0,0){O}
\tkzDefPoint(0:2){A}
\tkzDefPoint(40:2){B}
\tkzDefPoint(20:4){C}
B \tkzDrawLine(O,A)
C
\tkzDefPointBy[rotation with nodes%
=center O from A to B](C)
\tkzGetPoint{D}
A \tkzDrawPoints(A,B,C,D)
\tkzDrawCircle(O,A)
\tkzLabelPoints(A,C,D)
\tkzLabelPoints[above](B)
\end{tikzpicture}
tkz-euclide AlterMundus
12. Definition of points by transformation 61
12.1.9. inversion
Inversion is the process of transforming points to a corresponding set of points known as their inverse points.
Two points P and P′ are said to be inverses with respect to an inversion circle having inversion center O and
inversion radius k if P′ is the perpendicular foot of the altitude of OQP, where Q is a point on the circle such that
OQ is perpendicular to PQ.
The quantity k2 is known as the circle power (Coxeter 1969, p. 81).
(https://mathworld.wolfram.com/Inversion.html)
Some propositions :
– The inverse of a line (not through the center of inversion) is a circle through the center of inversion.
Explanation:
Directly (Center O power=k2 = OA2 = OP × OP′ )
\begin{tikzpicture}[scale=.5]
\tkzDefPoints{4/0/A,6/0/P,0/0/O}
\tkzDefPointBy[inversion = center O through A](P)
\tkzGetPoint{P'}
O P′ A P \tkzDrawSegments(O,P)
\tkzDrawCircle(O,A)
\tkzLabelPoints[above right,font=\scriptsize](O,A,P,P')
\tkzDrawPoints(O,A,P,P')
\end{tikzpicture}
polar
\begin{tikzpicture}[scale=.5]
inversion circle \tkzDefPoints{4/0/A,6/0/P,0/0/O}
\tkzDefLine[orthogonal=through P](O,P)
\tkzGetPoint{L}
Q
\tkzDefLine[tangent from = P](O,A) \tkzGetPoints{R}{Q}
\tkzDefPointBy[projection=onto O--A](Q) \tkzGetPoint{P'}
k
\tkzDrawSegments(O,P O,A)
P \tkzDrawSegments[new](O,P O,Q P,Q Q,P')
inversion center
O P′
\tkzDrawCircle(O,A)
\tkzDrawLines[add=1 and 0](P,L)
\tkzLabelPoints[below,font=\scriptsize](O,P')
\tkzLabelPoints[above right,font=\scriptsize](P,Q)
\tkzDrawPoints(O,P) \tkzDrawPoints[new](Q,P')
\tkzLabelSegment[above](O,Q){$k$}
\tkzMarkRightAngles(A,P',Q P,Q,O)
\tkzLabelCircle[above=.5cm,
font=\scriptsize](O,A)(100){inversion circle}
\tkzLabelPoint[left,font=\scriptsize](O){inversion center}
\tkzLabelPoint[left,font=\scriptsize](L){polar}
\end{tikzpicture}
tkz-euclide AlterMundus
12. Definition of points by transformation 62
\begin{tikzpicture}[scale=.5]
\tkzDefPoints{0/0/O,3/0/I,4/3/P,6/-3/Q}
\tkzDrawCircle(O,I)
\tkzDefPointBy[projection= onto P--Q](O) \tkzGetPoint{A}
\tkzDefPointBy[inversion = center O through I](A)
\tkzGetPoint{A'}
\tkzDefPointBy[inversion = center O through I](P)
\tkzGetPoint{P'}
\tkzDefCircle[diameter](O,A')\tkzGetPoint{o}
\tkzDrawCircle[new](o,A')
\tkzDrawLines[add=.25 and .25,red](P,Q)
\tkzDrawLines[add=.25 and .25](O,A)
\tkzDrawSegments(O,P)
\tkzDrawPoints(A,P,O) \tkzDrawPoints[new](A',P')
\end{tikzpicture}
\begin{tikzpicture}[scale=.8]
\tkzDefPoints{0/0/O,3/0/I,3/2/P,3/-2/Q}
\tkzDrawCircle(O,I)
\tkzDefPointBy[projection= onto P--Q](O) \tkzGetPoint{A}
\tkzDefPointBy[inversion = center O through I](A)
\tkzGetPoint{A'}
\tkzDefPointBy[inversion = center O through I](P)
\tkzGetPoint{P'}
\tkzDefCircle[diameter](O,A')\tkzGetPoint{o}
\tkzDrawCircle[new](o,A')
\tkzDrawLines[add=.25 and .25,red](P,Q)
\tkzDrawLines[add=.25 and .25](O,A)
\tkzDrawSegments(O,P)
\tkzDrawPoints(A,P,O) \tkzDrawPoints[new](A',P')
\end{tikzpicture}
\begin{tikzpicture}[scale=.8]
\tkzDefPoints{0/0/O,3/0/I,2/1/P,2/-2/Q}
\tkzDrawCircle(O,I)
\tkzDefPointBy[projection= onto P--Q](O) \tkzGetPoint{A}
\tkzDefPointBy[inversion = center O through I](A)
\tkzGetPoint{A'}
\tkzDefPointBy[inversion = center O through I](P)
\tkzGetPoint{P'}
\tkzDefCircle[diameter](O,A')
\tkzDrawCircle[new](I,A')
\tkzDrawLines[add=.25 and .75,red](P,Q)
\tkzDrawLines[add=.25 and .25](O,A')
\tkzDrawSegments(O,P')
\tkzDrawPoints(A,P,O) \tkzDrawPoints[new](A',P')
\end{tikzpicture}
tkz-euclide AlterMundus
12. Definition of points by transformation 63
\begin{tikzpicture}[scale=.7]
\tkzDefPoints{0/0/O,3/2/A,2/1/P}
\tkzDefLine[tangent from = O](A,P) \tkzGetPoints{T}{X}
\tkzDefPointsBy[homothety = center O%
M′ ratio 1.25](A,P,T){}
\tkzInterCC(A,P)(A',P') \tkzGetPoints{C}{D}
T′
\tkzCalcLength(A,P)
T
\tkzGetLength{rAP}
M
\tkzDefPointOnCircle[R=center A angle 190 radius \rAP]
P′ \tkzGetPoint{M}
P
\tkzDefPointBy[inversion = center O through C](M)
O
\tkzGetPoint{M'}
\tkzDrawCircles[new](A,P A',P')
\tkzDrawCircle(O,C)
\tkzDrawLines[add=0 and .5](O,T' O,A' O,M' O,P')
\tkzDrawPoints(A,A',P,P',O,T,T',M,M')
\tkzLabelPoints(O,T,T',M,M')
\tkzLabelPoints[below](P,P')
\end{tikzpicture}
C
\begin{tikzpicture}[scale=1]
\tkzDefPoints{0/0/A,5/1/B,3/6/C}
\tkzDefTriangleCenter[in](A,B,C) \tkzGetPoint{O}
\tkzDefPointBy[projection= onto A--C](O) \tkzGetPoint{b}
\tkzDefPointBy[projection= onto A--C](O) \tkzGetPoint{b}
\tkzDefPointBy[projection= onto B--C](O) \tkzGetPoint{a}
\tkzDefPointBy[projection= onto A--B](O) \tkzGetPoint{c}
\tkzDefPointsBy[inversion = center O through b](a,b,c)%
{Ia,Ib,Ic}
\tkzDefMidPoint(O,Ia) \tkzGetPoint{Ja}
\tkzDefMidPoint(O,Ib) \tkzGetPoint{Jb}
O \tkzDefMidPoint(O,Ic) \tkzGetPoint{Jc}
\tkzInterCC(Ja,O)(Jb,O) \tkzGetPoints{O}{x}
B \tkzInterCC(Ja,O)(Jc,O) \tkzGetPoints{y}{O}
\tkzInterCC(Jb,O)(Jc,O) \tkzGetPoints{O}{z}
\tkzDrawPolygon(A,B,C)
A \tkzDrawCircle(O,b)\tkzDrawPoints(A,B,C,O)
\tkzDrawCircles[dashed,gray](Ja,y Jb,x Jc,z)
\tkzDrawArc[line width=1pt,orange,delta=0](Jb,x)(z)
\tkzDrawArc[line width=1pt,orange,delta=0](Jc,z)(y)
\tkzDrawArc[line width=1pt,orange,delta=0](Ja,y)(x)
\tkzLabelPoint[below](A){$A$}\tkzLabelPoint[above](C){$C$}
\tkzLabelPoint[right](B){$B$}\tkzLabelPoint[below](O){$O$}
\end{tikzpicture}
tkz-euclide AlterMundus
12. Definition of points by transformation 64
\begin{tikzpicture}[scale=1]
\tkzDefPoint(0,0){O}\tkzDefPoint(1,0){A}
\tkzDefPoint(-1.5,-1.5){z1}
O A \tkzDefPoint(1.5,-1.25){z2}
Z1
J I \tkzDefCircle[orthogonal through=z1 and z2](O,A)
\tkzGetPoint{c}
z2 \tkzDrawCircle[new](c,z1)
z1
c
\tkzDefPointBy[inversion = center O through A](z1)
\tkzGetPoint{Z1}
\tkzInterCC(O,A)(c,z1) \tkzGetPoints{I}{J}
\tkzDefPointBy[inversion = center O through A](I)
\tkzGetPoint{I'}
\tkzDrawCircle(O,A)
\tkzDrawPoints(O,A,z1,z2)
\tkzDrawPoints[new](c,Z1,I,J)
\tkzLabelPoints(O,A,z1,z2,c,Z1,I,J)
\end{tikzpicture}
For a more complex example see Pappus 47.25
tkz-euclide AlterMundus
12. Definition of points by transformation 65
The image is B′ .
arguments examples
(⟨list of points⟩){⟨list of pts⟩} (A,B){E,F} E,F images of A, B
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
rotation with nodes = center #1 from #2 to #3 [center O from A to B](E){F}
inversion = center #1 through #2 [inversion = center O through A](E){F}
inversion negative = center #1 through #2 ...
C′
\begin{tikzpicture}[>=latex]
\tkzDefPoints{0/0/A,3/0/B,3/1/A',1/2/C}
\tkzDefPointsBy[translation= from A to A'](B,C){}
C \tkzDrawPolygon(A,B,C)
\tkzDrawPolygon[new](A',B',C')
\tkzDrawPoints(A,B,C)
A′ B′
\tkzDrawPoints[new](A',B',C')
\tkzLabelPoints(A,B,A',B')
\tkzLabelPoints[above](C,C')
A B \tkzDrawSegments[color = gray,->,
style=dashed](A,A' B,B' C,C')
\end{tikzpicture}
tkz-euclide AlterMundus
13. Defining points using a vector 66
\begin{tikzpicture}[scale=0.4]
\tkzDefPoint(-4,0){I}
\tkzDefPoint(4,0){J}
\tkzDefPoint(0,0){O}
\tkzInterCC(J,O)(O,J) \tkzGetPoints{L}{H}
\tkzInterCC(I,O)(O,I) \tkzGetPoints{K}{G}
\tkzInterLL(I,K)(J,H) \tkzGetPoint{M}
\tkzInterLL(I,G)(J,L) \tkzGetPoint{N}
\tkzDefPointsBy[symmetry=center J](L,H){D,E}
\tkzDefPointsBy[symmetry=center I](G,K){C,F}
\begin{scope}[line style/.style = {very thin,teal}]
\tkzDrawLines[add=1.5 and 1.5](I,K I,G J,H J,L)
\tkzDrawLines[add=.5 and .5](I,J)
\tkzDrawCircles(O,I I,O J,O)
\tkzDrawArc[delta=0,orange](N,D)(C)
\tkzDrawArc[delta=0,orange](M,F)(E)
\tkzDrawArc[delta=0,orange](J,E)(D)
\tkzDrawArc[delta=0,orange](I,C)(F)
\end{scope}
\end{tikzpicture}
13.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 K option allows to obtain multiples.
\tkzDefPointWith(⟨pt1,pt2⟩)
tkz-euclide AlterMundus
13. Defining points using a vector 67
A
\begin{tikzpicture}[scale=1.2,
vect/.style={->,shorten >=1pt,>=latex'}]
\tkzDefPoint(2,3){A} \tkzDefPoint(4,2){B}
B \tkzDefPoint(0,1){C}
\tkzDefPointWith[colinear=at C](A,B)
\tkzGetPoint{D}
C \tkzDrawPoints[new](A,B,C,D)
\tkzLabelPoints[above right=3pt](A,B,C,D)
\tkzDrawSegments[vect](A,B C,D)
D \end{tikzpicture}
tkz-euclide AlterMundus
13. Defining points using a vector 68
\begin{tikzpicture}[scale=.75]
\tkzDefPoints{0/0/B,3.6/0/C,1.5/4/A}
\tkzDefSpcTriangle[ortho](A,B,C){Ha,Hb,Hc}
\tkzDefTriangleCenter[ortho](A,B,C) \tkzGetPoint{H}
\tkzDefSquare(A,C) \tkzGetPoints{R}{S}
\tkzDefSquare(B,A) \tkzGetPoints{M}{N}
\tkzDefSquare(C,B) \tkzGetPoints{P}{Q}
\tkzDefPointWith[colinear= at M](A,S) \tkzGetPoint{A'}
\tkzDefPointWith[colinear= at P](B,N) \tkzGetPoint{B'}
\tkzDefPointWith[colinear= at Q](C,R) \tkzGetPoint{C'}
\tkzDefPointBy[projection=onto P--Q](Ha) \tkzGetPoint{Pa}
\tkzDrawPolygon[teal,thick](A,C,R,S)\tkzDrawPolygon[teal,thick](A,B,N,M)
\tkzDrawPolygon[teal,thick](C,B,P,Q)
\tkzDrawPoints[teal,size=2](A,B,C,Ha,Hb,Hc,A',B',C')
\tkzDrawSegments[ultra thin,red](M,A' A',S P,B' B',N Q,C' C',R B,S C,M C,N B,R A,P A,Q)
\tkzDrawSegments[ultra thin,teal, dashed](A,Ha B,Hb C,Hc)
\tkzDefPointBy[rotation=center A angle 90](S) \tkzGetPoint{S'}
\tkzDrawSegments[ultra thin,teal,dashed](B,S' A,S' A,A' M,S' B',Q P,C' M,S Ha,Pa)
\tkzDrawArc(A,S)(S')
\end{tikzpicture}
tkz-euclide AlterMundus
13. Defining points using a vector 69
C
\begin{tikzpicture}[scale=1.2,
vect/.style={->,shorten >=1pt,>=latex'}]
\tkzDefPoints{2/3/A,4/2/B}
\tkzDefPointWith[orthogonal,K=1](A,B)
\tkzGetPoint{C}
\tkzDrawPoints[color=red](A,B,C)
\tkzLabelPoints[right=3pt](B,C)
A \tkzLabelPoints[below=3pt](A)
\tkzDrawSegments[vect](A,B A,C)
B \tkzMarkRightAngle(B,A,C)
\end{tikzpicture}
\begin{tikzpicture}[scale=.75]
\tkzDefPoints{0/0/A,6/0/B}
C \tkzDefMidPoint(A,B)
\tkzGetPoint{I}
\tkzDefPointWith[orthogonal,K=-.75](B,A)
F \tkzGetPoint{C}
\tkzInterLC(B,C)(B,I)
E \tkzGetPoints{D}{F}
\tkzDuplicateSegment(B,F)(A,F)
\tkzGetPoint{E}
A M B
\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)
\tkzLabelPoints[above](E)
\end{tikzpicture}
tkz-euclide AlterMundus
13. Defining points using a vector 70
\begin{tikzpicture}[scale=1.2,
vect/.style={->,shorten >=1pt,>=latex'}]
\tkzDefPoints{2/1/A,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}
C
\begin{tikzpicture}[scale=1.2,
vect/.style={->,shorten >=1pt,>=latex'}]
\tkzDefPoints{2/3/A,5/1/B}
\tkzDefPointWith[orthogonal normed,K=2](A,B)
\tkzGetPoint{C}
A \tkzDrawPoints[color=red](A,B,C)
\tkzDefCircle[R](A,2) \tkzGetPoint{a}
\tkzDrawCircle(A,a)
\tkzDrawSegments[vect](A,B A,C)
\tkzMarkRightAngle[fill=gray!20](B,A,C)
\tkzLabelPoints[above=3pt](A,B,C)
B \end{tikzpicture}
A
\begin{tikzpicture}[scale=1.2]
\tkzDefPoints{1/3/A,4/2/B}
C \tkzDefPointWith[linear,K=0.5](A,B)
B \tkzGetPoint{C}
\tkzDrawPoints[color=red](A,B,C)
\tkzDrawSegment(A,B)
\tkzLabelPoints[above right=3pt](A,B,C)
\end{tikzpicture}
tkz-euclide AlterMundus
14. Straight lines 71
A
\begin{tikzpicture}[scale=1.2]
C \tkzDefPoints{1/3/A,4/2/B}
1 \tkzDefPointWith[linear normed](A,B)
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}
13.2. \tkzGetVectxy
Retrieving the coordinates of a vector.
\tkzGetVectxy(⟨A, B⟩){⟨text⟩}
\begin{tikzpicture}
B
\tkzDefPoints{0/0/O,1/1/A,4/2/B}
\tkzGetVectxy(A,B){v}
A V \tkzDefPoint(\vx,\vy){V}
\tkzDrawSegment[->,color=red](O,V)
\tkzDrawSegment[->,color=blue](A,B)
O
\tkzDrawPoints(A,B,O)
\tkzLabelPoints(A,B,O,V)
\end{tikzpicture}
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. I used the term ”mediator” to designate the perpendicular bisector line at the middle of a line segment.
arguments example explanation
(⟨pt1,pt2⟩) [mediator](⟨A,B⟩) mediator of the segment [A, B]
(⟨pt1,pt2,pt3⟩) [bisector](⟨A,B,C⟩) ̂
bisector of ABC
(⟨pt1,pt2,pt3⟩) [altitude](⟨A,B,C⟩) altitude from B
(⟨pt1⟩) [tangent at=A](⟨O⟩) tangent at A on the circle center O
(⟨pt1,pt2⟩) [tangent from=A](⟨O,B⟩) circle center O through B
tkz-euclide AlterMundus
14. Straight lines 72
\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=teal!20](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
14. Straight lines 73
\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[new,dashed,add= 0 and 3](A,a)
\end{tikzpicture}
tkz-euclide AlterMundus
14. Straight lines 74
\begin{tikzpicture}
\tkzDefPoints{-1.5/-0.25/A,1/-0.75/B,-0.7/1/C}
\tkzDrawLine(A,B)
(d2 ) \tkzLabelLine[pos=1.25,below left](A,B){$(d_1)$}
\tkzDrawPoints(A,B,C)
\tkzDefLine[orthogonal=through C](B,A) \tkzGetPoint{c}
\tkzDrawLine(C,c)
(d1 )
\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}
C
\begin{tikzpicture}
\tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
\tkzDefLine[altitude](A,B,C) \tkzGetPoint{b}
a \tkzDefLine[altitude](B,C,A) \tkzGetPoint{c}
\tkzDefLine[altitude](B,A,C) \tkzGetPoint{a}
\tkzDrawPolygon(A,B,C)
\tkzDrawPoints[blue](a,b,c)
b
\tkzDrawSegments[blue](A,a B,b C,c)
\tkzLabelPoints(A,B,c)
\tkzLabelPoints[above](C,a)
\tkzLabelPoints[above left](b)
A c B \end{tikzpicture}
C
\begin{tikzpicture}[scale=.75]
C
\tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
\tkzDefLine[euler](A,B,C)
\tkzGetPoints{h}{e}
\tkzDefTriangleCenter[circum](A,B,C)
\tkzGetPoint{o}
e
o \tkzDrawPolygon[teal](A,B,C)
h \tkzDrawPoints[red](A,B,C,h,e,o)
\tkzDrawLine[add= 2 and 2](h,e)
A B \tkzLabelPoints(A,B,C,h,e,o)
\tkzLabelPoints[above](C)
\end{tikzpicture}
tkz-euclide AlterMundus
14. Straight lines 75
\begin{tikzpicture}[scale=.75]
\tkzDefPoint(0,0){O}
\tkzDefPoint(6,6){E}
\tkzDefRandPointOn[circle=center O radius 3]
\tkzGetPoint{A}
\tkzDrawSegment(O,A)
\tkzDrawCircle(O,A)
\tkzDefLine[tangent at=A](O)
\tkzGetPoint{h}
\tkzDrawLine[add = 4 and 3](A,h)
\tkzMarkRightAngle[fill=teal!30](O,A,h)
\end{tikzpicture}
14.1.10. Choice of contact point with tangents passing through an external point option
tangent from
The tangent is not drawn. With option at, a point of the tangent is given by tkzPointResult. With option
from you get two points of the circle with tkzFirstPointResult and tkzSecondPointResult. You can choose
between these two points by comparing the angles formed with the outer point, the contact point and the center.
The two possible angles have different directions. Angle counterclockwise refers to tkzFirstPointResult.
\begin{tikzpicture}[scale=1,rotate=-30]
270∘
\tkzDefPoints{0/0/Q,0/2/A,6/-1/O}
S \tkzDefLine[tangent from = O](Q,A)
N
\tkzGetPoints{R}{S}
\tkzInterLC[near](O,Q)(Q,A)
\tkzGetPoints{M}{N}
Q \tkzDrawCircle(Q,M)
\tkzDrawSegments[new,add = 0 and .2](O,R O,S)
\tkzDrawSegments[gray](N,O R,Q S,Q)
90∘ M \tkzDrawPoints(O,Q,R,S,M,N)
\tkzMarkAngle[gray,-stealth,size=1](O,R,Q)
R
\tkzFindAngle(O,R,Q) \tkzGetAngle{an}
\tkzLabelAngle(O,R,Q){%
$\pgfmathprintnumber{\an}^\circ$}
\tkzMarkAngle[gray,-stealth,size=1](O,S,Q)
O
\tkzFindAngle(O,S,Q) \tkzGetAngle{an}
\tkzLabelAngle(O,S,Q){%
$\pgfmathprintnumber{\an}^\circ$}
\tkzLabelPoints(Q,O,M,N,R)
\tkzLabelPoints[above,text=red](S)
\end{tikzpicture}
tkz-euclide AlterMundus
14. Straight lines 76
\begin{tikzpicture}[scale=.8]
\tkzDefPoints{0/0/c,1/0/d,3/0/a0}
\def\tkzRadius{1}
\tkzDrawCircle(c,d)
\foreach \an in {0,10,...,350}{
\tkzDefPointBy[rotation=center c angle \an](a0)
\tkzGetPoint{a}
\tkzDefLine[tangent from = a](c,d)
\tkzGetPoints{e}{f}
\tkzDrawLines(a,f a,e)
\tkzDrawSegments(c,e c,f)}
\end{tikzpicture}
\begin{tikzpicture}[scale=.6]
\tkzDefPoint(100:8){A}\tkzDefPoint(50:8){B}
\tkzDefPoint(0,0){C} \tkzDefPoint(0,-4){R}
\tkzDrawCircle(C,R)
\tkzDefLine[tangent from = A](C,R) \tkzGetPoints{D}{E}
\tkzDefLine[tangent from = B](C,R) \tkzGetPoints{F}{G}
\tkzDrawSector[fill=teal!20,opacity=0.5](A,E)(D)
\tkzFillSector[color=teal,opacity=0.5](B,G)(F)
\end{tikzpicture}
http://www.texample.net/tikz/examples/
tkz-euclide AlterMundus
15. Triangles 77
\begin{tikzpicture}[scale=.6]
\tkzDefPoint(0,0){B}
\tkzDefPoint(0,8){A}
\tkzDefSquare(A,B)
\tkzGetPoints{C}{D}
\tkzDrawPolygon(A,B,C,D)
\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)
\tkzDefLine[tangent from = B](F,A)
\tkzInterLL(F,tkzSecondPointResult)(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}
15. Triangles
– 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;
– euclid or gold for the gold triangle; in the previous version the option was ”euclide” with an ”e”.
– cheops determines a third point such that the triangle is isosceles with side measurements proportional
to 2, 𝛷 and 𝛷.
tkz-euclide AlterMundus
15. Triangles 78
\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}
\tkzDefPoint(0,0){A}
\tkzDefPoint(4,0){B}
\tkzDefTriangle[equilateral](A,B)
\tkzGetPoint{C}
\tkzDrawPolygons(A,B,C)
\tkzDefTriangle[equilateral](B,A)
\tkzGetPoint{D}
\tkzDrawPolygon(B,A,D)
\tkzMarkSegments[mark=s|](A,B B,C A,C A,D B,D)
\end{tikzpicture}
tkz-euclide AlterMundus
15. Triangles 79
C
\begin{tikzpicture}
\tkzDefPoint(0,0){A}
\tkzDefPoint(5,0){B}
\tkzDefTriangle[two angles = 50 and 70](A,B)
\tkzGetPoint{C}
\tkzDrawSegment(A,B)
\tkzDrawPoints(A,B)
\tkzLabelPoints(A,B)
\tkzDrawSegments[new](A,C B,C)
\tkzDrawPoints[new](C)
50∘ 70∘ \tkzLabelPoints[above,new](C)
\tkzLabelAngle[pos=1.4](B,A,C){$50^\circ$}
A B
\tkzLabelAngle[pos=0.8](C,B,A){$70^\circ$}
\end{tikzpicture}
C
\begin{tikzpicture}
\tkzDefPoints{0/0/A,4/0/B}
\tkzDefTriangle[school](A,B)
60∘
\tkzGetPoint{C}
\tkzMarkRightAngles(C,B,A)
90∘ \tkzLabelAngle[pos=0.8](B,A,C){$30^\circ$}
30∘ \tkzLabelAngle[pos=0.8](C,B,A){$90^\circ$}
A B \tkzLabelAngle[pos=0.8](A,C,B){$60^\circ$}
\tkzDrawSegments(A,B)
\tkzDrawSegments[new](A,C B,C)
\tkzLabelPoints(A,B)
\tkzLabelPoints[above](C)
\end{tikzpicture}
A B
\begin{tikzpicture}
\tkzDefPoints{0/0/A,4/0/B}
\tkzDefTriangle[pythagore](A,B)
\tkzGetPoint{C}
\tkzDrawSegments(A,B)
\tkzDrawSegments[new](A,C B,C)
\tkzMarkRightAngles(A,B,C)
\tkzDrawPoints[new](C)
\tkzDrawPoints(A,B)
C \tkzLabelPoints[above](A,B)
\tkzLabelPoints[new](C)
\end{tikzpicture}
tkz-euclide AlterMundus
15. Triangles 80
C
\begin{tikzpicture}
\tkzDefPoints{0/0/A,4/0/B}
\tkzDefTriangle[pythagore,swap](A,B)
\tkzGetPoint{C}
\tkzDrawSegments(A,B)
\tkzDrawSegments[new](A,C B,C)
\tkzMarkRightAngles(A,B,C)
\tkzLabelPoint[above,new](C){$C$}
\tkzDrawPoints[new](C)
A B \tkzDrawPoints(A,B)
\tkzLabelPoints(A,B)
\end{tikzpicture}
C
\begin{tikzpicture}[scale=.8]
\tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
\tkzDefTriangle[golden](A,B)\tkzGetPoint{C}
\tkzDefSpcTriangle[in,name=M](A,B,C){a,b,c}
\tkzDrawPolygon(A,B,C)
\tkzDrawPoints(A,B)
\tkzDrawSegment(C,Mc)
\tkzDrawPoints[new](C)
\tkzLabelPoints(A,B)
\tkzLabelPoints[above,new](C)
\end{tikzpicture}
A B
A B
\begin{tikzpicture}[scale=.75]
36∘ \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
72∘ \tkzDefTriangle[euclid](A,B)\tkzGetPoint{C}
\tkzDrawPolygon(A,B,C)
72∘ \tkzDrawPoints(A,B,C)
\tkzLabelPoints(C)
C
\tkzLabelPoints[above](A,B)
\tkzLabelAngle[pos=0.8](A,B,C){$72^\circ$}
\tkzLabelAngle[pos=0.8](B,C,A){$72^\circ$}
\tkzLabelAngle[pos=0.8](C,A,B){$36^\circ$}
\end{tikzpicture}
tkz-euclide AlterMundus
15. Triangles 81
C
\begin{tikzpicture}
\tkzDefPoint(0,0){A}
\tkzDefPoint(4,0){B}
\tkzDefTriangle[isosceles right](A,B)
\tkzGetPoint{C}
\tkzDrawPolygons(A,B,C)
A B \tkzDrawPoints(A,B,C)
\tkzMarkRightAngles(A,C,B)
\tkzLabelPoints(A,B)
\tkzLabelPoints[above](C)
\end{tikzpicture}
A B
\begin{tikzpicture}
\tkzDefPoints{0/0/A,4/0/B}
\tkzDefTriangle[gold](A,B)
\tkzGetPoint{C}
\tkzDrawPolygon(A,B,C)
AC \tkzDrawPoints(A,B,C)
=𝜑 \tkzLabelPoints[above](A,B)
AB
\tkzLabelPoints[below](C)
C
\tkzMarkRightAngle(A,B,C)
\tkzText(0,-2){$\dfrac{AC}{AB}=\varphi$}
\end{tikzpicture}
tkz-euclide AlterMundus
15. Triangles 82
\tkzDefSpcTriangle[⟨local options⟩](⟨p1,p2,p3⟩){⟨r1,r2,r3⟩}
The order of the points is important! p1p2p3 defines a triangle then the result is a triangle whose vertices have
as reference a combination with name and r1,r2, r3. If name is empty then the references are r1,r2 and r3.
tkz-euclide AlterMundus
15. Triangles 83
B
\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(A,B,C)
MA
MC \tkzDrawSegments[dashed,new](A,M_A B,M_B C,M_C)
\tkzDrawPolygon[new](M_A,M_B,M_C)
M \tkzDrawPoints(A,B,C)
\tkzDrawPoints[new](M,M_A,M_B,M_C)
\tkzLabelPoints[above](B)
C \tkzLabelPoints[below](A,C,M_B)
MB
\tkzLabelPoints[right](M_C)
A
\tkzLabelPoints[left](M_A)
\tkzLabelPoints[font=\scriptsize](M)
\end{tikzpicture}
C
\begin{tikzpicture}[scale=1]
\tkzDefPoints{ 0/0/A,5/0/B,2/3/C}
\tkzDefSpcTriangle[in,name=I](A,B,C){_a,_b,_c}
Ia \tkzDefCircle[in](A,B,C) \tkzGetPoints{I}{a}
Ib
\tkzDrawCircle(I,a)
\tkzDrawPolygon(A,B,C)
\tkzDrawPolygon[new](I_a,I_b,I_c)
\tkzDrawSegments[dashed,new](A,I_a B,I_b C,I_c)
\tkzDrawPoints(A,B,C,I,I_a,I_b,I_c)
A Ic B \tkzLabelPoints[below](A,B,I_c)
\tkzLabelPoints[above left](I_b)
\tkzLabelPoints[above right](C,I_a)
\end{tikzpicture}
tkz-euclide AlterMundus
15. Triangles 84
Ja
\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(A,B,C)
C
\tkzDrawPolygon[new](J_a,J_b,J_c)
Jb \tkzClipBB
\tkzDrawPoints(A,B,C)
\tkzDrawPoints[new](J_a,J_b,J_c)
\tkzLabelPoints(A,B,C)
\tkzLabelPoints[new](J_b,J_c)
A B
\tkzLabelPoints[new,above](J_a)
\tkzDrawCircles[gray](J_a,T_a J_b,T_b J_c,T_c)
\end{tikzpicture}
Jc
C
\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}
Xa
\tkzInCenter(A,B,C)\tkzGetPoint{I}
\tkzDefCircle[in](A,B,C) \tkzGetPoints{I}{i}
Xb \tkzDrawCircle(I,i)
\tkzDrawPolygon(A,B,C)
\tkzDrawPolygon[new](X_a,X_b,X_c)
\tkzDrawPoints(A,B,C)
A Xc B \tkzDrawPoints[new](X_a,X_b,X_c)
\tkzLabelPoints[right](X_a)
\tkzLabelPoints[left](X_b)
\tkzLabelPoints[above](C)
\tkzLabelPoints[below](A,B,X_c)
\end{tikzpicture}
tkz-euclide AlterMundus
15. Triangles 85
\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}
C \tkzDefSpcTriangle[extouch,
name=T](A,B,C){_a,_b,_c}
\tkzDefTriangleCenter[nagel](A,B,C)
\tkzGetPoint{N_a}
Tb \tkzDefTriangleCenter[centroid](A,B,C)
Ta \tkzGetPoint{G}
Na \tkzDrawPoints[new](J_a,J_b,J_c)
\tkzClipBB \tkzShowBB
A Tc B \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[new](A,T_a B,T_b C,T_c)
\tkzDrawSegments[new](J_a,T_a J_b,T_b J_c,T_c)
\tkzDrawPolygon(A,B,C)
\tkzDrawPolygon[new](T_a,T_b,T_c)
\tkzDrawPoints(A,B,C,N_a)
\tkzDrawPoints[new](T_a,T_b,T_c)
\tkzLabelPoints[below left](A)
\tkzLabelPoints[below](N_a,B)
\tkzLabelPoints[above](C)
\tkzLabelPoints[new,below left](T_b)
\tkzLabelPoints[new,below right](T_c)
\tkzLabelPoints[new,right=6pt](T_a)
\tkzMarkRightAngles[fill=gray!15](J_a,T_a,B
J_b,T_b,C J_c,T_c,A)
\end{tikzpicture}
A
\begin{tikzpicture}[scale=.75]
\tkzDefPoints{1/5/A,0/0/B,7/0/C}
\tkzDefSpcTriangle[orthic](A,B,C){H_A,H_B,H_C}
HB \tkzDefTriangleCenter[ortho](B,C,A)
\tkzGetPoint{H}
\tkzDefPointWith[orthogonal,normed](H_A,B)
\tkzGetPoint{a}
HC
H
\tkzDrawSegments[new](A,H_A B,H_B C,H_C)
\tkzMarkRightAngles[fill=gray!20,
opacity=.5](A,H_A,C B,H_B,A C,H_C,A)
B \tkzDrawPolygon[fill=teal!20,opacity=.3](A,B,C)
HA C
\tkzDrawPoints(A,B,C)
\tkzDrawPoints[new](H_A,H_B,H_C)
\tkzDrawPolygon[new,fill=orange!20,
opacity=.3](H_A,H_B,H_C)
\tkzLabelPoints(C)
\tkzLabelPoints[left](B)
\tkzLabelPoints[above](A)
\tkzLabelPoints[new](H_A)
\tkzLabelPoints[new,above left](H_C)
\tkzLabelPoints[new,above right](H_B,H)
\end{tikzpicture}
tkz-euclide AlterMundus
15. Triangles 86
Ja
\begin{tikzpicture}[scale=1]
\tkzDefPoint(0,0){A}
C
\tkzDefPoint(3,0){B}
\tkzDefPoint(0.5,2.5){C}
\tkzDefCircle[euler](A,B,C) \tkzGetPoint{N}
Jb \tkzDefSpcTriangle[feuerbach,
Fa
Fb name=F](A,B,C){_a,_b,_c}
\tkzDefSpcTriangle[excentral,
name=J](A,B,C){_a,_b,_c}
\tkzDefSpcTriangle[extouch,
A Fc B
name=T](A,B,C){_a,_b,_c}
\tkzLabelPoints[below left](J_a,J_b,J_c)
\tkzClipBB \tkzShowBB
\tkzDrawCircle[purple](N,F_a)
\tkzDrawPolygon(A,B,C)
\tkzDrawPolygon[new](F_a,F_b,F_c)
Jc
\tkzDrawCircles[gray](J_a,F_a J_b,F_b J_c,F_c)
\tkzDrawPoints[blue](J_a,J_b,J_c,%
F_a,F_b,F_c,A,B,C)
\tkzLabelPoints(A,B,F_c)
\tkzLabelPoints[above](C)
\tkzLabelPoints[right](F_a)
\tkzLabelPoints[left](F_b)
\end{tikzpicture}
Ta
\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}
B \tkzDrawPolygon(A,B,C)
\tkzDrawPolygon[new](T_a,T_b,T_c)
\tkzDrawPoints(A,B,C)
\tkzDrawPoints[new](T_a,T_b,T_c)
\tkzDefCircle[circum](A,B,C)
C \tkzGetPoint{O}
\tkzDrawCircle(O,A)
Tc
\tkzLabelPoints(A)
\tkzLabelPoints[above](B)
A
Tb \tkzLabelPoints[left](C)
\tkzLabelPoints[new](T_b,T_c)
\tkzLabelPoints[new,left](T_a)
\end{tikzpicture}
tkz-euclide AlterMundus
15. Triangles 87
B
\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}
MA EB
\tkzDefMidPoint(B,H) \tkzGetPoint{E_B}
MC \tkzDefSpcTriangle[ortho,name=H](A,B,C){_A,_B,_C}
\tkzDrawPolygon(A,B,C)
\tkzDrawCircle(N,E_A)
HA
\tkzDrawSegments[new](A,H_A B,H_B C,H_C)
N \tkzDrawPoints(A,B,C,N,H)
\tkzDrawPoints[red](M_A,M_B,M_C)
\tkzDrawPoints[blue]( H_A,H_B,H_C)
H \tkzDrawPoints[green](E_A,E_B,E_C)
C EC HC \tkzAutoLabelPoints[center=N,font=\scriptsize]%
MB EA (A,B,C,M_A,M_B,M_C,H_A,H_B,H_C,E_A,E_B,E_C)
HB \tkzLabelPoints[font=\scriptsize](H,N)
A
\tkzMarkSegments[mark=s|,size=3pt,
color=blue,line width=1pt](B,E_B E_B,H)
\tkzDrawPolygon[color=cyan](M_A,M_B,M_C)
\end{tikzpicture}
tkz-euclide AlterMundus
15. Triangles 88
I Ha
Ec
E
Hb
Ea Eb
A Hc B
Fa
tkz-euclide AlterMundus
15. Triangles 89
\begin{tikzpicture}[scale=1.25]
\tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
\tkzDefSpcTriangle[euler,name=E](A,B,C){a,b,c}
\tkzDefSpcTriangle[orthic,name=H](A,B,C){a,b,c}
\tkzDefExCircle(A,B,C) \tkzGetPoints{I}{i}
\tkzDefExCircle(C,A,B) \tkzGetPoints{J}{j}
\tkzDefExCircle(B,C,A) \tkzGetPoints{K}{k}
\tkzDrawPoints[orange](I,J,K)
\tkzLabelPoints[font=\scriptsize](A,B,C,I,J,K)
\tkzClipBB
\tkzInterLC(I,C)(I,i) \tkzGetSecondPoint{Fc}
\tkzInterLC(J,B)(J,j) \tkzGetSecondPoint{Fb}
\tkzInterLC(K,A)(K,k) \tkzGetSecondPoint{Fa}
\tkzDrawLines[add=1.5 and 1.5](A,B A,C B,C)
\tkzDefCircle[euler](A,B,C) \tkzGetPoints{E}{e}
\tkzDrawCircle[orange](E,e)
\tkzDrawSegments[orange](E,I E,J E,K)
\tkzDrawSegments[dashed](A,Ha B,Hb C,Hc)
\tkzDrawCircles(J,j I,i K,k)
\tkzDrawPoints(A,B,C)
\tkzDrawPoints[orange](E,I,J,K,Ha,Hb,Hc,Ea,Eb,Ec,Fa,Fb,Fc)
\tkzLabelPoints[font=\scriptsize](E,Ea,Eb,Ec,Ha,Hb,Hc,Fa,Fb,Fc)
\end{tikzpicture}
C
\begin{tikzpicture}
\tkzDefPoint(0,0){A}
\tkzDefPoint(5,0){B}
\tkzDefPoint(.75,4){C}
\tkzDefTriangleCenter[symmedian](A,B,C)\tkzGetPoint{K}
KA
\tkzDefSpcTriangle[symmedial,name=K_](A,B,C){A,B,C}
\tkzDrawPolygon(A,B,C)
KB
\tkzDrawSegments[new](A,K_A B,K_B C,K_C)
K \tkzDrawPoints(A,B,C,K,K_A,K_B,K_C)
\tkzLabelPoints(A,B,K,K_C)
\tkzLabelPoints[above](C)
A KC B \tkzLabelPoints[right](K_A)
\tkzLabelPoints[left](K_B)
\end{tikzpicture}
\tkzPermute(⟨pt1,pt2,pt3⟩)
tkz-euclide AlterMundus
16. Definition of polygons 90
B
\begin{tikzpicture}
\tkzDefPoints{0/0/A,4/0/B,6/0/x}
\tkzDefTriangle[school](A,B)
\tkzGetPoint{C}
\tkzPermute(A,B,C)
\tkzDrawSegments(A,B C,x)
A C x \tkzDrawSegments(A,C B,C)
\tkzDrawPoints(A,B,C)
\tkzLabelPoints(A,C,x)
\tkzLabelPoints[above](B)
\tkzMarkRightAngles(C,B,A)
\end{tikzpicture}
Remark: Only the first point is unchanged. The order of the last two parameters is not important.
\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.
tkz-euclide AlterMundus
16. Definition of polygons 91
C
\begin{tikzpicture}[scale=1]
\tkzDefPoint(0,0){A}
\tkzDefPoint(3,0){B}
\tkzDefSquare(A,B) \tkzGetFirstPoint{C}
\tkzDrawSegment(A,B)
\tkzDrawSegments[new](A,C B,C)
\tkzMarkRightAngles(A,B,C)
\tkzDrawPoints(A,B) \tkzDrawPoint[new](C)
\tkzLabelPoints(A,B)
A B \tkzLabelPoints[new,above](C)
\end{tikzpicture}
\begin{tikzpicture}[scale=.5]
\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}
b
c \tkzDrawPolygon(A,B,C)
\tkzDrawPolygon(A,C,G,H)
a \tkzDrawPolygon(C,B,I,J)
\tkzDrawPolygon(B,A,E,F)
\tkzLabelSegment(A,C){$a$}
\tkzLabelSegment[right](C,B){$b$}
\tkzLabelSegment[swap](A,B){$c$}
\end{tikzpicture}
\tkzDefRectangle(⟨pt1,pt2⟩)
The rectangle is defined in the forward direction. From two points, two more points are obtained such that
the four taken in order form a rectangle. The two points passed in arguments are the ends of a diagonal of the
rectangle. The sides are parallel to the axes.
The results are in tkzFirstPointResult and tkzSecondPointResult.
We can rename them with \tkzGetPoints.
\begin{tikzpicture}
\tkzDefPoints{0/0/A,5/2/C}
\tkzDefRectangle(A,C) \tkzGetPoints{B}{D}
\tkzDrawPolygon[fill=teal!15](A,...,D)
\end{tikzpicture}
tkz-euclide AlterMundus
16. Definition of polygons 92
\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...
D C
\begin{tikzpicture}[scale=1]
\tkzDefPoints{0/0/A,3/0/B,4/2/C}
\tkzDefParallelogram(A,B,C)
% or \tkzDefPointWith[colinear= at C](B,A)
\tkzGetPoint{D}
\tkzDrawPolygon(A,B,C,D)
A B \tkzLabelPoints(A,B)
\tkzLabelPoints[above right](C,D)
\tkzDrawPoints(A,...,D)
\end{tikzpicture}
\tkzDefGoldenRectangle(⟨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}
\tkzDefGoldRectangle(C,E) \tkzGetPoints{G}{H}
\tkzDrawPolygon(A,B,C,D)
\tkzDrawSegments(E,F G,H)
\end{tikzpicture}
tkz-euclide AlterMundus
16. Definition of polygons 93
\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 explanation
(⟨pt1,pt2⟩) (⟨O,A⟩) with option center, O is the center of the polygon.
(⟨pt1,pt2⟩) (⟨A,B⟩) with option side, [AB] 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)
\tkzFillPolygon[teal!20](Q0,Q1,P2,Q2)
\tkzDrawPolygon(P1,P...,P7)
\foreach \j in {1,...,7} {%
\tkzDrawSegment[black](P0,Q\j)}
\end{tikzpicture}
tkz-euclide AlterMundus
16. Definition of polygons 94
\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
17. Circles 95
17. 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 center 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 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.
M9 Attention the arguments are lists of two or three points. This macro is either used in partnership with
\tkzGetPoints to obtain the center and a point on the circle, or by using
tkzFirstPointResult and tkzSecondPointResult if it is not necessary to keep the results. You can also use
\tkzGetLength to get the radius.
In the following examples, I draw the circles with a macro not yet presented. You may only need the center and a
point on the circle.
tkz-euclide AlterMundus
17. Circles 96
A
\begin{tikzpicture}[scale=.75]
\tkzDefPoint(2,2){A} \tkzDefPoint(5,-2){B}
\tkzDefPoint(1,-2){C}
\tkzDefCircle[in](A,B,C)
\tkzGetPoints{I}{x}
K \tkzDefCircle[circum](A,B,C)
I
\tkzGetPoint{K}
\tkzDrawCircles[new](I,x K,A)
\tkzLabelPoints[below](B,C)
C B \tkzLabelPoints[above left](A,I,K)
\tkzDrawPolygon(A,B,C)
\tkzDrawPoints(A,B,C,I,K)
\end{tikzpicture}
tkz-euclide AlterMundus
17. Circles 97
C
\begin{tikzpicture}[scale=.75]
\tkzDefPoints{ 0/0/A,4/0/B,0.8/4/C}
\tkzDefCircle[ex](B,C,A)
\tkzGetPoints{J_c}{h}
\tkzDefPointBy[projection=onto A--C ](J_c)
\tkzGetPoint{X_c}
F
\tkzDefPointBy[projection=onto A--B ](J_c)
I
\tkzGetPoint{Y_c}
Yc
\tkzDefCircle[in](A,B,C)
A D B \tkzGetPoints{I}{y}
\tkzDrawCircles[color=lightgray](J_c,h I,y)
\tkzDefPointBy[projection=onto A--C ](I)
\tkzGetPoint{F}
Xc \tkzDefPointBy[projection=onto A--B ](I)
\tkzGetPoint{D}
Jc
\tkzDrawPolygon(A,B,C)
\tkzDrawLines[add=0 and 1.5](C,A C,B)
\tkzDrawSegments(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)
\tkzLabelPoints[above](Y_c)
\tkzLabelPoints[left](X_c)
\tkzLabelPoints[above left](C)
\tkzLabelPoints[left](F)
\end{tikzpicture}
A
\begin{tikzpicture}[scale=.75]
\tkzDefPoint(5,3.5){A}
\tkzDefPoint(0,0){B} \tkzDefPoint(7,0){C}
\tkzDefCircle[euler](A,B,C)
E \tkzGetPoints{E}{e}
\tkzDefSpcTriangle[medial](A,B,C){M_a,M_b,M_c}
\tkzDrawCircle[new](E,e)
B C \tkzDrawPoints(A,B,C,E,M_a,M_b,M_c)
\tkzDrawPolygon(A,B,C)
\tkzLabelPoints[below](B,C)
\tkzLabelPoints[left](A,E)
\end{tikzpicture}
tkz-euclide AlterMundus
17. Circles 98
\begin{tikzpicture}[scale=0.75]
\tkzDefPoint(0,0){A}
\tkzDefPoint(4,0){B}
\tkzDefCircle[apollonius,K=2](A,B)
\tkzGetPoints{K1}{x}
A B K2 K1 \tkzDrawCircle[color = teal!50!black,
fill=teal!20,opacity=.4](K1,x)
\tkzDefCircle[apollonius,K=3](A,B)
\tkzGetPoints{K2}{y}
\tkzDrawCircle[color=orange!50,
fill=orange!20,opacity=.4](K2,y)
\tkzLabelPoints[below](A,B,K1,K2)
\tkzDrawPoints(A,B,K1,K2)
\tkzDrawLine[add=.2 and 1](A,B)
\end{tikzpicture}
tkz-euclide AlterMundus
17. Circles 99
C
\begin{tikzpicture}[scale=1.25]
\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(A,B,C)
\tkzDrawPolygon[cyan](M_a,M_b,M_c)
Mb Ma \tkzDrawPoints(B,C,A)
\tkzDefCircle[spieker](A,B,C)
Sp
\tkzDrawPoints[new](M_a,M_b,M_c,S_p)
\tkzDrawCircle[new](tkzFirstPointResult,%
tkzSecondPointResult)
\tkzLabelPoints[right](M_a)
\tkzLabelPoints[left](M_b)
A Mc B
\tkzLabelPoints[below](A,B,M_c,S_p)
\tkzLabelPoints[above](C)
\end{tikzpicture}
\tkzDefProjExcenter[⟨local options⟩](⟨A,B,C⟩)(⟨a,b,c⟩){⟨X,Y,Z⟩}
Each excenter has three projections on the sides of the triangle ABC. We can do this with one macro
\tkzDefProjExcenter[name=J](A,B,C)(a,b,c){Y,Z,X}.
tkz-euclide AlterMundus
17. Circles 100
17.2.1. Excircles
Ya
Ja
Xb
C
Jb
Yb
Ia
Yb
Ib
Xa
I
Zc
Zb A Ic B Za
Xc
Yc
Jc
tkz-euclide AlterMundus
17. Circles 101
\begin{tikzpicture}[scale=.6]
\tikzset{line style/.append style={line width=.2pt}}
\tikzset{label style/.append style={color=teal,font=\footnotesize}}
\tkzDefPoints{0/0/A,5/0/B,0.8/4/C}
\tkzDefSpcTriangle[excentral,name=J](A,B,C){a,b,c}
\tkzDefSpcTriangle[intouch,name=I](A,B,C){a,b,c}
\tkzDefProjExcenter[name=J](A,B,C)(a,b,c){X,Y,Z}
\tkzDefCircle[in](A,B,C) \tkzGetPoint{I} \tkzGetSecondPoint{T}
\tkzDrawCircles[red](Ja,Xa Jb,Yb Jc,Zc)
\tkzDrawCircle(I,T)
\tkzDrawPolygon[dashed,color=blue](Ja,Jb,Jc)
\tkzDrawLines[add=1.5 and 1.5](A,C A,B B,C)
\tkzDrawSegments(Ja,Xa Ja,Ya Ja,Za
Jb,Xb Jb,Yb Jb,Zb
Jc,Xc Jc,Yc Jc,Zc
I,Ia I,Ib I,Ic)
\tkzMarkRightAngles[size=.2,fill=gray!15](Ja,Za,B Ja,Xa,B Ja,Ya,C Jb,Yb,C)
\tkzMarkRightAngles[size=.2,fill=gray!15](Jb,Zb,B Jb,Xb,C Jc,Yc,A Jc,Zc,B)
\tkzMarkRightAngles[size=.2,fill=gray!15](Jc,Xc,C I,Ia,B I,Ib,C I,Ic,A)
\tkzDrawSegments[blue](Jc,C Ja,A Jb,B)
\tkzDrawPoints(A,B,C,Xa,Xb,Xc,Ja,Jb,Jc,Ia,Ib,Ic,Ya,Yb,Yc,Za,Zb,Zc)
\tkzLabelPoints(A,Ya,Yb,Ja,I)
\tkzLabelPoints[left](Jb,Ib,Yc)
\tkzLabelPoints[below](Zb,Ic,Jc,B,Za,Xa)
\tkzLabelPoints[above right](C,Zc,Yb)
\tkzLabelPoints[right](Xb,Ia,Xc)
\end{tikzpicture}
tkz-euclide AlterMundus
17. Circles 102
\begin{tikzpicture}[scale=1]
\tkzDefPoint(0,0){O}
O A
\tkzDefPoint(1,0){A}
\tkzDrawCircle(O,A)
\tkzDefPoint(-1.5,-1.5){z1}
z2
\tkzDefPoint(1.5,-1.25){z2}
z1 \tkzDefCircle[orthogonal through=z1 and z2](O,A)
c \tkzGetPoint{c}
\tkzDrawCircle[new](tkzPointResult,z1)
\tkzDrawPoints[new](O,A,z1,z2,c)
\tkzLabelPoints[right](O,A,z1,z2,c)
\end{tikzpicture}
– translation;
– homothety;
– orthogonal reflection or symmetry;
– central symmetry;
– orthogonal projection;
– rotation (degrees);
– inversion.
The choice of transformations is made through the options. The macro is \tkzDefCircleBy and the other for
the transformation of a list of points \tkzDefCirclesBy. For example, we’ll write:
O is the center and M is a point on the circle. The image is a circle. The new center is tkzFirstPointResult and
tkzSecondPointResult is a point on the new circle. You can get the results with the macro \tkzGetPoints.
\tkzDefCircleBy[⟨local options⟩](⟨pt1,pt2⟩)
The argument is a couple of points. The results is a couple of points. If you want to keep these points then the
macro \tkzGetPoints{O'}{M'} allows you to assign the name O' to the center and M' to the point on the circle.
arguments definition examples
pt1,pt2 existing points (O, M)
options examples
translation = from #1 to #2 [translation=from A to B](O,M)
homothety = center #1 ratio #2 [homothety=center A ratio .5](O,M)
reflection = over #1--#2 [reflection=over A--B](O,M)
symmetry = center #1 [symmetry=center A](O,M)
projection = onto #1--#2 [projection=onto A--B](O,M)
rotation = center #1 angle #2 [rotation=center O angle 30](O,M)
inversion = center #1 through #2 [inversion =center O through A](O,M)
tkz-euclide AlterMundus
17. Circles 103
17.3.1. Translation
D
\begin{tikzpicture}[>=latex]
\tkzDefPoint(0,0){A} \tkzDefPoint(3,1){B}
\tkzDefPoint(3,2){C} \tkzDefPoint(4,3){D}
D′ \tkzDefCircleBy[translation= from B to A](C,D)
C \tkzGetPoints{C'}{D'}
\tkzDrawPoints[teal](A,B,C,D,C',D')
C′ B \tkzDrawSegments[orange,->](A,B)
\tkzDrawCircles(C,D C',D')
\tkzLabelPoints[color=teal](A,B,C,C')
A \tkzLabelPoints[color=teal,above](D,D')
\end{tikzpicture}
\begin{tikzpicture}[>=latex]
D \tkzDefPoint(0,0){A} \tkzDefPoint(3,1){B}
\tkzDefPoint(3,2){C} \tkzDefPoint(4,3){D}
\tkzDefCircleBy[reflection = over A--B](C,D)
C \tkzGetPoints{C'}{D'}
\tkzDrawPoints[teal](A,B,C,D,C',D')
B \tkzDrawLine[add =0 and 1][orange](A,B)
\tkzDrawCircles(C,D C',D')
C′ D′ \tkzLabelPoints[color=teal](A,B,C,C')
A \tkzLabelPoints[color=teal,right](D,D')
\end{tikzpicture}
17.3.3. Homothety
\begin{tikzpicture}[scale=1.2]
D \tkzDefPoint(0,0){A} \tkzDefPoint(3,1){B}
\tkzDefPoint(3,2){C} \tkzDefPoint(4,3){D}
\tkzDefCircleBy[homothety=center A ratio .5](C,D)
\tkzGetPoints{C'}{D'}
C
\tkzDrawPoints[teal](A,C,D,C',D')
D′
\tkzDrawCircles(C,D C',D')
\tkzLabelPoints[color=teal](A,C,C')
C′
\tkzLabelPoints[color=teal,right](D,D')
\end{tikzpicture}
A
tkz-euclide AlterMundus
18. Intersections 104
17.3.4. Symmetry
\begin{tikzpicture}[scale=1]
D
\tkzDefPoint(3,1){B}
\tkzDefPoint(3,2){C} \tkzDefPoint(4,3){D}
\tkzDefCircleBy[symmetry=center B](C,D)
\tkzGetPoints{C'}{D'}
C \tkzDrawPoints[teal](B,C,D,C',D')
\tkzDrawLines[orange](C,C' D,D')
\tkzDrawCircles(C,D C',D')
\tkzLabelPoints[color=teal](C,C')
\tkzLabelPoints[color=teal,above](D)
C′ \tkzLabelPoints[color=teal,below](D')
\end{tikzpicture}
D′
17.3.5. Rotation
\begin{tikzpicture}[scale=0.5]
D \tkzDefPoint(3,-1){B}
C \tkzDefPoint(3,2){C} \tkzDefPoint(4,3){D}
\tkzDefCircleBy[rotation=center B angle 90](C,D)
\tkzGetPoints{C'}{D'}
D′
\tkzDrawPoints[teal](B,C,D,C',D')
C′ B \tkzLabelPoints[color=teal](B,C,D,C',D')
\tkzDrawCircles(C,D C',D')
\end{tikzpicture}
17.3.6. Inversion
\begin{tikzpicture}[scale=1.5]
\tkzSetUpPoint[size=3,color=red,fill=red!20]
\tkzSetUpStyle[color=purple,ultra thin]{st1}
\tkzSetUpStyle[color=cyan,ultra thin]{st2}
C D \tkzDefPoint(2,0){A} \tkzDefPoint(3,0){B}
\tkzDefPoint(3,2){C} \tkzDefPoint(4,2){D}
\tkzDefCircleBy[inversion = center B through A](C,D)
\tkzGetPoints{C'}{D'}
\tkzDrawPoints(A,B,C,D,C',D')
C′ \tkzLabelPoints(A,B,C,D,C',D')
D′ \tkzDrawCircles(B,A)
\tkzDrawCircles[st1](C,D)
A B
\tkzDrawCircles[st2](C',D')
\end{tikzpicture}
18. 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 inter-
section points himself.
tkz-euclide AlterMundus
18. Intersections 105
\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}
– (O, C) which is a pair of points, the first is the center and the second is any point on the circle.
The macro defines the intersection points I and J of the line (AB) and the center circle O with radius r if they
exist; otherwise, an error will be reported in the .log file. with nodes avoids you to calculate the radius which
is the length of [CD]. If common and near are not used then tkzFirstPoint is the smallest angle (angle with
tkzSecondPoint and the center of the circle).
tkz-euclide AlterMundus
18. Intersections 106
\begin{tikzpicture}[scale=1]
\tkzDefPoints{% x y name
3 /4 /I,
3 /2 /P,
0 /2 /La,
8 /3 /Lb}
\tkzDrawCircle(I,P)
\foreach \i in {1,...,3}{%
\coordinate (Lb) at (8,\i);
\tkzDrawLine(La,Lb)
\tkzTestInterLC(La,Lb)(I,P)
\iftkzFlagLC
\tkzInterLC(La,Lb)(I,P)
\tkzGetPoints{a}{b}
\tkzDrawPoints(a,b)
\fi
}
\end{tikzpicture}
tkz-euclide AlterMundus
18. Intersections 107
\begin{tikzpicture}
\tkzDefPoints{% x y name
0 /1 /D,
A 6 /0 /B,
Lb
3 /3 /O,
2 /2 /La,
5 /5 /Lb}
\tkzDrawCircle(O,D)
\tkzDrawLine(La,Lb)
O \tkzInterLC[near](Lb,La)(O,D)
\tkzGetFirstPoint{A}
\tkzDrawSegments(O,A)
La
\tkzDrawPoints(O,D,A,La,Lb)
\tkzLabelPoints(O,D,A,La,Lb)
D \end{tikzpicture}
tkz-euclide AlterMundus
18. Intersections 108
\begin{tikzpicture}[scale=.5]
E
\tkzDefPoints{0/0/O,5/1/A,2/2/B,3/1/D}
\tkzInterLC[common=A](B,D)(O,A) \tkzGetPoints{C}{E}
\tkzDrawPoints(O,A,B,D)
\tkzDrawCircle(O,A) \tkzDrawLine(E,C)
\tkzDrawSegments[dashed](B,O O,C)
B
\tkzMarkAngle[->,size=1.5](B,C,O)
D A \tkzDrawSegments[dashed](O,E)
O
\tkzMarkAngle[->,size=1.5](B,E,O)
C \tkzDrawPoints(C,E)
\tkzLabelPoints[above](O,E)
\tkzLabelPoints[right](A,B,C,D)
\end{tikzpicture}
\begin{tikzpicture}[scale=3,rotate=180]
\tkzDefPoint(0,1){J}
\tkzDefPoint(0,0){O}
\foreach \i in {0,-5,-10,...,-90}{
\tkzDefPoint({2.5*cos(\i*pi/180)},%
{1+2.5*sin(\i*pi/180)}){P}
\tkzInterLC[R](P,J)(O,1)\tkzGetPoints{N}{M}
\tkzDrawSegment[color=orange](J,N)
\tkzDrawPoints[red](N)}
\foreach \i in {-90,-95,...,-175,-180}{
\tkzDefPoint({2.5*cos(\i*pi/180)},%
{1+2.5*sin(\i*pi/180)}){P}
\tkzInterLC[R](P,J)(O,1)\tkzGetPoints{N}{M}
\tkzDrawSegment[color=orange](J,M)
\tkzDrawPoints[red](M)}
\end{tikzpicture}
N
V
A O1 O B O2 C
tkz-euclide AlterMundus
18. Intersections 109
\begin{tikzpicture}
\tkzDefPoints{0/0/A,12/0/C}
\tkzDefGoldenRatio(A,C) \tkzGetPoint{B}
\tkzDefMidPoint(A,C) \tkzGetPoint{O}
\tkzDefMidPoint(A,B) \tkzGetPoint{O_1}
\tkzDefMidPoint(B,C) \tkzGetPoint{O_2}
\tkzDefPointBy[rotation=center O_2 angle 90](C) \tkzGetPoint{P}
\tkzDefPointBy[rotation=center O_1 angle 90](B) \tkzGetPoint{Q}
\tkzDefPointBy[rotation=center B angle 90](C) \tkzGetPoint{b}
\tkzInterLC[near](b,B)(O,A) \tkzGetFirstPoint{D}
\tkzInterCC(D,B)(O,C) \tkzGetPoints{V}{U}
\tkzDefPointBy[projection=onto U--V](O_1) \tkzGetPoint{M}
\tkzDefPointBy[projection=onto U--V](O_2) \tkzGetPoint{N}
\tkzDrawPoints(A,B,C,O,O_1,O_2,D,U,V,M,N,b)
\tkzDrawSemiCircles[teal](O,C O_1,B O_2,C)
\tkzDrawSegments(A,C B,D U,V A,D C,D M,B B,N)
\tkzDrawArc(D,U)(V)
\tkzLabelPoints(A,B,C,O,O_1,O_2)
\tkzLabelPoints[above](D,U,V,M,N)
\end{tikzpicture}
tkz-euclide AlterMundus
18. Intersections 110
\begin{tikzpicture}[scale=.5]
\tkzDefPoint(0,8){A} \tkzDefPoint(8,0){B}
A C
\tkzDefPoint(8,8){C} \tkzDefPoint(4,4){D}
I1
\tkzDefPoint(2,4){E} \tkzDefPoint(4,2){F}
K1 \tkzDefPoint(8,4){G}
E1 \tkzInterLC(A,C)(D,G) \tkzGetPoints{I1}{I2}
\tkzInterLC(B,C)(D,G) \tkzGetPoints{J1}{J2}
E D J1 \tkzInterLC[near](A,B)(D,G) \tkzGetPoints{K1}{K2}
\tkzInterLC(E,F)(D,G) \tkzGetPoints{E1}{E2}
F \tkzDrawCircle(D,G)
\tkzDrawPoints[color=red](I1,J1,K1,K2,E1,E2)
K2 \tkzDrawLines(A,B B,C A,C I2,J2 E1,E2)
B
E2 \tkzDrawPoints[color=blue](A,...,F)
\tkzDrawPoints[color=red](I2,J2)
\tkzLabelPoints[left](B,D,E,F)
\tkzLabelPoints[below left](A,C)
\tkzLabelPoints[below=4pt](I1,K1,K2,E2)
\tkzLabelPoints[left](J1,E1)
\end{tikzpicture}
tkz-euclide AlterMundus
18. Intersections 111
\begin{tikzpicture}[scale=.75]
\tkzDefPoints{0/0/A,4/0/B,1/1/D,2/0/E}
\tkzDefTriangle[equilateral](A,B)
\tkzGetPoint{C}
\tkzInterLC[with nodes](D,E)(C,A,B)
\tkzGetPoints{F}{G}
\tkzDrawCircle(C,A)
\tkzDrawPolygon(A,B,C)
\tkzDrawPoints(A,...,G)
\tkzDrawLine(F,G)
\end{tikzpicture}
This macro defines the intersection point(s) I and J of the two center circles O and O′ . If the two circles do not
have a common point then the macro ends with an error that is not handled. If the centers are O and O′ and
̂
the intersections are A and B then the angles O, ̂
A, O′ and O, B, O′ are in opposite directions. tkzFirstPoint is
assigned to the point that forms the clockwise angle.
tkz-euclide AlterMundus
18. Intersections 112
\begin{tikzpicture}[scale=.75]
\tkzDefPoints{% x y name
0 /0 /A,
2 /0 /B,
4 /0 /I,
1 /0 /P}
\tkzDrawCircle(A,B)
\foreach \i in {1,...,3}{%
\coordinate (P) at (\i,0);
\tkzDrawCircle[new](I,P)
\tkzTestInterCC(A,B)(I,P)
\iftkzFlagCC
\tkzInterCC(A,B)(I,P) \tkzGetPoints{a}{b}
\tkzDrawPoints(a,b)
\fi}
\end{tikzpicture}
\begin{tikzpicture}[scale=.5]
B \tkzDefPoints{0/0/O,5/-1/A,2/2/B}
\tkzDrawPoints(O,A,B)
O
\tkzDrawCircles(O,B A,B)
\tkzInterCC[common=B](O,B)(A,B)
A
\tkzGetFirstPoint{C}
\tkzDrawPoint(C)
C
\tkzLabelPoints[above](O,A,B,C)
\end{tikzpicture}
D
\begin{tikzpicture}[scale=.5]
\pgfkeys{/pgf/number format/.cd,fixed relative,
28.05 precision=4}
\tkzDefPoints{0/0/O,5/-1/A,2/2/B,2/-1/C}
\tkzDrawPoints(O,A,B)
B E \tkzDrawCircles(O,A B,C)
331.9
\tkzInterCC(O,A)(B,C)\tkzGetPoints{D}{E}
O
\tkzDrawPoints(C,D,E)
\tkzLabelPoints(O,A,B,C)
C A
\tkzLabelPoints[above](D,E)
\tkzDrawSegments[cyan](D,O D,B)
\tkzMarkAngle[red,->,size=1.5](O,D,B)
\tkzFindAngle(O,D,B) \tkzGetAngle{an}
\tkzLabelAngle(O,D,B){$ \pgfmathprintnumber{\an}$}
\tkzDrawSegments[cyan](E,O E,B)
\tkzMarkAngle[red,->,size=1.5](O,E,B)
\tkzFindAngle(O,E,B) \tkzGetAngle{an}
\tkzLabelAngle(O,E,B){$ \pgfmathprintnumber{\an}$}
\end{tikzpicture}
tkz-euclide AlterMundus
18. Intersections 113
C
\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)
\tkzDrawCircles(A,B B,A)
A B
\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
18. Intersections 114
\begin{tikzpicture}[scale=.5]
b
\tkzDefPoints{0/0/A,0/5/B,5/0/C}
\tkzDefPoint(54:5){F}
a \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}
c \tkzInterCC(A,C)(c,b) \tkzGetFirstPoint{d}
\tkzDrawCircle[new](A,C)
\tkzDrawPoints(a,b,c,d,e)
\tkzDrawPolygon(a,b,c,d,e)
\foreach \vertex/\num in {a/36,b/108,c/180,
e
d/252,e/324}{%
\tkzDrawPoint(\vertex)
d \tkzLabelPoint[label=\num:$\vertex$](\vertex){}
\tkzDrawSegment(A,\vertex)
}
\end{tikzpicture}
\begin{tikzpicture}[scale = .7]
\tkzDefPoint(2,2){A}
\tkzDefPoint(0,0){B}
\tkzDefPoint(-2,2){C}
D \tkzDefPoint(0,4){D}
\tkzDefPoint(4,2){E}
M1 M2
\tkzCircumCenter(A,B,C)\tkzGetPoint{O}
L M3 C O A E \tkzInterCC[R](O,2)(D,2)\tkzGetPoints{M1}{M2}
\tkzInterCC(O,A)(D,O) \tkzGetPoints{1}{2}
\tkzInterLC(A,E)(B,M1)\tkzGetSecondPoint{M3}
\tkzInterLC(O,C)(M3,D)\tkzGetSecondPoint{L}
B
\tkzDrawSegments(C,L)
\tkzDrawPoints(A,B,C,D,E,M1,M2,M3,O,L)
\tkzDrawSegments(O,E)
\tkzDrawSegments[new](C,A D,B)
\tkzDrawPoint(O)
\tkzDrawCircles[new](M3,D B,M2 D,O)
\tkzDrawCircle(O,A)
\tkzLabelPoints[below right](A,B,C,D,E,M1,M2,M3,O,L)
\end{tikzpicture}
tkz-euclide AlterMundus
19. Angles 115
P Q C
\begin{tikzpicture}
\tkzDefPoints{0/0/P,5/0/Q,3/2/I}
\tkzDefCircle[orthogonal from=P](Q,I)
\tkzGetFirstPoint{E}
\tkzDrawCircles(P,E Q,E)
\tkzInterCC[common=E](P,E)(Q,E) \tkzGetFirstPoint{F}
\tkzDefPointOnCircle[through = center P angle 80 point E]
\tkzGetPoint{A}
\tkzInterLC[common=E](A,E)(Q,E) \tkzGetFirstPoint{C}
\tkzInterLL(A,F)(C,Q) \tkzGetPoint{D}
\tkzDrawLines[add=0 and 1](P,Q)
\tkzDrawLines[add=0 and 2](A,E)
\tkzDrawSegments(P,E E,F F,C A,F C,D)
\tkzDrawPoints(P,Q,E,F,A,C,D)
\tkzLabelPoints(P,Q,F)
\tkzLabelPoints[above](E,A)
\tkzLabelPoints[left](D)
\tkzLabelPoints[above right](C)
\end{tikzpicture}
19. Angles
tkz-euclide AlterMundus
19. Angles 116
clockwise counterclockwise
Angles are involved in several macros like \tkzDefPoint,\tkzDefPointBy[rotation = …], \tkzDrawArc and
the next one \tkzGetAngle. With the exception of the last one, all these macros accept negative angles.
B
A
−80∘
80∘
A B
∘
Rotation 80 from (O, A) to (O, B) Rotation −80∘ from (O, A) to (O, B)
\tkzDefPointBy[rotation=center O angle 80] \tkzDefPointBy[rotation=center O angle -80]
280∘
B
A
80∘
A B
As we can see, the −80∘ rotation defines a clockwise angle but the macro \tkzFindAngle recovers a counter-
clockwise angle.
\tkzGetAngle(⟨name of macro⟩)
Assigns the value in degree of an angle to a macro. The value is positive and between 0∘ and 360∘ . This macro
retrieves \tkzAngleResult and stores the result in a new macro.
This is an auxiliary macro that allows you to retrieve the result of the following macro \tkzFindAngle.
\tkzFindAngle(⟨pt1,pt2,pt3⟩)
tkz-euclide AlterMundus
19. Angles 117
The measure is always positive and between 0∘ and 360∘ . With the usual conventions, a counterclockwise angle
smaller than a straight angle has always a measure between 0∘ and 180∘ , while a clockwise angle smaller than a
straight angle will have a measurement greater than 180∘ . \tkzGetAngle can retrieve the angle.
C
\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)
\tkzLabelPoints(A,B)
60∘ B
\tkzLabelPoint[right](C){$C$}
A
\tkzLabelAngle(B,A,C){\angleBAC$^\circ$}
\tkzMarkAngle[size=1.5](B,A,C)
\end{tikzpicture}
\begin{tikzpicture}
\tikzset{label angle style/.append style={pos=1.4}}
\tkzDefPoints{0/0/a,5/3/b,3/6/c}
60.0∘
\tkzDrawPolygon(a,b,c)
\tkzFindAngle(c,b,a)\tkzGetAngle{angleCBA}
\pgfmathparse{round(1+\angleCBA)}
\let\angleCBA\pgfmathresult
88.0∘
\tkzFindAngle(a,c,b)\tkzGetAngle{angleACB}
\pgfmathparse{round(\angleACB)}
\let\angleACB\pgfmathresult
\tkzFindAngle(b,a,c)\tkzGetAngle{angleBAC}
\pgfmathparse{round(\angleBAC)}
32.0∘ \let\angleBAC\pgfmathresult
\tkzMarkAngle(c,b,a)
\tkzLabelAngle(c,b,a){\tiny $\angleCBA^\circ$}
\tkzMarkAngle(a,c,b)
\tkzLabelAngle(a,c,b){\tiny $\angleACB^\circ$}
\tkzMarkAngle(b,a,c)
\tkzLabelAngle(b,a,c){\tiny $\angleBAC^\circ$}
\end{tikzpicture}
tkz-euclide AlterMundus
19. Angles 118
\begin{tikzpicture}[scale=.4]
\pgfkeys{/pgf/number format/.cd,%
fixed,precision=1}
\tkzDefPoints{0/0/A,6/0/B,4/2/C}
71.6∘
\tkzDrawCircles(A,C B,C)
\tkzDefLine[tangent at=C](A) \tkzGetPoint{a}
\tkzDefPointsBy[symmetry = center C](a){d}
\tkzDefLine[tangent at=C](B) \tkzGetPoint{b}
\tkzDrawLines[add=1 and 4](a,C C,b)
\tkzFillAngle[fill=teal,opacity=.2%
,size=2](b,C,d)
\tkzFindAngle(b,C,d)\tkzGetAngle{bcd}
\tkzLabelAngle[pos=1.25](b,C,d){%
\tiny $\pgfmathprintnumber{\bcd}^\circ$}
\end{tikzpicture}
19.4. 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.
A
\begin{tikzpicture}
D
\tkzDefPoint(1,5){A} \tkzDefPoint(5,2){B}
\tkzFindSlopeAngle(A,B)\tkzGetAngle{tkzang}
\tkzDefPointBy[rotation= center A angle \tkzang ](B)
\tkzGetPoint{C}
\tkzDefPointBy[rotation= center A angle -\tkzang ](B)
\tkzGetPoint{D}
\tkzDrawSegment(A,B)
\tkzDrawSegments[new](A,C A,D)
B \tkzDrawPoints(A,B,C,D)
\tkzCompass[length=1](A,C)
\tkzCompass[delta=10,brown](B,C)
\tkzLabelPoints(B,C,D)
C \tkzLabelPoints[above left](A)
\end{tikzpicture}
tkz-euclide AlterMundus
20. Random point definition 119
\begin{tikzpicture}
\tkzInit
\tkzDefPoint(0,0){A} \tkzDefPoint(3,2){B}
I
\tkzDefLine[mediator](A,B) \tkzGetPoints{I}{J}
\tkzCalcLength(A,B) \tkzGetLength{dAB}
\tkzFindSlopeAngle(A,B) \tkzGetAngle{tkzangle}
\begin{scope}[rotate=\tkzangle]
B \tkzSetUpArc[color=gray,line width=0.2pt,%
/tkzcompass/delta=10]
\tkzDrawArc[R,arc](B,3/4*\dAB)(120,240)
\tkzDrawArc[R,arc](A,3/4*\dAB)(-45,60)
\tkzDrawLine(I,J) \tkzDrawSegment(A,B)
A \end{scope}
\tkzDrawPoints(A,B,I,J) \tkzLabelPoints(A,B)
\tkzLabelPoints[right](I,J)
J \end{tikzpicture}
\begin{tikzpicture}[scale=1.5]
The slope of (AB) is : 45∘
\tkzDefPoint(1,2){A} \tkzDefPoint(3,4){B}
The slope of (AC) is : 0∘ \tkzDefPoint(3,2){C} \tkzDefPoint(3,1){D}
\tkzDrawSegments(A,B A,C A,D)
The slope of (AD) is : 333.43∘ \tkzDrawPoints[color=red](A,B,C,D)
B \tkzLabelPoints(A,B,C,D)
\tkzFindSlopeAngle(A,B)\tkzGetAngle{SAB}
\tkzFindSlopeAngle(A,C)\tkzGetAngle{SAC}
\tkzFindSlopeAngle(A,D)\tkzGetAngle{SAD}
\pgfkeys{/pgf/number format/.cd,fixed,precision=2}
\tkzText(1,5){The slope of (AB) is :
$\pgfmathprintnumber{\SAB}^\circ$}
A C \tkzText(1,4.5){The slope of (AC) is :
$\pgfmathprintnumber{\SAC}^\circ$}
\tkzText(1,4){The slope of (AD) is :
$\pgfmathprintnumber{\SAD}^\circ$}
D \end{tikzpicture}
1. point in a rectangle;
2. on a segment;
3. on a straight line;
4. on a circle.
tkz-euclide AlterMundus
20. Random point definition 120
\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.
D C
\begin{tikzpicture}
\tkzDefPoints{0/0/A,5/3/C}
\tkzDefRandPointOn[rectangle = A and C]
\tkzGetPoint{E}
E
\tkzDefRectangle(A,C)\tkzGetPoints{B}{D}
\tkzDrawPolygon[red](A,...,D)
\tkzDrawPoints(A,...,E)
\tkzLabelPoints(A,B)
\tkzLabelPoints[above](C,D,E)
A B \end{tikzpicture}
\begin{tikzpicture}
C
\tkzDefPoints{0/0/A,5/2/C}
\tkzDefRandPointOn[segment = A--C]\tkzGetPoint{B}
\tkzDrawLine(A,C)
\tkzDrawPoints(A,C) \tkzDrawPoint[red](B)
B \tkzLabelPoints(A,C) \tkzLabelPoints[red](B)
A \end{tikzpicture}
\begin{tikzpicture}
\tkzDefPoints{3/2/A,1/1/B}
D
\tkzCalcLength(A,B) \tkzGetLength{rAB}
C
\tkzDefRandPointOn[circle = center A radius \rAB]
\tkzGetPoint{C}
\tkzDefRandPointOn[circle through= center A through B]
E
A \tkzGetPoint{D}
\tkzDefRandPointOn[disk through=center A through B]
B
\tkzGetPoint{E}
\tkzDrawCircle(A,B)
\tkzDrawPoints(A,B)
\tkzLabelPoints(A,B)
\tkzDrawPoints[red](C,D,E)
\tkzLabelPoints[red,right](C,D,E)
\end{tikzpicture}
tkz-euclide AlterMundus
Part IV.
21. Drawing
tkz-euclide can draw 5 types of objects : point, line or line segment, circle, arc and sector.
\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.
\tikzset{point style/.style = {%
draw = black,
inner sep = 0pt,
shape = circle,
minimum size = 3 pt,
fill = black
}
}
tkz-euclide AlterMundus
22. Drawing the lines 123
\tkzDrawPoints[⟨local options⟩](⟨liste⟩)
M9 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.
21.1.3. Example
\begin{tikzpicture}
\tkzDefPoints{1/3/A,4/1/B,0/0/C}
\tkzDrawPoints[size=3,color=red,fill=red!50](A,B,C)
\end{tikzpicture}
\tikzset{line style/.style = {%
line width = 0.6pt,
color = black,
style = solid,
add = {.2} and {.2}%
}}
with
\tikzset{%
add/.style args={#1 and #2}{
to path={%
($(\tikztostart)!-#1!(\tikztotarget)$)--($(\tikztotarget)!-#2!(\tikztostart)$)%
\tikztonodes}}}
tkz-euclide AlterMundus
23. Drawing a segment 124
\tkzDrawLine[⟨local options⟩](⟨pt1,pt2⟩)
The arguments are a list of two points or three points. It would be possible, as for a half line, to create a style
with \add.
options default definition
TikZ options all TikZ options are valid.
add 0.2 and 0.2 add = kl and kr, …
… … allows the segment to be extended to the left and right.
add defines the length of the line passing through the points pt1 and pt2. Both numbers are percentages. The
styles of Tik Z are accessible for plots.
\begin{tikzpicture}
\tkzInit[xmin=-2,xmax=3,ymin=-2.25,ymax=2.25]
\tkzClip[space=.25]
F \tkzDefPoint(0,0){A} \tkzDefPoint(2,0.5){B}
E \tkzDefPoint(0,-1){C}\tkzDefPoint(2,-0.5){D}
B \tkzDefPoint(0,1){E} \tkzDefPoint(2,1.5){F}
\tkzDefPoint(0,-2){G} \tkzDefPoint(2,-1.5){H}
A
\tkzDrawLine(A,B) \tkzDrawLine[add = 0 and .5](C,D)
D \tkzDrawLine[add = 1 and 0](E,F)
C \tkzDrawLine[add = 0 and 0](G,H)
H \tkzDrawPoints(A,B,C,D,E,F,G,H)
\tkzLabelPoints(A,B,C,D,E,F,G,H)
G
\end{tikzpicture}
It is possible to draw several lines, but with the same options.
Arguments are a list of pairs of points separated by spaces. The styles of Tik Z are available for the draws.
\begin{tikzpicture}
C D
\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)
A B \tkzLabelPoints(A,B,C,D)
\end{tikzpicture}
tkz-euclide AlterMundus
23. Drawing a segment 125
\tkzDrawSegment[⟨local options⟩](⟨pt1,pt2⟩)
The arguments are a list of two points. The styles of Tik Z are available for the drawings.
argument example definition
(pt1,pt2) (A,B) draw the segment [A, B]
\begin{tikzpicture}[scale=1.5]
B
\tkzDefPoint(0,0){A}
\tkzDefPoint(2,1){B}
\tkzDrawSegment[color=red,thin](A,B)
A \tkzDrawPoints(A,B)
\tkzLabelPoints(A,B)
\end{tikzpicture}
\begin{tikzpicture}
\tkzDefPoints{0/0/A,6/0/B,0.8/4/C}
\tkzDefTriangleCenter[euler](A,B,C)
\tkzGetPoint{E}
\tkzDefCircle[euler](A,B,C)\tkzGetPoints{E}{e}
C \tkzDrawCircle[red](E,e)
\tkzDrawLines[add=.5 and .5](A,B A,C B,C)
\tkzDrawPoints(A,B,C,E)
\tkzLabelPoints(A,B,C,E)
\end{tikzpicture}
A B
23.1.3. Adding dimensions with option dim new code from Muzimuzhi Z
This code comes from an answer to this question on tex.stackexchange.com (change-color-and-style-of-dimension-
lines-in-tkz-euclide ). The code of dim is based on options of TikZ, you must add the units. You can use now two
styles : dim style and dim fence style. You have several ways to use them. I’ll let you look at the examples
to see what you can do with these styles.
tkz-euclide AlterMundus
23. Drawing a segment 126
\begin{tikzpicture}[scale=.75]
A
\tkzDefPoints{0/3/A, 1/-3/B}
\tkzDrawPoints(A,B)
\tkzDrawSegment[dim={\(l_0\),1cm,right=2mm},
dim style/.append style={red,
dash pattern={on 2pt off 2pt}}](A,B)
l2
l1 \tkzDrawSegment[dim={\(l_1\),2cm,right=2mm},
l0
dim style/.append style={blue}](A,B)
l3
\begin{scope}[ dim style/.style={orange},
dim fence style/.style={dashed}]
\tkzDrawSegment[dim={\(l_2\),3cm,right=2mm}](A,B)
\tkzDrawSegment[dim={\(l_3\),-2cm,right=2mm}](A,B)
\end{scope}
B
\tkzLabelPoints[left](A,B)
\end{tikzpicture}
C
\begin{tikzpicture}[scale=2]
\pgfkeys{/pgf/number format/.cd,fixed,precision=2}
\tkzDefPoint(0,0){A}
\tkzDefPoint(3.07,0){B}
7
2.3 \tkzInterCC[R](A,2.37)(B,1.82)
1.8
2
\tkzGetPoints{C}{C'}
\tkzDefCircle[in](A,B,C) \tkzGetPoints{G}{g}
\tkzDrawCircle(G,g)
A 3.07 B \tkzDrawPolygon(A,B,C)
\tkzDrawPoints(A,B,C)
\tkzCalcLength(A,B)\tkzGetLength{ABl}
\tkzCalcLength(B,C)\tkzGetLength{BCl}
\tkzCalcLength(A,C)\tkzGetLength{ACl}
\begin{scope}[dim style/.style={dashed,sloped,teal}]
\tkzDrawSegment[dim={\pgfmathprintnumber\BCl,6pt,%
text=red}](C,B)
\tkzDrawSegment[dim={\pgfmathprintnumber\ACl,%
6pt,}](A,C)
\tkzDrawSegment[dim={\pgfmathprintnumber\ABl,%
-6pt,}](A,B)
\end{scope}
\tkzLabelPoints(A,B) \tkzLabelPoints[above](C)
\end{tikzpicture}
tkz-euclide AlterMundus
23. Drawing a segment 127
\begin{tikzpicture}[scale=.5]
\tkzDefPoints{0/0/O,-2/0/A,2/0/B,
-2/4/C,2/4/D,2/-4/E,-2/-4/F}
C D \tkzDrawPolygon(C,...,F)
\tkzDrawSegments(A,B)
√5 \tkzDrawPoints(A,...,F,O)
\tkzLabelPoints[below left](A,...,F,O)
\tkzDrawSegment[dim={ $\sqrt{5}$,2cm,}](C,E)
2
A O B \tkzDrawSegment[dim={ $\frac{\sqrt{5}}{2}$,1cm,}](O,E)
√5
2 \tkzDrawSegment[dim={ $2$,2cm,left=8pt}](F,C)
1 \tkzDrawSegment[dim={ $1$,1cm,left=8pt}](F,A)
\end{tikzpicture}
F E
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}
B \tkzDefPoint(2,1){B}
\tkzDefPoint(3,0){C}
\tkzDrawSegments(A,B B,C)
\tkzDrawPoints(A,B,C)
A C \tkzLabelPoints(A,C)
\tkzLabelPoints[above](B)
\end{tikzpicture}
\begin{tikzpicture}
\tkzSetUpStyle[postaction=decorate,
decoration={markings,
mark=at position .5 with {\arrow[thick]{#1}}
}]{myarrow}
\tkzDefPoint(0,0){A}
\tkzDefPoint(4,-4){B}
\tkzDrawSegments[myarrow=stealth](A,B)
\tkzDrawPoints(A,B)
\end{tikzpicture}
tkz-euclide AlterMundus
23. Drawing a segment 128
A
\begin{tikzpicture}[rotate=-90]
\tkzDefPoint(0,1){A}
b \tkzDefPoint(2,4){C}
\tkzDefPointWith[orthogonal normed,K=7](C,A)
Hc
\tkzGetPoint{B}
C \tkzDefSpcTriangle[orthic,name=H](A,B,C){a,b,c}
\tkzDrawLine[dashed,color=magenta](C,Hc)
\tkzDrawSegment[green!60!black](A,C)
\tkzDrawSegment[green!60!black](C,B)
\tkzDrawSegment[green!60!black](B,A)
c
\tkzLabelPoint[left](A){$A$}
\tkzLabelPoint[right](B){$B$}
\tkzLabelPoint[above](C){$C$}
a \tkzLabelPoint[left](Hc){$Hc$}
\tkzLabelSegment[auto](B,A){$c$}
\tkzLabelSegment[auto,swap](B,C){$a$}
\tkzLabelSegment[auto,swap](C,A){$b$}
\tkzMarkAngle[size=1,color=cyan,mark=|](C,B,A)
\tkzMarkAngle[size=1,color=cyan,mark=|](A,C,Hc)
\tkzMarkAngle[size=0.75,
B
color=orange,mark=||](Hc,C,B)
\tkzMarkAngle[size=0.75,
color=orange,mark=||](B,A,C)
\tkzMarkRightAngle(A,C,B)
\tkzMarkRightAngle(B,Hc,C)
\end{tikzpicture}
Just give a list of points and the macro plots the polygon using the Tik Z options present. You can replace
(A, B, C, D, E) by (A, ..., E) and (P1 , P2 , P3 , P4 , P5 ) by (P1 , P..., P5 )
arguments example explanation
(⟨pt1,pt2,pt3,...⟩) \tkzDrawPolygon[gray,dashed](A,B,C) Drawing a triangle
23.4.1. \tkzDrawPolygon
\begin{tikzpicture} [rotate=18,scale=1]
\tkzDefPoints{0/0/A,2.25/0.2/B,2.5/2.75/C,-0.75/2/D}
\tkzDrawPolygon(A,B,C,D)
\tkzDrawSegments[style=dashed](A,C B,D)
\end{tikzpicture}
tkz-euclide AlterMundus
23. Drawing a segment 129
\begin{tikzpicture}
\tkzDefPoint(0,0){A}
\tkzDefPoint(6,0){B}
\tkzDefTriangle[two angles = 50 and 70](A,B) \tkzGetPoint{C}
\tkzDrawPolygon(A,B,C)
\tkzLabelAngle[pos=1.4](B,A,C){$50^\circ$}
\tkzLabelAngle[pos=0.8](C,B,A){$70^\circ$}
\end{tikzpicture}
50∘ 70∘
\begin{tikzpicture}[scale=.6]
\tkzSetUpLine[line width=5mm,color=teal]
\tkzDefPoint(0,0){O}
\foreach \i in {0,...,5}{%
\tkzDefPoint({30+60*\i}:4){p\i}}
\tkzDefMidPoint(p1,p3) \tkzGetPoint{m1}
\tkzDefMidPoint(p3,p5) \tkzGetPoint{m3}
\tkzDefMidPoint(p5,p1) \tkzGetPoint{m5}
\tkzDrawPolygon[line join=round](p1,p3,p5)
\tkzDrawPolygon[teal!80,
line join=round](p0,p2,p4)
\tkzDrawSegments(m1,p3 m3,p5 m5,p1)
\tkzDefCircle[R](O,4.8)\tkzGetPoint{o}
\tkzDrawCircle[teal](O,o)
\end{tikzpicture}
Just give a list of points and the macro plots the polygonal chain using the Tik Z options present.
arguments example explanation
(⟨pt1,pt2,pt3,...⟩) \tkzDrawPolySeg[gray,dashed](A,B,C) Drawing a triangle
tkz-euclide AlterMundus
24. Draw a circle with \tkzDrawCircle 130
\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}
\tkzDrawCircle[⟨local options⟩](⟨A,B⟩)
M9 Attention you need only two points to define a radius. 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...
tkz-euclide AlterMundus
24. Draw a circle with \tkzDrawCircle 131
24.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 center O and passing through A
\tkzDrawCircle(O,A)
% diameter circle $[OA]$
\tkzDefCircle[diameter](O,A) \tkzGetPoint{I}
\tkzDrawCircle[new,fill=orange!10,opacity=.5](I,A)
% circle with center O and radius = exp(1) cm
\edef\rayon{\fpeval{0.25*exp(1)}}
\tkzDefCircle[R](O,\rayon) \tkzGetPoint{o}
\tkzDrawCircle[color=orange](O,o)
\end{tikzpicture}
M9 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.
You do not need to use the default option through. Of course, you have to add all the styles of Tik Z for the
tracings...
tkz-euclide AlterMundus
24. Draw a circle with \tkzDrawCircle 132
\begin{tikzpicture}
\tkzDefPoints{0/0/A,2/0/B,3/2/C}
\tkzDrawPolygon(A,B,C)
\tkzDrawCircles(A,B B,C C,A)
\tkzDrawPoints(A,B,C)
\tkzLabelPoints(A,B,C)
\end{tikzpicture}
A B
\begin{tikzpicture}
\tkzDefPoints{0/0/A,1/0/a,2/0/b,3/0/c}
\tkzDrawCircles(A,a A,b A,c)
\tkzDrawPoint(A)
\tkzLabelPoints(A)
\end{tikzpicture}
tkz-euclide AlterMundus
24. Draw a circle with \tkzDrawCircle 133
\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}
\tkzDrawCircle(J_c,T_c)
\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}
24.2.4. Cardioid
Based on an idea by O. Reboux made with pst-eucl (Pstricks module) by D. Rodriguez.
Its name comes from the Greek kardia (heart), in reference to its shape, and was given to it by Johan Castillon
(Wikipedia).
\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}
tkz-euclide AlterMundus
24. Draw a circle with \tkzDrawCircle 134
\tkzDrawSemiCircle[⟨local options⟩](⟨O,A⟩)
\begin{tikzpicture}
\tkzDefPoint(0,0){A} \tkzDefPoint(6,0){B}
\tkzDefMidPoint(A,B) \tkzGetPoint{O}
\tkzDrawSemiCircle[blue](O,B)
\tkzDrawSemiCircle[red](O,A)
\tkzDrawPoints(O,A,B)
\tkzLabelPoints[below right](O,A,B)
\end{tikzpicture}
A O B
A C B
tkz-euclide AlterMundus
25. Draw an ellipse with \tkzDrawEllipse 135
\begin{tikzpicture}[scale=.75]
\tkzDefPoints{0/0/A,10/0/B}
\tkzDefGoldenRatio(A,B) \tkzGetPoint{C}
\tkzDefMidPoint(A,B) \tkzGetPoint{O_0}
\tkzDefMidPoint(A,C) \tkzGetPoint{O_1}
\tkzDefMidPoint(C,B) \tkzGetPoint{O_2}
\tkzLabelPoints(A,B,C)
\tkzDrawSegment(A,B)
\tkzDrawPoints(A,B,C)
\begin{scope}[local bounding box = graph]
\tkzDrawSemiCircles[color=black](O_0,B)
\end{scope}
\useasboundingbox (graph.south west) rectangle (graph.north east);
\tkzClipCircle[out](O_1,C)\tkzClipCircle[out](O_2,B)
\tkzDrawSemiCircles[draw=none,fill=teal!15](O_0,B)
\tkzDrawSemiCircles[color=black](O_1,C O_2,B)
\end{tikzpicture}
\tkzDrawEllipse[⟨local options⟩](⟨C,a,b,An⟩)
Of course, you have to add all the styles of Tik Z for the tracings...
\begin{tikzpicture}[scale=.75]
\tkzDefPoint(0,4){C}
\tkzDrawEllipse[blue](C,4,2,45)
\tkzLabelPoints(C)
\end{tikzpicture}
tkz-euclide AlterMundus
26. Drawing arcs 136
\tkzDrawArc[⟨local options⟩](⟨O,…⟩)(⟨…⟩)
This macro traces the arc of center O. Depending on the options, the arguments differ. It is a question of deter-
mining 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...
tkz-euclide AlterMundus
26. Drawing arcs 137
\begin{tikzpicture}[scale=0.75]
\tkzDefPoint(0,0){O}
B \tkzDefPoint(2,-1){A}
\tkzDefPoint(1,1){B}
O \tkzDrawArc[color=blue,->](O,A)(B)
\tkzDrawArc[color=gray](O,B)(A)
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}[scale=0.75]
\tkzDefPoint(0,0){O}
\tkzDefPoint(2,-2){A}
B
\tkzDefPoint(60:2){B}
\tkzDrawLines[add = 0 and .5](O,A O,B)
\tkzDrawArc[rotate,color=red](O,A)(180)
O \tkzDrawPoints(O,A,B)
\tkzLabelPoints[below](O,A,B)
\end{tikzpicture}
A
26.1.4. Option R
\begin{tikzpicture}[scale=0.75]
\tkzDefPoints{0/0/O}
\tkzSetUpCompass[<->]
\tkzDrawArc[R,color=teal,double](O,3)(270,360)
O
\tkzDrawArc[R,color=orange,double](O,2)(0,270)
\tkzDrawPoint(O)
\tkzLabelPoint[below](O){$O$}
\end{tikzpicture}
\begin{tikzpicture}[scale=0.75]
\tkzDefPoint(0,0){O}
\tkzDefPoint(2,-1){A}
\tkzDefPoint(1,1){B}
\tkzCalcLength(B,A)\tkzGetLength{radius}
\tkzDrawArc[R with nodes](B,\radius)(A,O)
\end{tikzpicture}
tkz-euclide AlterMundus
26. Drawing arcs 138
\begin{tikzpicture}
\tkzDefPoint(0,0){A}
\tkzDefPoint(3,0){B}
D \tkzDefPointBy[rotation= center A angle 60](B)
\tkzGetPoint{C}
\begin{scope}% style only local
\tkzDefPointBy[symmetry= center C](A)
\tkzGetPoint{D}
\tkzDrawSegments(A,B A,D)
C
\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)
\end{scope}
A B \tkzDrawPoints(A,B,C,D)
\tkzLabelPoints[below right](A,B,C,D)
\tkzMarkRightAngle(D,B,A)
\end{tikzpicture}
\begin{tikzpicture}[scale=.75]
\tkzDefPoint(0,0){A}
E \tkzDefPoint(5,0){B}
\tkzDefPoint(2.5,0){O}
\tkzDefPointBy[rotation=center O angle 60](B)
\tkzGetPoint{D}
D \tkzDefPointBy[symmetry=center D](O)
\tkzGetPoint{E}
\begin{scope}
\tkzDrawArc[angles](O,B)(0,180)
A O B \tkzDrawArc[angles,](B,O)(100,180)
\tkzCompass[delta=20](D,E)
\tkzDrawLines(A,B O,E B,E)
\tkzDrawPoints(A,B,O,D,E)
\end{scope}
\tkzLabelPoints[below right](A,B,O,D,E)
\tkzMarkRightAngle(O,B,E)
\end{tikzpicture}
tkz-euclide AlterMundus
27. Drawing a sector or sectors 139
\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}
\begin{tikzpicture}
B
\tkzDefPoints{0/0/O,3/0/U}
\tkzDefPoint(10:1){A}
A
\tkzDefPoint(90:1){B}
\tkzLabelPoints(A,B)
\tkzDrawArc[reverse,tkz arrow={Stealth}](O,A)(B)
\tkzDrawPoints(A,B,O)
\end{tikzpicture}
27.1. \tkzDrawSector
\tkzDrawSector[⟨local options⟩](⟨O,…⟩)(⟨…⟩)
tkz-euclide AlterMundus
27. Drawing a sector or sectors 140
\begin{tikzpicture}[scale=2]
\tkzDefPoints{0/0/O,2/2/A,2/1/B}
\tkzDrawSector[rotate,orange](O,A)(20)
\tkzDrawSector[rotate,teal](O,B)(-20)
\end{tikzpicture}
\begin{tikzpicture}[scale=1.25]
\tkzDefPoint(0,0){O}
\tkzDefPoint(2,-1){A}
\tkzDrawSector[R](O,1)(30,90)
\tkzDrawSector[R](O,1)(90,180)
\tkzDrawSector[R](O,1)(180,270)
\tkzDrawSector[R](O,1)(270,360)
\end{tikzpicture}
tkz-euclide AlterMundus
27. Drawing a sector or sectors 141
\begin{tikzpicture}[scale=1.25]
C
\tkzDefPoint(0,0){O}
\tkzDefPoint(4,-2){A}
\tkzDefPoint(4,1){B}
\tkzDefPoint(3,3){C}
\tkzDrawSector[R with nodes,%
fill=teal!20](O,1)(B,C)
B
\tkzDrawSector[R with nodes,%
fill=orange!20](O,1.25)(A,B)
O \tkzDrawSegments(O,A O,B O,C)
\tkzDrawPoints(O,A,B,C)
\tkzLabelPoints(A,B,C)
\tkzLabelPoints[left](O)
\end{tikzpicture}
\begin{tikzpicture} [scale=.4]
3 C
D \tkzDefPoints{-1/-2/A,1/3/B}
S \tkzDefRegPolygon[side,sides=6](A,B)
2 \tkzGetPoint{O}
𝛼
4 \tkzDrawPolygon[fill=black!10, draw=blue](P1,P...,P6)
B \tkzLabelRegPolygon[sep=1.05](O){A,...,F}
\tkzDrawCircle[dashed](O,A)
E
16m
\tkzLabelSegment[above,sloped,
1 midway](A,B){\(A B = 16m\)}
=
AB
\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
27. Drawing a sector or sectors 142
\begin{tikzpicture}[scale=.75]
\tkzDefPoint(0,0){O}
\tkzDefPoint(-4,0){A}
\tkzDefPoint(4,0){B}
\tkzDefPoint(-2,0){I}
\tkzDefPoint(2,0){J}
\tkzDrawSector[fill=teal](O,A)(B)
\tkzFillCircle[fill=white](J,B)
\tkzFillCircle[fill=teal](I,A)
\tkzDrawCircle(O,A)
\end{tikzpicture}
\begin{tikzpicture}
\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}
\tkzDefLine[tangent from = B](F,A)
\tkzGetPoints{H}{G}
\tkzInterLL(F,G)(C,D) \tkzGetPoint{J}
\tkzInterLL(A,J)(F,E) \tkzGetPoint{K}
\tkzDefPointBy[projection=onto B--A](K)
\tkzGetPoint{M}
\tkzDrawPolygon(A,B,C,D)
\tkzFillCircle[red!20](E,B)
\tkzFillCircle[blue!20](M,A)
\tkzFillCircle[green!20](K,Q)
\tkzDrawCircles(B,A M,A E,B K,Q)
\end{tikzpicture}
tkz-euclide AlterMundus
27. Drawing a sector or sectors 143
\begin{tikzpicture}
\tkzDefPoints{0/0/A,4/0/B,2/2/O,3/4/X,4/1/Y,1/0/Z,
0/3/W,3/0/R,4/3/S,1/4/T,0/1/U}
\tkzDefSquare(A,B)\tkzGetPoints{C}{D}
\tkzDefPointWith[colinear normed=at X,K=1](O,X)
\tkzGetPoint{F}
\begin{scope}
\tkzFillCircle[fill=teal!20](O,F)
\tkzFillPolygon[white](A,...,D)
\tkzClipPolygon(A,...,D)
\foreach \c/\t in {S/C,R/B,U/A,T/D}
{\tkzFillCircle[teal!20](\c,\t)}
\end{scope}
\foreach \c/\t in {X/C,Y/B,Z/A,W/D}
{\tkzFillCircle[white](\c,\t)}
\foreach \c/\t in {S/C,R/B,U/A,T/D}
{\tkzFillCircle[teal!20](\c,\t)}
\end{tikzpicture}
\begin{tikzpicture}[scale=.75]
C \tkzDefPoints{0/0/A,8/0/B,8/8/C,0/8/D}
\tkzDefMidPoint(A,B) \tkzGetPoint{F}
\tkzDefMidPoint(B,C) \tkzGetPoint{E}
\tkzDefMidPoint(D,B) \tkzGetPoint{I}
\tkzDefMidPoint(I,B) \tkzGetPoint{a}
\tkzInterLC(B,I)(B,C) \tkzGetSecondPoint{K}
b
\tkzDefMidPoint(I,K) \tkzGetPoint{b}
\begin{scope}
E
\tkzFillSector[fill=blue!10](B,C)(A)
\tkzDefMidPoint(A,B) \tkzGetPoint{x}
\tkzDrawSemiCircle[fill=white](x,B)
a
\tkzDefMidPoint(B,C) \tkzGetPoint{y}
\tkzDrawSemiCircle[fill=white](y,C)
\tkzClipCircle(E,B)
\tkzClipCircle(F,B)
A F B \tkzFillCircle[fill=blue!10](B,A)
\end{scope}
\tkzDrawSemiCircle[thick](F,B)
\tkzDrawSemiCircle[thick](E,C)
\tkzDrawArc[thick](B,C)(A)
\tkzDrawSegments[thick](A,B B,C)
\tkzDrawPoints(A,B,C,E,F)
\tkzLabelPoints[centered](a,b)
\tkzLabelPoints(A,B,C,E,F)
\end{tikzpicture}
tkz-euclide AlterMundus
27. Drawing a sector or sectors 144
\begin{tikzpicture}
\tkzDefPoint(0,0){A} \tkzDefPoint(1,0){B}
\tkzDefPoint(2,0){C} \tkzDefPoint(-3,0){a}
\tkzDefPoint(3,0){b} \tkzDefPoint(0,3){c}
\tkzDefPoint(0,-3){d}
\begin{scope}
\tkzClipPolygon(a,b,c,d)
\tkzFillCircle[teal!20](A,C)
\end{scope}
\tkzFillCircle[white](A,B)
\tkzDrawCircle[color=red](A,C)
\tkzDrawCircle[color=red](A,B)
\end{tikzpicture}
You can color by drawing the polygon, but in this case you color the inside of the polygon without drawing it.
27.3.1. \tkzFillPolygon
\begin{tikzpicture}[scale=.5]
\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[color = orange!30 ](A,C,G,H)
b
c \tkzFillPolygon[color = teal!40 ](C,B,I,J)
a \tkzFillPolygon[color = purple!20](B,A,E,F)
\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[above](C,A){$a$}
\tkzLabelSegment[right](B,C){$b$}
\tkzLabelSegment[below left](B,A){$c$}
\end{tikzpicture}
27.4. \tkzFillSector
tkz-euclide AlterMundus
27. Drawing a sector or sectors 145
\tkzFillSector[⟨local options⟩](⟨O,…⟩)(⟨…⟩)
Of course, you have to add all the styles of Tik Z for the tracings...
\begin{tikzpicture}[scale=1.5]
\tkzDefPoint(0,0){O} \tkzDefPoint(2,2){A}
\tkzFillSector[rotate,color=purple!20](O,A)(30)
\tkzFillSector[rotate,color=teal!40](O,A)(-30)
\end{tikzpicture}
tkz-euclide AlterMundus
27. Drawing a sector or sectors 146
\tkzFillAngle[⟨local options⟩](⟨A,O,B⟩)
O is the vertex of the angle. OA and OB 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=2, 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=2,fill=gray!10](B,O,A)
\tkzDrawLines(O,A O,B)
\tkzDrawPoints(O,A,B)
\end{tikzpicture}
\begin{tikzpicture}
\tkzInit
\tkzDefPoints{0/0/O,5/0/A,3/4/B}
% Don't forget {} to get, () to use
\tkzFillAngle[size=4,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.
tkz-euclide AlterMundus
28. Controlling Bounding Box 147
A D
\begin{tikzpicture}[scale=0.5]
\tkzDefPoints{0/0/B,8/0/C,0/8/A,8/8/D}
M
\tkzDrawPolygon(B,C,D,A)
\tkzDefTriangle[equilateral](B,C) \tkzGetPoint{M}
N
\tkzInterLL(D,M)(A,B) \tkzGetPoint{N}
\tkzDefPointBy[rotation=center N angle -60](D)
P \tkzGetPoint{L}
\tkzInterLL(N,L)(M,B) \tkzGetPoint{P}
Q
\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)
B L C \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}
– \tkzInit
– \tkzClip
To this, I added macros directly linked to the bounding box. You can now view it, backup it, restore it (see the
section Bounding Box).
tkz-euclide AlterMundus
28. Controlling Bounding Box 148
28.2. \tkzInit
\tkzInit[⟨local options⟩]
The role of \tkzInit is to define a orthogonal coordinates system and a rectangular part of the plane in which
you will place your drawings using Cartesian coordinates. This macro allows you to define your working envi-
ronment as with a calculator. With tkz-euclide 4 \xstep and \ystep are always 1. Logically it is no longer
useful to use \tkzInit, except for an action like Clipping Out.
28.3. \tkzClip
\tkzClip[⟨local options⟩]
The role of this macro is to make invisible what is outside the rectangle defined by (xmin ; ymin) and (xmax ; ymax).
options default definition
space 1 added value on the right, left, bottom and top of the background
The role of the space option is to enlarge the visible part of the drawing. This part becomes the rectangle defined
by (xmin-space ; ymin-space) and (xmax+space ; ymax+space). space can be negative! The unit is cm and
should not be specified.
The role of this macro is to clip the initial rectangle so that only the paths contained in this rectangle are drawn.
y \begin{tikzpicture}
\tkzInit[xmax=4, ymax=3]
\tkzDefPoints{-1/-1/A,5/2/B}
\tkzDrawX \tkzDrawY
\tkzGrid
\tkzClip
\tkzDrawSegment(A,B)
\end{tikzpicture}
x
It is possible to add a bit of space
\tkzClip[space=1]
tkz-euclide AlterMundus
28. Controlling Bounding Box 149
\begin{tikzpicture}
y \tkzInit[xmax=4, ymax=3]
\tkzDefPoints{-1/-1/A,5/2/B}
\tkzDrawX \tkzDrawY
\tkzGrid
\tkzClip[space=1]
\tkzDrawSegment(A,B)
\end{tikzpicture}
The dimensions of the clipped rectangle are xmin-1, ymin-1, xmax+1 and ymax+1.
28.5. tkzShowBB
The simplest macro.
\tkzShowBB[⟨local options⟩]
This macro displays the bounding box. A rectangular frame surrounds the bounding box. This macro accepts
Tik Z options.
\begin{tikzpicture}[scale=.5]
\tkzInit[ymax=5,xmax=8]
\tkzGrid
\tkzDefPoint(3,0){A}
\begin{scope}
\tkzClipBB
\tkzDefCircle[R](A,5) \tkzGetPoint{a}
\tkzDrawCircle(A,a)
\tkzShowBB[line width = 4pt,fill=teal!10,%
opacity=.4]
\end{scope}
\tkzDefCircle[R](A,4) \tkzGetPoint{b}
\tkzDrawCircle[red](A,b)
\end{tikzpicture}
28.6. tkzClipBB
\tkzClipBB
tkz-euclide AlterMundus
28. Controlling Bounding Box 150
\begin{tikzpicture}
\tkzInit[xmin=-3,xmax=6, ymin=-1,ymax=6]
\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}
\tkzDrawPoints(O,I,J,i,j)
\tkzClipBB
\tkzDrawLines[add = 1 and 2,color=orange](O,I O,J)
\tkzDrawLines[add = 1 and 2](O,i O,j)
\tkzShowBB
\end{tikzpicture}
tkz-euclide AlterMundus
29. Clipping different objects 151
This macro makes it possible to contain the different plots in the designated polygon.
29.1.1. \tkzClipPolygon
\begin{tikzpicture}[scale=1.25]
\tkzDefPoint(0,0){A}
\tkzDefPoint(4,0){B}
\tkzDefPoint(1,3){C}
D
\tkzDrawPolygon(A,B,C)
\tkzDefPoint(0,2){D}
\tkzDefPoint(2,0){E}
\tkzDrawPoints(D,E)
\tkzLabelPoints(D,E)
\tkzClipPolygon(A,B,C)
E
\tkzDrawLine[new](D,E)
\end{tikzpicture}
29.1.2. \tkzClipPolygon[out]
\begin{tikzpicture}[scale=1]
\tkzDefPoint(0,0){P1}
\tkzDefPoint(4,0){P2}
\tkzDefPoint(4,4){P3}
\tkzDefPoint(0,4){P4}
\tkzDefPoint(1,1){Q1}
\tkzDefPoint(3,1){Q2}
\tkzDefPoint(3,3){Q3}
\tkzDefPoint(1,3){Q4}
\tkzDrawPolygon(P1,P2,P3,P4)
\begin{scope}
\tkzClipPolygon[out](Q1,Q2,Q3,Q4)
\tkzFillPolygon[teal!20](P1,P2,P3,P4)
\end{scope}
\tkzDrawPolygon(Q1,Q2,Q3,Q4)
\end{tikzpicture}
tkz-euclide AlterMundus
29. Clipping different objects 152
\begin{tikzpicture}[scale=.75]
\tkzDefPoint(0,0){A} \tkzDefPoint(8,0){B}
\tkzDefSquare(A,B) \tkzGetPoints{C}{D}
\tkzDefPoint(4,8){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}
\tkzClipPolygon(B,C,D,A)
\tkzFillPolygon[color = orange](A,B,C,D)
\tkzFillCircle[color = yellow](M,I)
\tkzFillCircle[color = blue!50!black](F,D)
\end{tikzpicture}
\tkzClipCircle[⟨local options⟩](⟨A,B⟩)
\begin{tikzpicture}[scale=.5]
C
\tkzDefPoint(0,0){A} \tkzDefPoint(2,2){O}
B
\tkzDefPoint(4,4){B} \tkzDefPoint(5,5){C}
\tkzDrawPoints(O,A,B,C)
O \tkzLabelPoints(O,A,B,C)
\tkzDrawCircle(O,A)
\tkzClipCircle(O,A)
A
\tkzDrawLine(A,C)
\tkzDrawCircle[fill=teal!10,opacity=.5](C,O)
\end{tikzpicture}
tkz-euclide AlterMundus
29. Clipping different objects 153
\begin{tikzpicture}
\tkzInit[xmin=-3,ymin=-2,xmax=4,ymax=3]
\tkzDefPoint(0,0){O}
\tkzDefPoint(-4,-2){A}
\tkzDefPoint(3,1){B}
\tkzDefCircle[R](O,2) \tkzGetPoint{o}
\tkzDrawPoints(A,B) % to have a good bounding box
\begin{scope}
\tkzClipCircle[out](O,o)
\tkzDrawLines(A,B)
\end{scope}
\end{tikzpicture}
\begin{tikzpicture}
\tkzDefPoints{0/0/O,4/0/A,0/4/B}
\tkzDrawPolygon[fill=teal](O,A,B)
\tkzClipPolygon(O,A,B)
\tkzClipCircle(A,O)
\tkzClipCircle(B,O)
\tkzFillPolygon[white](O,A,B)
\end{tikzpicture}
\tkzClipSector[⟨local options⟩](⟨O,…⟩)(⟨…⟩)
You have to add, of course, all the styles of Tik Z for tracings...
tkz-euclide AlterMundus
29. Clipping different objects 154
29.5.1. Example 1
\begin{tikzpicture}[scale=0.5]
\tkzDefPoint(0,0){a}
\tkzDefPoint(12,0){b}
\tkzDefPoint(4,10){c}
\tkzInterCC[R](a,6)(b,8)
\tkzGetFirstPoint{AB1} \tkzGetSecondPoint{AB2}
\tkzInterCC[R](a,6)(c,6)
\tkzGetFirstPoint{AC1} \tkzGetSecondPoint{AC2}
\tkzInterCC[R](b,8)(c,6)
\tkzGetFirstPoint{BC1} \tkzGetSecondPoint{BC2}
\tkzDrawArc(a,AB2)(AB1)
\tkzDrawArc(b,AB1)(AB2)
\tkzDrawArc(a,AC2)(AC1)
\tkzDrawArc(c,AC1)(AC2)
\tkzDrawArc(b,BC2)(BC1)
\tkzDrawArc(c,BC1)(BC2)
\begin{scope}
\tkzClipSector(b,BC2)(BC1)
\tkzFillSector[teal!40!white](c,BC1)(BC2)
\end{scope}
\begin{scope}
\tkzClipSector(a,AB2)(AB1)
\tkzFillSector[teal!40!white](b,AB1)(AB2)
\end{scope}
\begin{scope}
\tkzClipSector(a,AC2)(AC1)
\tkzFillSector[teal!40!white](c,AC1)(AC2)
\end{scope}
\end{tikzpicture}
29.5.2. Example 2
\begin{tikzpicture}[scale=1.5]
\tkzDefPoint(0,0){O}
\tkzDefPoint(2,-1){A}
\tkzDefPoint(1,1){B}
\tkzDrawSector[new,dashed](O,A)(B)
\tkzDrawSector[new](O,B)(A)
\begin{scope}
\tkzClipSector(O,B)(A)
\tkzDefSquare(O,B) \tkzGetPoints{B'}{O'}
\tkzDrawPolygon[color=teal,fill=teal!20](O,B,B',O')
\end{scope}
\tkzDrawPoints(A,B,O)
\end{tikzpicture}
tkz-euclide AlterMundus
29. Clipping different objects 155
\begin{tikzpicture}
\tkzDefPoint(0,5){A}\tkzDefPoint(5,4){B}
\tkzDefPoint(0,0){C}\tkzDefPoint(5,1){D}
\tkzDrawSegments(A,B C,D A,C)
\pgfinterruptboundingbox
\tkzInterLL(A,B)(C,D)\tkzGetPoint{I}
\endpgfinterruptboundingbox
\tkzClipBB
\tkzDrawCircle(I,B)
\end{tikzpicture}
\tikzset{tkzreverseclip/.style={insert path={
(current bounding box.south west) --(current bounding box.north west)
--(current bounding box.north east) -- (current bounding box.south east)
-- cycle} }}
tkz-euclide AlterMundus
29. Clipping different objects 156
\begin{tikzpicture}[scale=1]
\tkzInit[xmin=-5,xmax=5,ymin=-4,ymax=6]
\tkzClip
\tkzDefPoints{-.5/0/P1,.5/0/P2}
\foreach \i [count=\j from 3] in {2,...,7}{%
\tkzDefShiftPoint[P\i]({45*(\i-1)}:1){P\j}}
\tkzClipPolygon[out](P1,P...,P8)
\tkzCalcLength(P1,P5)\tkzGetLength{r}
\begin{scope}[blend group=screen]
\foreach \i in {1,...,8}{%
\tkzDefCircle[R](P\i,\r) \tkzGetPoint{x}
\tkzFillCircle[color=teal](P\i,x)}
\end{scope}
\end{tikzpicture}
tkz-euclide AlterMundus
Part V.
Marking
158
\tkzMarkSegment[⟨local options⟩](⟨pt1,pt2⟩)
\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
159
C′
\begin{tikzpicture}[scale=1]
\tkzDefPoint(0,0){A}\tkzDefPoint(3,2){B}
\tkzDefPoint(4,0){C}\tkzDefPoint(2.5,1){P}
P′
\tkzDrawPolygon(A,B,C)
B
\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)
P \tkzDrawSegment(C,P)
\tkzDrawPoints(A,B,C,C',P,P')
A C \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}
\tkzMarkArc[⟨local options⟩](⟨pt1,pt2,pt3⟩)
The macro allows you to place a mark on an arc. pt1 is the center, pt2 and pt3 are the endpoints of the arc.
|, ||,|||, z, s, x, o, oo
\begin{tikzpicture}
\tkzDefPoint(0,0){O}
\pgfmathsetmacro\r{2}
\tkzDefPoint(30:\r){A}
\tkzDefPoint(85:\r){B}
\tkzDrawCircle(O,A)
\tkzMarkArc[color=red,mark=||](O,A,B)
\tkzDrawPoints(B,A,O)
\end{tikzpicture}
tkz-euclide AlterMundus
160
|, ||,|||, z, s, x, o, oo
\tkzMarkAngle[⟨local options⟩](⟨A,O,B⟩)
O 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.
\begin{tikzpicture}[scale=.75]
\tkzDefPoints{0/0/O,5/0/A,3/4/B}
\tkzMarkAngle[size = 4,mark = x,
arc=ll,mkcolor = red,mkpos=.33](A,O,B)
\tkzMarkAngle[size = 2,mark = ||,
arc=ll,mkcolor = blue,mkpos=.66](A,O,B)
\tkzDrawLines(O,A O,B)
\tkzDrawPoints(O,A,B)
\end{tikzpicture}
\tkzMarkAngles[⟨local options⟩](⟨A,O,B⟩)(⟨A',O',B'⟩)etc.
tkz-euclide AlterMundus
161
\begin{tikzpicture}[scale=1]
\tkzDefPoint(0,0){O}
\tkzDefPoint(2.5,0){N}
B \tkzDefPoint(-4.2,0.5){M}
C \tkzDefPointBy[rotation=center O angle 30](N)
M
\tkzGetPoint{B}
O \tkzDefPointBy[rotation=center O angle -50](N)
A′ \tkzGetPoint{A}
\tkzInterLC[common=B](M,B)(O,B) \tkzGetFirstPoint{C}
\tkzInterLC[common=A](M,A)(O,A) \tkzGetFirstPoint{A'}
\tkzDrawSegments(A,C M,A M,B A,B)
A \tkzDrawCircle(O,N)
\begin{scope}[veclen]
\tkzMarkAngle[mkpos=.2, size=1.2](C,A,M)
\end{scope}
\tkzDrawPoints(O, A, B, M, B, C, A')
\tkzLabelPoints[right](O,A,B)
\tkzLabelPoints[above left](M,C)
\tkzLabelPoint[below left](A'){$A'$}
\end{tikzpicture}
\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.
\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}
tkz-euclide AlterMundus
162
\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](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}
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)
B
H \tkzDrawPoints(A,B,C,H)
\end{tikzpicture}
A
tkz-euclide AlterMundus
163
A
\begin{tikzpicture}[rotate=-90]
\tkzDefPoint(0,1){A}
b \tkzDefPoint(2,4){C}
\tkzDefPointWith[orthogonal normed,K=7](C,A)
P
\tkzGetPoint{B}
C \tkzDrawSegment[green!60!black](A,C)
\tkzDrawSegment[green!60!black](C,B)
\tkzDrawSegment[green!60!black](B,A)
\tkzDefSpcTriangle[orthic](A,B,C){N,O,P}
\tkzDrawLine[dashed,color=magenta](C,P)
c
\tkzLabelPoint[left](A){$A$}
\tkzLabelPoint[right](B){$B$}
\tkzLabelPoint[above](C){$C$}
a \tkzLabelPoint[left](P){$P$}
\tkzLabelSegment[auto](B,A){$c$}
\tkzLabelSegment[auto,swap](B,C){$a$}
\tkzLabelSegment[auto,swap](C,A){$b$}
\tkzMarkAngle[size=1,color=cyan,mark=|](C,B,A)
\tkzMarkAngle[size=1,color=cyan,mark=|](A,C,P)
\tkzMarkAngle[size=0.75,color=orange,
B
mark=||](P,C,B)
\tkzMarkAngle[size=0.75,color=orange,
mark=||](B,A,C)
\tkzMarkRightAngle[german](A,C,B)
\tkzMarkRightAngle[german](B,P,C)
\end{tikzpicture}
29.16. \tkzMarkRightAngles
\tkzMarkRightAngles[⟨local options⟩](⟨A,O,B⟩)(⟨A',O',B'⟩)etc.
\tkzPicAngle[⟨tikz options⟩](⟨A,O,B⟩)
\tkzPicRightAngle[⟨tikz options⟩](⟨A,O,B⟩)
tkz-euclide AlterMundus
164
C
\begin{tikzpicture}
\tkzDefPoints{0/0/A,4/0/B}
\tkzDefTriangle[right,swap](A,B) \tkzGetPoint{C}
\tkzDrawPolygon(A,B,C)
\tkzDrawPoints(A,B,C)
\tkzLabelPoints[below](B,A)
\tkzLabelPoints[above right](C)
𝛼 \tkzPicAngle["$\alpha$",draw=orange,
.
<->,angle eccentricity=1.2,
A B angle radius=1cm](B,A,C)
\tkzPicRightAngle[draw,red,thick,
angle eccentricity=.5,
pic text=.](C,B,A)
\end{tikzpicture}
tkz-euclide AlterMundus
Part VI.
Labelling
30. Labelling 166
30. Labelling
\tkzLabelPoint[⟨local options⟩](⟨point⟩){⟨label⟩}
arguments example
point \tkzLabelPoint(A){$A_1$}
options default definition
TikZ options colour, position etc.
Optionally, we can use any style of Tik Z, especially placement with above, right, dots...
C
\begin{tikzpicture}
\tkzDefPoint(0,0){A}
\tkzDefPoint(4,0){B}
\tkzDefPoint(0,3){C}
\tkzDrawSegments(A,B B,C C,A)
\tkzDrawPoints(A,B,C)
\tkzLabelPoint[left,red](A){$A$}
\tkzLabelPoint[right,blue](B){$B$}
A B \tkzLabelPoint[above,purple](C){$C$}
\end{tikzpicture}
A1
\begin{tikzpicture}
\tkzDefPoint(2,0){A}
\tkzDrawPoint(A)
\tkzLabelPoint[above](A){$A_1$}
\end{tikzpicture}
This macro reduces the number of lines of code, but it is not obvious that all points need the same label posi-
tioning.
tkz-euclide AlterMundus
31. Label for a segment 167
\begin{tikzpicture}
C
\tkzDefPoint(2,3){A}
\tkzDefShiftPoint[A](30:2){B}
\tkzDefShiftPoint[A](30:5){C}
B \tkzDrawPoints(A,B,C)
\tkzLabelPoints(A,B,C)
\end{tikzpicture}
A
\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.
argument example definition
label \tkzLabelSegment(A,B){5} label text
(pt1,pt2) (A,B) label along [AB]
tkz-euclide AlterMundus
31. Label for a segment 168
a \begin{tikzpicture}
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}
\tikzstyle{background rectangle}=[fill=black]
\begin{tikzpicture}[show background rectangle,scale=.4]
\tkzDefPoint(0,0){O}
\tkzDefPoint(1,0){I}
√a \tkzDefPoint(10,0){A}
\tkzDefPointWith[orthogonal normed,K=4](I,A)
1 a \tkzGetPoint{H}
\tkzDefMidPoint(O,A) \tkzGetPoint{M}
\tkzInterLC(I,H)(M,A)\tkzGetPoints{B}{C}
\tkzDrawSegments[color=white,line width=1pt](I,H O,A)
\tkzDrawPoints[color=white](O,I,A,B,M)
\tkzMarkRightAngle[color=white,line width=1pt](A,I,B)
\tkzDrawArc[color=white,line width=1pt,
style=dashed](M,A)(O)
\tkzLabelSegment[white,right=1ex,pos=.5](I,B){$\sqrt{a}$}
\tkzLabelSegment[white,below=1ex,pos=.5](O,I){$1$}
\tkzLabelSegment[pos=.6,white,below=1ex](I,A){$a$}
\end{tikzpicture}
\begin{tikzpicture}[rotate=-60]
A
b C \tkzSetUpStyle[red,auto]{label style}
\tkzDefPoint(0,1){A}
\tkzDefPoint(2,4){C}
\tkzDefPointWith[orthogonal normed,K=7](C,A)
\tkzGetPoint{B}
P \tkzDefSpcTriangle[orthic](A,B,C){N,O,P}
\tkzDefTriangleCenter[circum](A,B,C)
\tkzGetPoint{O}
\tkzDrawPolygon[green!60!black](A,B,C)
\tkzDrawLine[dashed,color=magenta](C,P)
c a \tkzLabelSegment(B,A){$c$}
\tkzLabelSegment[swap](B,C){$a$}
\tkzLabelSegment[swap](C,A){$b$}
\tkzMarkAngles[size=1,
color=cyan,mark=|](C,B,A A,C,P)
\tkzMarkAngle[size=0.75,
color=orange,mark=||](P,C,B)
\tkzMarkAngle[size=0.75,
color=orange,mark=||](B,A,C)
B \tkzMarkRightAngles[german](A,C,B B,P,C)
\tkzAutoLabelPoints[center = O,dist= .1](A,B,C)
\tkzLabelPoint[below left](P){$P$}
\end{tikzpicture}
tkz-euclide AlterMundus
32. Add labels on a straight line \tkzLabelLine 169
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}
a a
\tkzDrawSegments(O,A A,B)
\tkzDrawPoints(O,A,B)
\tkzDrawLine(O,B)
\tkzLabelSegments[color=red,above=4pt](O,A A,B){$a$}
\end{tikzpicture}
\tkzLabelLine[⟨local options⟩](⟨pt1,pt2⟩){⟨label⟩}
(𝛿)
\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.
tkz-euclide AlterMundus
32. Add labels on a straight line \tkzLabelLine 170
It is possible to move the label with all TikZ options : rotate, shift, below, etc.
A
\begin{tikzpicture}[scale=.75]
\tkzDefPoint(0,0){C}
\tkzDefPoint(20:9){B}
\tkzDefPoint(80:5){A}
𝛽 \tkzDefPointsBy[projection=onto B--C](A){a}
10
B \tkzDrawPolygon[thick,fill=yellow!15](A,B,C)
\tkzDrawSegment[dashed, red](A,a)
\tkzDrawSegment[style=red, dashed,
𝛼 dim={$10$,15pt,midway,font=\scriptsize,
rotate=90}](A,a)
\tkzMarkAngle(B,C,A)
C
\tkzMarkRightAngle(A,a,C)
\tkzMarkRightAngle(C,A,B)
\tkzFillAngle[fill=blue!20, opacity=0.5](B,C,A)
\tkzFillAngle[fill=red!20, opacity=0.5](A,B,C)
\tkzLabelAngle[pos=1.25](A,B,C){$\beta$}
\tkzLabelAngle[pos=1.25](B,C,A){$\alpha$}
\tkzMarkAngle(A,B,C)
\tkzDrawPoints(A,B,C)
\tkzLabelPoints(B,C)
\tkzLabelPoints[above](A)
\end{tikzpicture}
\begin{tikzpicture}[scale=.75]
\tkzDefPoints{0/0/O,5/0/A,3/4/B}
\tkzMarkAngle[size = 4,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}
tkz-euclide AlterMundus
32. Add labels on a straight line \tkzLabelLine 171
P
\begin{tikzpicture}[rotate=30]
\tkzDefPoint(2,1){S}
\tkzDefPoint(7,3){T}
T \tkzDefPointBy[rotation=center S angle 60](T)
\tkzGetPoint{P}
\tkzDefLine[bisector,normed](T,S,P)
\tkzGetPoint{s}
30∘
30∘ \tkzDrawPoints(S,T,P)
\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.8,mark = |,arc=ll,
color = blue](T,S,P)
S
\tkzMarkAngle[size = 2.1,mark = |,arc=l,
color = blue](T,S,s)
\tkzMarkAngle[size = 2.3,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.
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.
\tkzLabelCircle[⟨tikz options⟩](⟨O,A⟩)(⟨angle⟩){⟨label⟩}
We can use the styles from TikZ. The label is created and therefore passed between braces.
tkz-euclide AlterMundus
33. Label for an arc 172
32.2.1. Example
𝒞
\begin{tikzpicture}
\tkzDefPoint(0,0){O} \tkzDefPoint(2,0){N}
M
\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)
P \tkzGetPoint{P'}
\tkzLabelCircle[above=4pt](O,N)(120){$\mathcal{C}$}
\tkzDrawCircle(O,M)
The circle \tkzFillCircle[color=blue!10,opacity=.4](O,M)
𝒞
\tkzLabelCircle[draw,
text width=2cm,text centered,left=24pt](O,M)(-120)%
{The circle\\ $\mathcal{C}$}
\tkzDrawPoints(M,P)\tkzLabelPoints[right](M,P)
\end{tikzpicture}
\tkzLabelArc[⟨local options⟩](⟨pt1,pt2,pt3⟩){⟨label⟩}
This macro allows you to place a label along an arc. The options are those of Tik Z for example pos.
argument example definition
label \tkzLabelArc(A,B){5} label text
(pt1,pt2,pt3) (O,A,B) �
label along the arc AB
\begin{tikzpicture}
B
�
AB \tkzDefPoint(0,0){O}
\pgfmathsetmacro\r{2}
A \tkzDefPoint(30:\r){A}
\tkzDefPoint(85:\r){B}
\tkzDrawCircle(O,A)
O
\tkzDrawPoints(B,A,O)
\tkzLabelArc[right=2pt](O,A,B){$\widearc{AB}$}
\tkzLabelPoints(A,B,O)
\end{tikzpicture}
tkz-euclide AlterMundus
Part VII.
Complements
34. Using the compass 174
\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,4)(B,3)
\tkzGetPoints{C}{D}
\tkzDrawPoint(C)
\tkzCompass[length=1.5](A,C)
\tkzCompass(B,C)
\tkzDrawSegments(A,B A,C B,C)
\end{tikzpicture}
\begin{tikzpicture}
\tkzDefPoint(0,0){A}
\tkzDefPoint(5,0){B}
\tkzInterCC[R](A,4)(B,3)
\tkzGetPoints{C}{D}
\tkzDrawPoints(A,B,C)
\tkzCompass[delta=20](A,C)
\tkzCompass[delta=20](B,C)
\tkzDrawPolygon(A,B,C)
\tkzMarkAngle(A,C,B)
\end{tikzpicture}
M9 Attention the arguments are lists of two points. This saves a few lines of code.
tkz-euclide AlterMundus
35. The Show 175
\begin{tikzpicture}[scale=.6]
\tkzDefPoint(2,2){A} \tkzDefPoint(5,-2){B}
\tkzDefPoint(3,4){C} \tkzDrawPoints(A,B)
\tkzDrawPoint[shape=cross out](C)
C \tkzCompasss[new](A,B A,C B,C C,B)
\tkzShowLine[mediator,new,dashed,length = 2](A,B)
i \tkzShowLine[parallel = through C,
A color=purple,length=2](A,B)
\tkzDefLine[mediator](A,B)
\tkzGetPoints{i}{j}
D \tkzDefLine[parallel=through C](A,B)
\tkzGetPoint{D}
\tkzDrawLines[add=.6 and .6](C,D A,C B,D)
B \tkzDrawLines(i,j) \tkzDrawPoints(A,B,C,i,j,D)
j
\tkzLabelPoints(A,B,C,i,j,D)
\end{tikzpicture}
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.
options default definition
mediator mediator displays the constructions of a mediator
perpendicular mediator constructions for a perpendicular
orthogonal mediator idem
bisector mediator constructions for a bisector
K 1 circle within a triangle
length 1 in cm, length of a arc
ratio .5 arc length ratio
gap 2 placing the point of construction
size 1 radius of an arc (see bisector)
You have to add, of course, all the styles of Tik Z for tracings…
\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}
tkz-euclide AlterMundus
35. The Show 176
\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}
\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[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)
B
\tkzGetPoints{i}{j}
\tkzDrawLines[add=-0.1 and -0.1](i,j)
\tkzDrawLines(A,B)
\tkzLabelPoints[below =3pt](A,B)
\end{tikzpicture}
A
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
35. The Show 177
\begin{tikzpicture}[scale=.5]
B
\tkzDefPoint(0,0){O} \tkzDefPoint(2,-2){A}
\tkzDefPoint(70:4){B} \tkzDrawPoints(A,O,B)
C \tkzLabelPoints(A,O,B)
\tkzDrawLine[add= 2 and 2](O,A)
O \tkzDefPointBy[translation=from O to A](B)
H \tkzGetPoint{C}
E \tkzDrawPoint[color=orange](C) \tkzLabelPoints(C)
A \tkzShowTransformation[translation=from O to A,%
length=2](B)
F \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}
tkz-euclide AlterMundus
36. Protractor 178
I
\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'}
\tkzDefMidPoint(A,B) \tkzGetPoint{M}
\tkzDrawSemiCircle(M,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)
N \tkzDrawPoints[color=blue](O,A,B,I,M)
A MO \tkzLabelPoints(O)
\tkzLabelPoints[above right](N,I)
\tkzLabelPoints[below left](M,A)
\end{tikzpicture}
36. 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 O, the direction of the
half-line is given by A. The angle is measured in the direct direction of the trigonometric circle.
\tkzDrawPoints(A,B,C)
350
160 150 140 130
\tkzDrawSegments[color = red,
line width = 1pt](A,B A,C)
\tkzProtractor[scale = 1](A,B)
170
300
\end{tikzpicture}
80
01
29
19
28
00 2
02
70
210 0 60 25 2
240 230 22 0
tkz-euclide AlterMundus
37. Miscellaneous tools and mathematical tools 179
\begin{tikzpicture}[scale=.5]
310 300 290 280 270
03
20 26
02 \tkzDefPoint(2,3){A}
33 50
\tkzDefShiftPoint[A](31:5){B}
40
24
03
0
\tkzDefShiftPoint[A](158:5){C}
5
230
0 3
220
\tkzDrawSegments[color=red,line width=1pt](A,B A,C)
20 10
\end{tikzpicture}
01
50
70
60
16
0
70 15
140 0
80
0130
0 110 100 9 12
\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
definition of a point. \tkzDuplicateSegment is the new name of \tkzDuplicateLen.
C
\begin{tikzpicture}[scale=.5]
\tkzDefPoints{0/0/A,2/-3/B,2/5/C}
D
\tkzDuplicateSegment(A,B)(A,C)
\tkzGetPoint{D}
\tkzDrawSegments[new](A,B A,C)
\tkzDrawSegment[teal](A,D)
\tkzDrawPoints[new](A,B,C,D)
A
\tkzLabelPoints[above right=3pt](A,B,C,D)
\end{tikzpicture}
tkz-euclide AlterMundus
37. Miscellaneous tools and mathematical tools 180
\begin{tikzpicture}[rotate=-90,scale=.4]
\tkzDefPoints{0/0/A,10/0/B}
A
\tkzDefMidPoint(A,B)
\tkzGetPoint{I}
\tkzDefPointWith[orthogonal,K=-.75](B,A)
\tkzGetPoint{C}
\tkzInterLC(B,C)(B,I) \tkzGetSecondPoint{D}
I \tkzDuplicateSegment(B,D)(D,A) \tkzGetPoint{E}
\tkzInterLC(A,B)(A,E) \tkzGetPoints{N}{M}
M
\tkzDrawArc[orange,delta=10](D,E)(B)
\tkzDrawArc[orange,delta=10](A,M)(E)
\tkzDrawLines(A,B B,C A,D)
B D C \tkzDrawArc[orange,delta=10](B,D)(I)
\tkzDrawPoints(A,B,D,C,M,I)
\tkzLabelPoints[below left](A,B,D,C,M,I)
\end{tikzpicture}
\begin{tikzpicture}[scale=.75]
B \tkzDefPoints{0/0/A,5/0/C,0/5/B}
\tkzDefMidPoint(A,C)\tkzGetPoint{H}
F \tkzDuplicateSegment(H,B)(H,A)\tkzGetPoint{D}
\tkzDuplicateSegment(A,D)(A,B)\tkzGetPoint{E}
E
\tkzDuplicateSegment(A,D)(B,A)\tkzGetPoint{G}
\tkzInterCC(A,C)(B,G)\tkzGetSecondPoint{F}
G \tkzDrawLine(A,C)
\tkzDrawArc(A,C)(B)
\begin{scope}[arc style/.style={color=gray,%
D A H C style=dashed}]
\tkzDrawArc(H,B)(D)
\tkzDrawArc(A,D)(B)
\tkzDrawArc(B,G)(F)
\end{scope}
\tkzDrawSegment[dashed](H,B)
\tkzCompass(B,F)
\tkzDrawPolygon[new](A,B,F)
\tkzDrawPoints(A,...,H)
\tkzLabelPoints[below left](A,...,H)
\end{tikzpicture}
\tkzCalcLength[⟨local options⟩](⟨pt1,pt2⟩)
You can store the result with the macro \tkzGetLength for example \tkzGetLength{dAB}
defines the macro \dAB.
tkz-euclide AlterMundus
37. Miscellaneous tools and mathematical tools 181
\begin{tikzpicture}[scale=1]
\tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B}
D C
\tkzCalcLength(A,B)\tkzGetLength{dAB}
\tkzDefLine[perpendicular=through A](A,B)
\tkzGetPoint{D}
\tkzDefPointWith[orthogonal,K=-1](B,A)
\tkzGetPoint{F}
\tkzGetPoint{C}
\tkzDrawLine[add= .6 and .2](A,B)
\tkzDrawLine(A,D)
\tkzShowLine[orthogonal=through A,gap=2](A,B)
\tkzMarkRightAngle(B,A,D)
A B \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[below left](A,B,C,D)
\end{tikzpicture}
37.2.2. Example
The macro \tkzDefCircle[radius](A,B) defines the radius that we retrieve with \tkzGetLength, this result
is in cm.
\begin{tikzpicture}[scale=.5]
\tkzDefPoint(0,0){A}
\tkzDefPoint(3,-4){B}
\tkzDefMidPoint(A,B) \tkzGetPoint{M}
\tkzCalcLength(M,B)\tkzGetLength{rAB}
\tkzDrawCircle(A,B)
\tkzDrawPoints(A,B)
A
\tkzLabelPoints(A,B)
\tkzDrawSegment[dashed](A,B)
2.5 \tkzLabelSegment(A,B){$\pgfmathprintnumber{\rAB}$}
\end{tikzpicture}
B
\tkzpttocm(⟨number⟩){⟨name of macro⟩}
tkz-euclide AlterMundus
37. Miscellaneous tools and mathematical tools 182
\tkzcmtopt(⟨number⟩){⟨name of macro⟩}
\tkzGetPointCoord(⟨A⟩){⟨name of macro⟩}
y \begin{tikzpicture}
\tkzInit[xmax=5,ymax=3]
\tkzGrid[sub,orange]
\tkzDrawX \tkzDrawY
\tkzDefPoint(1,0){A}
\tkzDefPoint(4,2){B}
\tkzGetPointCoord(A){a}
\tkzGetPointCoord(B){b}
\tkzDefPoint(\ax,\ay){C}
\tkzDefPoint(\bx,\by){D}
x
\tkzDrawPoints[color=red](C,D)
\end{tikzpicture}
\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
37. Miscellaneous tools and mathematical tools 183
\tkzSwapPoints(⟨pt1,pt2⟩)
\begin{tikzpicture}
A
\tkzDefPoints{0/0/O,5/-1/A,2/2/B}
\tkzSwapPoints(A,B)
\tkzDrawPoints(O,A,B)
\tkzLabelPoints(O,A,B)
O
\end{tikzpicture}
\tkzDotProduct(⟨pt1,pt2,pt3⟩)
The dot product of two vectors u⃗ = [a, b] and v⃗ = [a′ , b′ ] is defined as: u⃗ ⋅ v⃗ = aa′ + bb′
u⃗ = ⃗⃗⃗⃗⃗⃗⃗⃗
pt1pt2 v⃗ = ⃗⃗⃗⃗⃗⃗⃗⃗
pt1pt3
arguments example explanation
(pt1,pt2,pt3) \tkzDotProduct(A,B,C) the result is ⃗⃗⃗ AB ⋅ ⃗⃗⃗
AC
The result is a number that can be retrieved with \tkzGetResult.
tkz-euclide AlterMundus
37. Miscellaneous tools and mathematical tools 184
C
\begin{tikzpicture}
\tkzDefPoints{-2/-3/A,4/0/B,1/3/C}
\tkzDefPointBy[projection= onto A--B](C)
\tkzGetPoint{H}
\tkzDrawSegment(C,H)
\tkzMarkRightAngle(C,H,A)
\tkzDrawSegments[vector style](A,B A,C)
\tkzDrawPoints(A,H) \tkzLabelPoints(A,B,H)
\tkzLabelPoints[above](C)
B \tkzDotProduct(A,B,C) \tkzGetResult{pabc}
H % \pgfmathparse{round(10*\pabc)/10}
\let\pabc\pgfmathresult
\node at (1,-3) {$\overrightarrow{PA}\cdot \overrightarrow{PB}=\pab
\tkzDotProduct(A,H,B) \tkzGetResult{phab}
% \pgfmathparse{round(10*\phab)/10}
\let\phab\pgfmathresult
⃗⃗⃗
PA ⋅ ⃗⃗⃗
PB = 0.2 \node at (1,-4) {$PA \times PH = \phab $};
A
\end{tikzpicture}
PA × PH = 0.2
\begin{tikzpicture}[scale=.75]
\tkzDefPoints{1/2/O,5/2/B,2/2/P,3/3/Q}
\tkzInterLC[common=B](O,B)(O,B) \tkzGetFirstPoint{A}
D
\tkzInterLC[common=B](P,Q)(O,B) \tkzGetPoints{C}{D}
\tkzDrawCircle(O,B)
\tkzDrawSegments(A,B C,D)
\tkzDrawPoints(A,B,C,D,P)
B \tkzLabelPoints(P)
A P \tkzLabelPoints[below left](A,C)
\tkzLabelPoints[above right](B,D)
\tkzDotProduct(P,A,B) \tkzGetResult{pab}
\pgfmathparse{round(10*\pab)/10}
\let\pab\pgfmathresult
\tkzDotProduct(P,C,D) \tkzGetResult{pcd}
C \pgfmathparse{round(10*\pcd)/10}
\let\pcd\pgfmathresult
\node at (1,-3) {%
⃗⃗⃗ PB = ⃗⃗⃗
PA ⋅ ⃗⃗⃗ PC ⋅ ⃗⃗⃗
PD $\overrightarrow{PA}\cdot \overrightarrow{PB} =
⃗⃗⃗ \overrightarrow{PC}\cdot \overrightarrow{PD}$};
PA ⋅ ⃗⃗⃗
PB = −15.0
\node at (1,-4)%
⃗⃗⃗
PC ⋅ ⃗⃗⃗
PD = −15.0 {$\overrightarrow{PA}\cdot \overrightarrow{PB}=\pab$};
\node at (1,-5){%
$\overrightarrow{PC}\cdot \overrightarrow{PD} =\pcd$};
\end{tikzpicture}
tkz-euclide AlterMundus
37. Miscellaneous tools and mathematical tools 185
\tkzPowerCircle(⟨pt1⟩)(⟨pt2,pt3⟩)
\tkzDefRadicalAxis(⟨pt1,pt2⟩)(⟨pt3,pt4⟩)
tkz-euclide AlterMundus
37. Miscellaneous tools and mathematical tools 186
\begin{tikzpicture}[scale=.75]
\tkzDefPoints{-1/0/A,0/2/B,4/-1/C,4/0/D}
\tkzDrawCircles(A,B C,D)
\tkzDefRadicalAxis(A,B)(C,D)
\tkzGetPoints{E}{F}
\tkzDrawLine[add=1 and 2](E,F)
\tkzDrawLine[add=.5 and .5](A,C)
\end{tikzpicture}
\begin{tikzpicture}[scale=.5]
\tkzDefPoints{-1/0/A,0/2/B,3/-1/C,3/-2/D}
\tkzDrawCircles(A,C B,D)
\tkzDefRadicalAxis(A,C)(B,D)
\tkzGetPoints{E}{F}
\tkzDrawPoints(A,B,C,D,E,F)
\tkzLabelPoints(A,B,C,D,E,F)
B
\tkzDrawLine[add=.25 and .5](E,F)
E
\tkzDrawLine[add=.25 and .25](A,B)
A \end{tikzpicture}
C
D
F
\begin{tikzpicture}[scale=.5]
\tkzDefPoints{0/0/A,4/0/B,6/0/C}
\tkzDrawCircles(A,B C,B)
\tkzDefRadicalAxis(A,B)(C,B)
\tkzGetPoints{E}{F}
E \tkzDrawPoints(A,B,C,E,F)
\tkzLabelPoints(A,B,C,E,F)
\tkzDrawLine[add=1 and 1](E,F)
A B C \tkzDrawLine[add=.5 and .5](A,B)
\end{tikzpicture}
F
tkz-euclide AlterMundus
37. Miscellaneous tools and mathematical tools 187
\begin{tikzpicture}[scale=.5]
\tkzDefPoints{0/0/A,3/0/B,5/0/C}
\tkzDrawCircles(A,C B,C)
\tkzDefRadicalAxis(A,C)(B,C)
\tkzGetPoints{E}{F}
F \tkzDrawPoints(A,B,C,E,F)
\tkzLabelPoints[below right](A,B,C,E,F)
\tkzDrawLine[add=1 and 1](E,F)
A B C \tkzDrawLine[add=.5 and .5](A,B)
\end{tikzpicture}
E
\begin{tikzpicture}[scale=.4]
\tkzDefPoints{0/0/A,5/0/a,7/-1/B,3/-1/b,5/-4/C,2/-
4/c}
\tkzDrawCircles(A,a B,b C,c)
\tkzDefRadicalAxis(A,a)(B,b) \tkzGetPoints{i}{j}
\tkzDefRadicalAxis(A,a)(C,c) \tkzGetPoints{k}{l}
\tkzDefRadicalAxis(C,c)(B,b) \tkzGetPoints{m}{n}
\tkzDrawLines[new](i,j k,l m,n)
\end{tikzpicture}
\tkzIsLinear(⟨pt1,pt2,pt3⟩)
\tkzIsOrtho(⟨pt1,pt2,pt3⟩)
tkz-euclide AlterMundus
37. Miscellaneous tools and mathematical tools 188
\begin{tikzpicture}
\tkzDefPoints{1/-2/A,5/0/B}
\tkzDefCircle[diameter](A,B) \tkzGetPoint{O}
\tkzDrawCircle(O,A)
\tkzDefPointBy[rotation= center O angle 60](B)
\tkzGetPoint{C}
\tkzDefPointBy[rotation= center O angle 60](A)
\tkzGetPoint{D}
\tkzDrawCircle(O,A)
\tkzDrawPoints(A,B,C,D,O)
\tkzIsOrtho(C,A,B)
\iftkzOrtho
\tkzDrawPolygon[blue](A,B,C)
\tkzDrawPoints[blue](A,B,C,D)
\else
\tkzDrawPoints[red](A,B,C,D)
\fi
\tkzIsLinear(O,C,D)
\iftkzLinear
\tkzDrawSegment[orange](C,D)
\fi
\end{tikzpicture}
tkz-euclide AlterMundus
Part VIII.
The way to proceed will depend on your use of the package. A method that seems to me to be correct is to use as
much as possible predefined styles in order to separate the content from the form. This method will be the right
one if you plan to create a document (like this documentation) with many figures. We will see how to define a
global style for a document. We will see how to use a style locally.
The file tkz-euclide.cfg contains the predefined styles of the main objects. Among these the most important
are points, lines, segments, circles, arcs and compass traces. If you always use the same styles and if you create
many figures then it is interesting to create your own styles . To do this you need to know what features you can
modify. It will be necessary to know some notions of Tik Z.
The predefined styles are global styles. They exist before the creation of the figures. It is better to avoid changing
them between two figures. On the other hand these styles can be modified in a figure temporarily. There the
styles are defined locally and do not influence the other figures.
For the document you are reading here is how I defined the different styles.
\tkzSetUpColors[background=white,text=black]
\tkzSetUpPoint[size=2,color=teal]
\tkzSetUpLine[line width=.4pt,color=teal]
\tkzSetUpCompass[color=orange, line width=.4pt,delta=10]
\tkzSetUpArc[color=gray,line width=.4pt]
\tkzSetUpStyle[orange]{new}
The macro \tkzSetUpColors allows you to set the background color as well as the text color. If you don’t use
it, the colors of your document will be used as well as the fonts. Let’s see how to define the styles of the main
objects.
\tikzset{point style/.style = {%
draw = \tkz@euc@pointcolor,
inner sep = 0pt,
shape = \tkz@euc@pointshape,
minimum size = \tkz@euc@pointsize,
fill = \tkz@euc@pointcolor}}
It is of course possible to use \tikzset but you can use a macro provided by the package. You can use the macro
\tkzSetUpPoint globally or locally,
Let’s look at this possibility.
\tkzSetUpPoint[⟨local options⟩]
tkz-euclide AlterMundus
39. Points style 191
C
\begin{tikzpicture}
\tkzDefPoints{0/0/A,5/0/B,3/2/C,3/1/D}
\tkzDrawPolygon(A,B,C)
\tkzDrawPoints(A,B,C)
\tkzLabelPoints(A,B)
\tkzLabelPoints[above right](C)
A B \end{tikzpicture}
C
\begin{tikzpicture}
\tkzSetUpPoint[size=4,color=red,fill=red!20]
\tkzDefPoints{0/0/A,5/0/B,3/2/C,3/1/D}
\tkzDrawPolygon(A,B,C)
\tkzDrawPoints(A,B,C)
\tkzDrawPoint[shape=cross out,thick](D)
A B
\tkzLabelPoints(A,B)
\tkzLabelPoints[above right](C)
\end{tikzpicture}
C
\begin{tikzpicture}
\tkzDefPoints{0/0/A,5/0/B,3/2/C,3/1/D}
\tkzDrawPolygon(A,B,C)
\tkzDrawPoints(A,B,C)
\begin{scope}
\tkzSetUpPoint[size=4,color=red,fill=red!20]
A B \tkzDrawPoint(D)
\end{scope}
\tkzLabelPoints(A,B)
\tkzLabelPoints[above right](C)
\end{tikzpicture}
\begin{tikzpicture}
\tkzSetUpPoint[shape = cross out,color=blue]
\tkzDefPoint(2,1){A}
\tkzDefPoint(4,0){B}
\tkzDrawLine(A,B)
\tkzDrawPoints(A,B)
\end{tikzpicture}
tkz-euclide AlterMundus
40. Lines style 192
\begin{tikzpicture}
B
\tkzDefPoints{0/0/A,2/4/B,4/0/C,3/2/D}
\tkzDrawSegments(A,B A,C A,D)
{\tkzSetUpPoint[shape=cross out,
fill= teal!50,
size=4,color=teal]
D
\tkzDrawPoints(A,B)}
\tkzSetUpPoint[fill= teal!50,size=4,
color=teal]
\tkzDrawPoints(C,D)
A C
\tkzLabelPoints(A,B,C,D)
\end{tikzpicture}
You have several possibilities to change the style of a line. You can modify the style of a line with \tkzSetUpLine
or directly modify the style of the lines with \tikzset{line style/.style = ... }
Reminder about line width : There are a number of predefined styles that provide more “natural” ways of set-
ting the line width. You can also redefine these styles.
predefined style value of line width
ultra thin 0.1 pt
very thin 0.2 pt
thin 0.4 pt
semithick 0.6 pt
thick 0.8 pt
very thick 1.2 pt
ultra thick 1.6 pt
\tkzSetUpLine[⟨local options⟩]
tkz-euclide AlterMundus
40. Lines style 193
A
\begin{tikzpicture}[scale=.75]
\tkzSetUpLine[line width=1pt]
\begin{scope}[rotate=-90]
\tkzDefPoints{0/6/A,10/0/B,10/6/C}
\tkzDefPointBy[projection = onto B--A](C)
\tkzGetPoint{H}
\tkzMarkRightAngle[size=.4,
fill=teal!20](B,C,A)
\tkzMarkRightAngle[size=.4,
fill=orange!20](B,H,C)
c b \tkzDrawPolygon(A,B,C)
\tkzDrawSegment[new](C,H)
\end{scope}
\tkzLabelSegment[below](C,B){$a$}
H \tkzLabelSegment[right](A,C){$b$}
\tkzLabelSegment[left](A,B){$c$}
\tkzLabelSegment[color=red](C,H){$h$}
h
\tkzDrawPoints(A,B,C)
\tkzLabelPoints[above left](H)
\tkzLabelPoints(B,C)
B a C \tkzLabelPoints[above](A)
\end{tikzpicture}
\begin{tikzpicture}[scale=.5]
\tikzset{line style/.style = {color = gray,
I
style=dashed}}
\tkzDefPoints{1/0/A,4/0/B,1/1/C,5/1/D}
\tkzDefPoints{1/2/E,6/2/F,0/4/A',3/4/B'}
\tkzCalcLength(C,D)
\tkzGetLength{rCD}
A′ B′
\tkzCalcLength(E,F)
\tkzGetLength{rEF}
E F \tkzInterCC[R](A',\rCD)(B',\rEF)
C D \tkzGetPoints{I}{J}
\tkzDrawLine(A',B')
J A B
\tkzCompass(A',B')
\tkzDrawSegments(A,B C,D E,F)
\tkzDefCircle[R](A',\rCD) \tkzGetPoint{a'}
\tkzDefCircle[R](B',\rEF)\tkzGetPoint{b'}
\tkzDrawCircles(A',a' B',b')
\begin{scope}
\tkzSetUpLine[color=red]
\tkzDrawSegments(A',I B',I)
\end{scope}
\tkzDrawPoints(A,B,C,D,E,F,A',B',I,J)
\tkzLabelPoints(A,B,C,D,E,F,A',B',I,J)
\end{tikzpicture}
tkz-euclide AlterMundus
41. Arc style 194
\begin{tikzpicture}[scale=.75]
\tkzSetUpLine[add=.5 and .5]
\tkzDefPoints{0/0/A,4/0/B,1/3/C}
\tkzDrawLines(A,B B,C A,C)
\tkzDrawPolygon[red,thick](A,B,C)
\tkzSetUpPoint[size=4,circle,color=red,fill=red!20]
\tkzDrawPoints(A,B,C)
\end{tikzpicture}
\tkzSetUpArc[⟨local options⟩]
\begin{tikzpicture}
D
\def\r{3} \def\angle{200}
\tkzSetUpArc[delta=10,color=purple,line width=.2pt]
C \tkzSetUpLabel[font=\scriptsize,red]
\tkzDefPoint(0,0){O}
\tkzDefPoint(\angle:\r){A}
X \tkzInterCC(O,A)(A,O) \tkzGetPoints{C'}{C}
\tkzInterCC(O,A)(C,O) \tkzGetPoints{D'}{D}
\tkzInterCC(O,A)(D,O) \tkzGetPoints{X'}{X}
O \tkzDrawCircle(O,A)
\tkzDrawArc(A,C')(C)
A
\tkzDrawArc(C,O)(D)
\tkzDrawArc(D,O)(X)
\tkzDrawLine[add=.1 and .1](A,X)
\tkzDrawPoints(O,A)
\tkzSetUpPoint[size=3,color=purple,fill=purple!10]
C′ \tkzDrawPoints(C,C',D,X)
\tkzLabelPoints[below left](O,A)
\tkzLabelPoints[below](C')
\tkzLabelPoints[below right](X)
\tkzLabelPoints[above](C,D)
\end{tikzpicture}
tkz-euclide AlterMundus
42. Compass style, configuration macro \tkzSetUpCompass 195
The following macro will help to understand the construction of a figure by showing the compass traces necessary
to obtain certain points.
\tkzSetUpCompass[⟨local options⟩]
\begin{tikzpicture}
\tkzSetUpCompass[color=red,delta=15]
\tkzDefPoint(1,1){A}
\tkzDefPoint(6,1){B}
\tkzInterCC[R](A,4)(B,4) \tkzGetPoints{C}{D}
\tkzCompass(A,C)
\tkzCompass(B,C)
\tkzDrawPolygon(A,B,C)
\tkzDrawPoints(A,B,C)
\end{tikzpicture}
\begin{tikzpicture}[scale=.75]
\tkzSetUpStyle[bisector,size=2,gap=3]{showbi}
\tkzSetUpCompass[color=teal,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[new](I,H)
\tkzDrawSegments[new](I,H)
\tkzDrawLines[add=0 and .2,new](A,I B,I)
\end{tikzpicture}
tkz-euclide AlterMundus
44. Own style 196
\tkzSetUpStyle[⟨local options⟩]
y \begin{tikzpicture}[scale=.75]
\tkzSetUpLabel[font=\scriptsize,red]
\tkzSetUpStyle[line width=1pt,teal]{XY}
\tkzInit[xmin=-3,xmax=3,ymin=-3,ymax=3]
B(0, 1) \tkzDrawX[noticks,XY]
\tkzDrawY[noticks,XY]
C(−1, 0) A(1, 0) \tkzDefPoints{1/0/A,0/1/B,-1/0/C,0/-1/D}
x \tkzDrawPoints[teal,fill=teal!30,size=6](A,...,D)
\tkzLabelPoint[above right](A){$A(1,0)$}
D(0, −1) \tkzLabelPoint[above right](B){$B(0,1)$}
\tkzLabelPoint[above left](C){$C(-1,0)$}
\tkzLabelPoint[below left](D){$D(0,-1)$}
\end{tikzpicture}
\tkzSetUpStyle[⟨local options⟩]
\begin{tikzpicture}
A
\tkzSetUpStyle[color=blue!20!black,fill=blue!20]{mystyle}
\tkzDefPoint(0,0){O}
O \tkzDefPoint(0,1){A}
\tkzDrawPoints(O) % general style
\tkzDrawPoints[mystyle,size=4](A) % my style
\tkzLabelPoints(O,A)
\end{tikzpicture}
In some countries, arrows are used to indicate the parallelism of lines, to represent half-lines or the sides of an
angle (rays).
Here are some examples of how to place these arrows. tkz-euclide loads a library called arrows.meta.
\usetikzlibrary{arrows.meta}
This library is used to produce different styles of arrow heads. The next examples use some of them.
tkz-euclide AlterMundus
45. How to use arrows 197
\begin{tikzpicture}
\tkzDefPoints{0/0/A,4/0/B}
\tkzDrawSegment[-Triangle](A,B)
\end{tikzpicture}
\begin{tikzpicture}
\tkzDefPoints{0/0/A,4/0/B}
\tkzDrawSegment[Stealth-Stealth](A,B)
\end{tikzpicture}
\begin{tikzpicture}
\tkzDefPoints{0/0/A,4/0/B}
\tkzDrawLine[red,Latex-Latex](A,B)
\tkzDrawPoints(A,B)
\end{tikzpicture}
\begin{tikzpicture}
\tkzDefPoints{0/0/A,4/0/B}
\tkzDrawSegment[To-To](A,B)
\end{tikzpicture}
\begin{tikzpicture}
\tkzDefPoints{0/0/A,4/0/B}
\tkzDrawSegment[Latex-Latex](A,B)
\end{tikzpicture}
\begin{tikzpicture}
\tkzDefPoints{0/0/A,4/0/B}
\tkzDrawSegment[Latex-](A,B)
\end{tikzpicture}
\begin{tikzpicture}
\tkzDefPoints{0/0/A,4/0/B,5/-2/C}
\tkzDrawSegments[-Latex](A,B A,C)
\end{tikzpicture}
tkz-euclide AlterMundus
45. How to use arrows 198
\begin{tikzpicture}
\tkzDefPoints{0/0/A,4/0/B}
\tkzDrawSegment[{Latex[scale=2]}-{Latex[scale=2]}](A,B)
\end{tikzpicture}
Example usages:
45.2.1. In a parallelogram
D C
\begin{tikzpicture}
\tkzDefPoints{0/0/A,3/0/B,4/2/C}
\tkzDefParallelogram(A,B,C)
\tkzGetPoint{D}
\tkzDrawSegments[tkz arrow](A,B D,C)
\tkzDrawSegments(B,C D,A)
A B \tkzLabelPoints(A,B)
\tkzLabelPoints[above right](C,D)
\tkzDrawPoints(A,...,D)
\end{tikzpicture}
tkz-euclide AlterMundus
45. How to use arrows 199
\begin{tikzpicture}
C
\tkzDefPoints{0/0/A,3/0/B,1/2/C}
\tkzDefPointWith[colinear= at C](A,B)
\tkzGetPoint{D}
\tkzDrawSegments[tkz arrow=Triangle](A,B C,D)
\tkzLabelPoints(A,B,C)
A B
\tkzDrawPoints(A,...,C)
\end{tikzpicture}
\begin{tikzpicture}
\tkzDefPoints{0/0/A,3/0/B}
\tkzDefSquare(A,B) \tkzGetPoints{C}{D}
\tkzDrawPolygon[tkz arrows](A,...,D)
\end{tikzpicture}
tkz-euclide AlterMundus
45. How to use arrows 200
\begin{tikzpicture}
\tkzDefPoints{0/0/A,3/0/B}
\tkzDrawCircle[tkz arrows](A,B)
\end{tikzpicture}
tkz-euclide AlterMundus
Part IX.
Examples
46. Different authors 202
\begin{tikzpicture}[scale=1.25]
\def\radius{4}
D \def\angle{40}
\pgfmathsetmacro{\htan}{tan(\angle)}
C \tkzDefPoint(0,0){A} \tkzDefPoint(0,\radius){F}
\tkzDefPoint(\radius,0){B}
\tkzDefPointBy[rotation= center A angle \angle](B)
\tkzGetPoint{C}
tan x
\tkzDefLine[perpendicular=through B,K=1](A,B)
sin x \tkzGetPoint{b}
\tkzInterLL(A,C)(B,b) \tkzGetPoint{D}
\tkzDefLine[perpendicular=through C,K=-1](A,B)
x \tkzGetPoint{c}
A B \tkzInterLL(C,c)(A,B) \tkzGetPoint{E}
1
\tkzDrawSector[fill=blue,opacity=0.1](A,B)(C)
\tkzDrawArc[thin](A,B)(F)
\tkzMarkAngle(B,A,C)
\tkzLabelAngle[pos=0.8](B,A,C){$x$}
\tkzDrawPolygon(A,B,D)
\tkzDrawSegments(C,B)
\tkzDrawSegments[dashed,thin](C,E)
\tkzLabelPoints[below left](A)
\tkzLabelPoints[below right](B)
\tkzLabelPoints[above](C)
\tkzLabelPoints[above right](D)
\begin{scope}[/pgf/decoration/raise=5pt]
\draw [decorate,decoration={brace,mirror,
amplitude=10pt},xshift=0pt,yshift=-4pt]
(A) -- (B) node [black,midway,yshift=-20pt]
{\footnotesize $1$};
\draw [decorate,decoration={brace,amplitude=10pt},
xshift=4pt,yshift=0pt]
(D) -- (B) node [black,midway,xshift=27pt]
{\footnotesize $\tan x$};
\draw [decorate,decoration={brace,amplitude=10pt},
xshift=4pt,yshift=0pt]
(E) -- (C) node [black,midway,xshift=-27pt]
{\footnotesize $\sin x$};
\end{scope}
\end{tikzpicture}
tkz-euclide AlterMundus
46. Different authors 203
𝒞
\begin{tikzpicture}[scale=1]
\tkzDefPoint(0,0){O}
\tkzDefPoint(2.5,0){N}
B \tkzDefPoint(-4.2,0.5){M}
C \tkzDefPointBy[rotation=center O angle 30](N)
M
\tkzGetPoint{B}
O \tkzDefPointBy[rotation=center O angle -50](N)
A′ \tkzGetPoint{A}
\tkzInterLC[common=B](M,B)(O,B) \tkzGetFirstPoint{C}
\tkzInterLC[common=A](M,A)(O,A) \tkzGetFirstPoint{A'}
\tkzMarkAngle[mkpos=.2, size=0.5](A,C,B)
A \tkzMarkAngle[mkpos=.2, size=0.5](A,M,C)
\tkzDrawSegments(A,C M,A M,B A,B)
\tkzDrawCircle(O,N)
\tkzLabelCircle[above left](O,N)(120){%
$\mathcal{C}$}
\begin{scope}[veclen]
\tkzMarkAngle[mkpos=.2, size=1.2](C,A,M)
\end{scope}
\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
C G D
E F
tkz-euclide AlterMundus
46. Different authors 204
\begin{tikzpicture}[scale=1.5,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}
D C F
A B
tkz-euclide AlterMundus
46. Different authors 205
\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}
\begin{tikzpicture}[pol/.style={fill=brown!40,opacity=.2},
seg/.style={tkzdotted,color=gray}, hidden pt/.style={fill=gray!40},
mra/.style={color=gray!70,tkzdotted,/tkzrightangle/size=.2},scale=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
46. Different authors 206
H P G
U K
E
F
D N
C
M O 𝛼
L R
A S B
tkz-euclide AlterMundus
46. Different authors 207
tc
sa sb
tb ta
sc
C
\begin{tikzpicture}
\tkzInit[ymin=-3,ymax=5,xmin=-5,xmax=7]
\tkzClip
\tkzDefPoints{-2.5/-2/A,2/4/B,5/-1/C}
\tkzFindAngle(C,A,B) \tkzGetAngle{anglea}
\tkzDefPointBy[rotation=center A angle 1*\anglea/3](C) \tkzGetPoint{TA1}
\tkzDefPointBy[rotation=center A angle 2*\anglea/3](C) \tkzGetPoint{TA2}
\tkzFindAngle(A,B,C) \tkzGetAngle{angleb}
\tkzDefPointBy[rotation=center B angle 1*\angleb/3](A) \tkzGetPoint{TB1}
\tkzDefPointBy[rotation=center B angle 2*\angleb/3](A) \tkzGetPoint{TB2}
\tkzFindAngle(B,C,A) \tkzGetAngle{anglec}
\tkzDefPointBy[rotation=center C angle 1*\anglec/3](B) \tkzGetPoint{TC1}
\tkzDefPointBy[rotation=center C angle 2*\anglec/3](B) \tkzGetPoint{TC2}
\tkzInterLL(A,TA1)(B,TB2) \tkzGetPoint{U1}
\tkzInterLL(A,TA2)(B,TB1) \tkzGetPoint{V1}
\tkzInterLL(B,TB1)(C,TC2) \tkzGetPoint{U2}
\tkzInterLL(B,TB2)(C,TC1) \tkzGetPoint{V2}
\tkzInterLL(C,TC1)(A,TA2) \tkzGetPoint{U3}
\tkzInterLL(C,TC2)(A,TA1) \tkzGetPoint{V3}
\tkzDrawPolygons(A,B,C U1,U2,U3 V1,V2,V3)
\tkzDrawLines[add=2 and 2,very thin,dashed](A,TA1 B,TB1 C,TC1 A,TA2 B,TB2 C,TC2)
\tkzDrawPoints(U1,U2,U3,V1,V2,V3)
\tkzLabelPoint[left](V1){$s_a$} \tkzLabelPoint[right](V2){$s_b$}
\tkzLabelPoint[below](V3){$s_c$} \tkzLabelPoint[above left](A){$A$}
\tkzLabelPoints[above right](B,C) \tkzLabelPoint(U1){$t_a$}
\tkzLabelPoint[below left](U2){$t_b$} \tkzLabelPoint[above](U3){$t_c$}
\end{tikzpicture}
tkz-euclide AlterMundus
46. Different authors 208
Pythagoras was not the first person who discovered this theorem around the world. Ancient China dis-
covered this theorem much earlier than him. So there is another name for the Pythagorean theorem in
China, the Gou-Gu theorem. Zhao Shuang was an ancient Chinese mathematician. He rediscovered the
“Gou gu therorem”, which is actually the Chinese version of the “Pythagorean theorem”. Zhao Shuang
used a method called the “cutting and compensation principle”, he created a picture of “Pythagorean
Round Square” Below the figure used to illustrate the proof of the “Gou gu theorem.” (code from Nan
Geng)
D
\begin{tikzpicture}[scale=.8]
\tkzDefPoint(0,0){A} \tkzDefPoint(4,0){A'}
\tkzInterCC[R](A, 5)(A', 3)
c \tkzGetSecondPoint{B}
a \tkzDefSquare(A,B) \tkzGetPoints{C}{D}
\tkzCalcLength(A,A') \tkzGetLength{lA}
b \tkzCalcLength(A',B) \tkzGetLength{lB}
C \pgfmathparse{\lA-\lB}
′ ′
C B
\tkzInterLC[R](A,A')(A',\pgfmathresult)
A A′ \tkzGetFirstPoint{D'}
D′
\tkzDefSquare(D',A')\tkzGetPoints{B'}{C'}
\tkzDefLine[orthogonal=through D](D,D')
\tkzGetPoint{d}
\tkzDefLine[orthogonal=through A](A,A')
\tkzGetPoint{a}
B \tkzDefLine[orthogonal=through C](C,C')
\tkzGetPoint{c}
\tkzInterLL(D,d)(C,c) \tkzGetPoint{E}
\tkzInterLL(D,d)(A,a) \tkzGetPoint{F}
\tkzDefSquare(E,F)\tkzGetPoints{G}{H}
\tkzDrawPolygons[fill=teal!10](A,B,A' B,C,B'
C,D,C' A,D',D)
\tkzDrawPolygons(A,B,C,D E,F,G,H)
\tkzDrawPolygon[fill=green!10](A',B',C',D')
\tkzDrawSegment[dim={$a$,-10pt,}](D,C')
\tkzDrawSegment[dim={$b$,-10pt,}](C,C')
\tkzDrawSegment[dim={$c$,-10pt,}](C,D)
\tkzDrawPoints[size=2](A,B,C,D,A',B',C',D')
\tkzLabelPoints[left](A)
\tkzLabelPoints[below](B)
\tkzLabelPoints[right](C)
\tkzLabelPoints[above](D)
\tkzLabelPoints[right](A')
\tkzLabelPoints[below right](B')
\tkzLabelPoints[below left](C')
\tkzLabelPoints[below](D')
\end{tikzpicture}
tkz-euclide AlterMundus
46. Different authors 209
46.8. Reuleaux-Triangle
A well-known classic field of mathematics is geometry. You may know Euclidean geometry from school,
with constructions by compass and ruler. Math teachers may be very interested in drawing geometry
constructions and explanations. Underlying constructions can help us with general drawings where we
would need intersections and tangents of lines and circles, even if it does not look like geometry. So, here,
we will remember school geometry drawings. We will use the tkz-euclide package, which works on top
of TikZ. We will construct an equilateral triangle. Then we extend it to get a Reuleaux triangle, and add
annotations. The code is fully explained in the LaTeX Cookbook, Chapter 10, Advanced Mathematics,
Drawing geometry pictures. Stefan Kottwitz
C
use
hypoten
𝛼
AE Reuleaux
𝛽 triangle
oapd
jpao
cse
intet
Thales circle
D
90∘
tkz-euclide AlterMundus
47. Some interesting examples 210
\begin{tikzpicture}
\tkzDefPoint(0,0){A} \tkzDefPoint(4,1){B}
\tkzInterCC(A,B)(B,A) \tkzGetPoints{C}{D}
\tkzInterLC(A,B)(B,A) \tkzGetPoints{F}{E}
\tkzDrawCircles[dashed](A,B B,A)
\tkzDrawPolygons(A,B,C A,E,D)
\tkzCompasss[color=red, very thick](A,C B,C A,D B,D)
\begin{scope}
\tkzSetUpArc[thick,delta=0]
\tkzDrawArc[fill=blue!10](A,B)(C)
\tkzDrawArc[fill=blue!10](B,C)(A)
\tkzDrawArc[fill=blue!10](C,A)(B)
\end{scope}
\tkzMarkAngles(D,A,E A,E,D)
\tkzFillAngles[fill=yellow,opacity=0.5](D,A,E A,E,D)
\tkzMarkRightAngle[size=0.65,fill=red!20,opacity=0.2](A,D,E)
\tkzLabelAngle[pos=0.7](D,A,E){$\alpha$}
\tkzLabelAngle[pos=0.8](A,E,D){$\beta$}
\tkzLabelAngle[pos=0.5,xshift=-1.4mm](A,D,D){$90^\circ$}
\begin{scope}[font=\small]
\tkzLabelSegment[below=0.6cm,align=center](A,B){Reuleaux\\triangle}
\tkzLabelSegment[above right,sloped](A,E){hypotenuse}
\tkzLabelSegment[below,sloped](D,E){opposite}
\tkzLabelSegment[below,sloped](A,D){adjacent}
\tkzLabelSegment[below right=4cm](A,E){Thales circle}
\end{scope}
\tkzLabelPoints[below left](A)
\tkzLabelPoints(B,D)
\tkzLabelPoint[above](C){$C$}
\tkzLabelPoints(E)
\tkzDrawPoints(A,...,E)
\end{tikzpicture}
\begin{tikzpicture}
\tkzDefPoint(0,0){O}
\tkzDefPoint(1,0){a0}
\tkzDrawSegment(O,a0)
\foreach \i [count=\j] in {0,...,16}{%
\tkzDefPointWith[orthogonal normed](a\i,O)
\tkzGetPoint{a\j}
\pgfmathsetmacro{\c}{5*\i}
\tkzDrawPolySeg[fill=teal!\c](a\i,a\j,O)}
\end{tikzpicture}
tkz-euclide AlterMundus
47. Some interesting examples 211
We have a segment [AB] and we want to determine a point C such that AC = 8 cm and ABC is a right
triangle in B.
\begin{tikzpicture}[scale=.5]
C
\tkzDefPoint["$A$" left](2,1){A}
\tkzDefPoint["$B$" right](6,4){B}
\tkzDefPointWith[orthogonal,K=-1](B,A)
\tkzDrawLine[add = .5 and .5](B,tkzPointResult)
\tkzInterLC[R](B,tkzPointResult)(A,8)
\tkzGetPoints{J}{C}
\tkzDrawSegment(A,B)
B \tkzDrawPoints(A,B,C)
\tkzCompass(A,C)
\tkzMarkRightAngle(A,B,C)
\tkzDrawLine[color=gray,style=dashed](A,C)
A \tkzLabelPoint[above](C){$C$}
\end{tikzpicture}
47.3. Archimedes
Archimedes
This is an ancient problem proved by the great Greek mathematician Archimedes . The figure below
shows a semicircle, with diameter AB. A tangent line is drawn and touches the semicircle at B. An other
tangent line at a point, C, on the semicircle is drawn. We project the point C on the line segment [AB]
on a point D. The two tangent lines intersect at the point T. Prove that the line (AT) bisects (CD)
A I D B
tkz-euclide AlterMundus
47. Some interesting examples 212
\begin{tikzpicture}[scale=1]
\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) \tkzGetSecondPoint{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[new](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
47. Some interesting examples 213
C B
G H
I
D E A F
\begin{tikzpicture}[scale=.75]
\tkzDefPoint(0,0){D} \tkzDefPoint(8,0){A}
\tkzDefSquare(D,A) \tkzGetPoints{B}{C}
\tkzDefMidPoint(D,A) \tkzGetPoint{E}
\tkzInterLC(D,A)(E,B)\tkzGetSecondPoint{F}
\tkzInterLC[near](B,A)(A,F)\tkzGetFirstPoint{G}
\tkzDefSquare(A,F)\tkzGetFirstPoint{H}
\tkzInterLL(C,D)(H,G)\tkzGetPoint{I}
\tkzFillPolygon[teal!10](I,G,B,C)
\tkzFillPolygon[teal!10](A,F,H,G)
\tkzDrawArc[angles](E,B)(0,120)
\tkzDrawSemiCircle(A,F)
\tkzDrawSegments(A,F E,B H,I F,H)
\tkzDrawPolygons(A,B,C,D)
\tkzDrawPoints(A,...,I)
\tkzLabelPoints[below right](A,E,D,F,I)
\tkzLabelPoints[above right](C,B,G,H)
\end{tikzpicture}
tkz-euclide AlterMundus
47. Some interesting examples 214
Consider the triangle ABC and a point M on its circumcircle. The projections of M on the sides of the
triangle are on a line (Steiner Line), The three closest points to M on lines AB, AC, and BC are collinear.
It’s the Simson Line.
\begin{tikzpicture}[scale=.75,rotate=-20]
P
\tkzDefPoint(0,0){B}
P′ \tkzDefPoint(2,4){A} \tkzDefPoint(7,0){C}
\tkzDefCircle[circum](A,B,C)
\tkzGetPoint{O}
\tkzDrawCircle(O,A)
I \tkzCalcLength(O,A)
\tkzGetLength{rOA}
A
\tkzDefShiftPoint[O](40:\rOA){M}
\tkzDefShiftPoint[O](60:\rOA){N}
H N \tkzDefTriangleCenter[orthic](A,B,C)
\tkzGetPoint{H}
M \tkzDefSpcTriangle[orthic,name=H](A,B,C){a,b,c}
B \tkzDefPointsBy[reflection=over A--B](M,N){P,P'}
Q′ J
\tkzDefPointsBy[reflection=over A--C](M,N){Q,Q'}
\tkzDefPointsBy[reflection=over C--B](M,N){R,R'}
Q
\tkzDefMidPoint(M,P)\tkzGetPoint{I}
K \tkzDefMidPoint(M,Q)\tkzGetPoint{J}
C
\tkzDefMidPoint(M,R)\tkzGetPoint{K}
\tkzDrawSegments[new](P,R M,P M,Q M,R N,P'%
N,Q' N,R' P',R' I,K)
\tkzDrawPolygons(A,B,C)
R
\tkzDrawPoints(A,B,C,H,M,N,P,Q,R,P',Q',R',I,J,K)
R′ \tkzLabelPoints(A,B,C,H,M,N,P,Q,R,P',Q',R',I,J,K)
\end{tikzpicture}
tkz-euclide AlterMundus
47. Some interesting examples 215
Lune of Hippocrates
From wikipedia : In geometry, the lune of Hippocrates, named after Hippocrates of Chios, is a lune
bounded by arcs of two circles, the smaller of which has as its diameter a chord spanning a right angle on
the larger circle.In the first figure, the area of the lune is equal to the area of the triangle ABC. Hippocrates
of Chios (ancient Greek mathematician,)
\begin{tikzpicture}
\tkzInit[xmin=-2,xmax=5,ymin=-1,ymax=6]
\tkzClip % allows you to define a bounding box
% large enough
\tkzDefPoint(0,0){A}\tkzDefPoint(4,0){B}
\tkzDefSquare(A,B)
\tkzGetFirstPoint{C}
\tkzDrawPolygon[fill=green!5](A,B,C)
\begin{scope}
\tkzClipCircle[out](B,A)
\tkzDefMidPoint(C,A) \tkzGetPoint{M}
\tkzDrawSemiCircle[fill=teal!5](M,C)
\end{scope}
\tkzDrawArc[delta=0](B,C)(A)
\end{tikzpicture}
Lune of Hippocrates
From wikipedia : the Arab mathematician Hasan Ibn al-Haytham (Latinized name Alhazen) showed
that two lunes, formed on the two sides of a right triangle, whose outer boundaries are semicircles and
whose inner boundaries are formed by the circumcircle of the triangle, then the areas of these two lunes
added together are equal to the area of the triangle. The lunes formed in this way from a right triangle
are known as the lunes of Alhazen.
tkz-euclide AlterMundus
47. Some interesting examples 216
\begin{tikzpicture}[scale=.5,rotate=180]
\tkzInit[xmin=-1,xmax=11,ymin=-4,ymax=7]
\tkzClip
\tkzDefPoints{0/0/A,8/0/B}
\tkzDefTriangle[pythagore,swap](A,B)
\tkzGetPoint{C}
\tkzDrawPolygon[fill=green!5](A,B,C)
\tkzDefMidPoint(C,A) \tkzGetPoint{I}
\begin{scope}
\tkzClipCircle[out](I,A)
\tkzDefMidPoint(B,A) \tkzGetPoint{x}
\tkzDrawSemiCircle[fill=teal!5](x,A)
\tkzDefMidPoint(B,C) \tkzGetPoint{y}
\tkzDrawSemiCircle[fill=teal!5](y,B)
\end{scope}
\tkzSetUpCompass[/tkzcompass/delta=0]
\tkzDefMidPoint(C,A) \tkzGetPoint{z}
\tkzDrawSemiCircle(z,A)
\end{tikzpicture}
tkz-euclide AlterMundus
47. Some interesting examples 217
The problem is the management of the bounding box. First you have to define a rectangle in which the
figure will be inserted. This is done with the first two lines.
\begin{tikzpicture}
\tkzInit[xmin=0,xmax=6,ymin=0,ymax=6]
\tkzClip
\tkzDefPoints{0/0/A, 6/0/B}
\tkzDefSquare(A,B) \tkzGetPoints{C}{D}
\tkzDefMidPoint(A,B) \tkzGetPoint{M}
\tkzDefMidPoint(A,D) \tkzGetPoint{N}
\tkzDefMidPoint(B,C) \tkzGetPoint{O}
\tkzDefMidPoint(C,D) \tkzGetPoint{P}
\begin{scope}
\tkzClipCircle[out](M,B) \tkzClipCircle[out](P,D)
\tkzFillPolygon[teal!20](M,N,P,O)
\end{scope}
\begin{scope}
\tkzClipCircle[out](N,A) \tkzClipCircle[out](O,C)
\tkzFillPolygon[teal!20](M,N,P,O)
\end{scope}
\begin{scope}
\tkzClipCircle(P,C) \tkzClipCircle(N,A)
\tkzFillPolygon[teal!20](N,P,D)
\end{scope}
\begin{scope}
\tkzClipCircle(O,C) \tkzClipCircle(P,C)
\tkzFillPolygon[teal!20](P,C,O)
\end{scope}
\begin{scope}
\tkzClipCircle(M,B) \tkzClipCircle(O,B)
\tkzFillPolygon[teal!20](O,B,M)
\end{scope}
\begin{scope}
\tkzClipCircle(N,A) \tkzClipCircle(M,A)
\tkzFillPolygon[teal!20](A,M,N)
\end{scope}
\tkzDrawSemiCircles(M,B N,A O,C P,D)
\tkzDrawPolygons(A,B,C,D M,N,P,O)
\end{tikzpicture}
tkz-euclide AlterMundus
47. Some interesting examples 218
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
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:
– Elisabeth Busser and Gilles Cohen: 200 nouveaux problèmes du ”Monde” - POLE 2007 (200 new problems
of ”Le Monde”)
Two statements were proposed, one by the magazine Tangente and the other by Le Monde.
Editor of the magazine ”Tangente” : Two similar isosceles triangles AXB and BYC are constructed with main ver-
tices X and Y, such that A, B and C are aligned and that these triangles are ”indirect”. Let 𝛼 be the angle at vertex
̂
A ̂ We then construct a third isosceles triangle XZY similar to the first two, with main vertex Z and ”in-
XB = BYC.
direct”. We ask to demonstrate that point Z belongs to the straight line (AC).
Editor of ”Le Monde” : We construct two similar isosceles triangles AXB and BYC with principal vertices X and Y,
̂
such that A, B and C are aligned and that these triangles are ”indirect”. Let 𝛼 be the angle at vertex A ̂
XB = BYC.
The point Z of the line segment [AC] is equidistant from the two vertices X and Y.
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
47. Some interesting examples 219
\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
47. Some interesting examples 220
A B Z C
\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) \tkzGetFirstPoint{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}
tkz-euclide AlterMundus
47. Some interesting examples 221
Triangle altitudes
From Wikipedia : 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. The three altitudes of a triangle intersect at the same H-point.
B′
C′
H
C A′ B
\begin{tikzpicture}
\tkzDefPoint(0,0){C} \tkzDefPoint(7,0){B}
\tkzDefPoint(5,6){A}
\tkzDefMidPoint(C,B) \tkzGetPoint{I}
\tkzInterLC(A,C)(I,B)
\tkzGetFirstPoint{B'}
\tkzInterLC(A,B)(I,B)
\tkzGetSecondPoint{C'}
\tkzInterLL(B,B')(C,C') \tkzGetPoint{H}
\tkzInterLL(A,H)(C,B) \tkzGetPoint{A'}
\tkzDefCircle[circum](A,B',C') \tkzGetPoint{O}
\tkzDrawArc(I,B)(C)
\tkzDrawPolygon(A,B,C)
\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[above right](A,B',C',H)
\tkzLabelPoints[below right](B,C,A')
\end{tikzpicture}
tkz-euclide AlterMundus
47. Some interesting examples 222
A O P B
\begin{tikzpicture}
\tkzDefPoint(0,0){A} \tkzDefPoint(8,0){B}
\tkzDefPoint(5,6){C}
\tkzDefMidPoint(A,B)\tkzGetPoint{O}
\tkzDefPointBy[projection=onto A--B](C) \tkzGetPoint{P}
\tkzInterLC[common=A](C,A)(O,A)
\tkzGetFirstPoint{M}
\tkzInterLC(C,B)(O,A)
\tkzGetSecondPoint{N}
\tkzInterLL(B,M)(A,N)\tkzGetPoint{I}
\tkzDefCircle[diameter](A,B)\tkzGetPoint{x}
\tkzDefCircle[diameter](I,C)\tkzGetPoint{y}
\tkzDrawCircles(x,A y,C)
\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
47. Some interesting examples 223
From Wikipedia : In geometry, the Malfatti circles are three circles inside a given triangle such that each
circle is tangent to the other two and to two sides of the triangle. They are named after Gian Francesco
Malfatti, who made early studies of the problem of constructing these circles in the mistaken belief that
they would have the largest possible total area of any three disjoint circles within the triangle. Below is
a study of a particular case with an equilateral triangle and three identical circles.
\begin{tikzpicture}[scale=.8]
\tkzDefPoints{0/0/A,8/0/B,0/4/a,8/4/b,8/8/c}
\tkzDefTriangle[equilateral](A,B) \tkzGetPoint{C}
\tkzDefMidPoint(A,B) \tkzGetPoint{M}
\tkzDefMidPoint(B,C) \tkzGetPoint{N}
\tkzDefMidPoint(A,C) \tkzGetPoint{P}
\tkzInterLL(A,N)(M,a) \tkzGetPoint{Ia}
\tkzDefPointBy[projection = onto A--B](Ia)
\tkzGetPoint{ha}
\tkzInterLL(B,P)(M,b) \tkzGetPoint{Ib}
\tkzDefPointBy[projection = onto A--B](Ib)
\tkzGetPoint{hb}
\tkzInterLL(A,c)(M,C) \tkzGetPoint{Ic}
\tkzDefPointBy[projection = onto A--C](Ic)
\tkzGetPoint{hc}
\tkzInterLL(A,Ia)(B,Ib) \tkzGetPoint{G}
\tkzDefSquare(A,B) \tkzGetPoints{D}{E}
\tkzDrawPolygon(A,B,C)
\tkzClipBB
\tkzDrawSemiCircles[gray,dashed](M,B A,M
A,B B,A G,Ia)
\tkzDrawCircles[gray](Ia,ha Ib,hb Ic,hc)
\tkzDrawPolySeg(A,E,D,B)
\tkzDrawPoints(A,B,C,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
47. Some interesting examples 224
From wikipedia : In trigonometry, the law of sines, sine law, sine formula, or sine rule is an equation
relating the lengths of the sides of a triangle (any shape) to the sines of its angles.
C
\begin{tikzpicture}
\tkzDefPoints{0/0/A,5/1/B,2/6/C}
\tkzDefTriangleCenter[circum](A,B,C)
\tkzGetPoint{O}
\tkzDefPointBy[symmetry= center O](B)
D \tkzGetPoint{D}
\tkzDrawPolygon[color=brown](A,B,C)
a
\tkzDrawCircle(O,A)
b \tkzDrawPoints(A,B,C,D,O)
\tkzDrawSegments[dashed](B,D A,D)
O
\tkzLabelPoint[left](D){$D$}
\tkzLabelPoint[below](A){$A$}
\tkzLabelPoint[above](C){$C$}
B \tkzLabelPoint[right](B){$B$}
\tkzLabelPoint[below](O){$O$}
c \tkzLabelSegment(B,C){$a$}
A \tkzLabelSegment[left](A,C){$b$}
\tkzLabelSegment(A,B){$c$}
\end{tikzpicture}
In the triangle ABC
a b c
= = (1)
sin A sin B sin C
Ĉ=D ̂
c
= sin D = sin C (2)
2R
Then
c
= 2R
sin C
tkz-euclide AlterMundus
47. Some interesting examples 225
Sacred geometry can be described as a belief system attributing a religious or cultural value to many of
the fundamental forms of space and time. According to this belief system, the basic patterns of existence
are perceived as sacred because in contemplating them one is contemplating the origin of all things. By
studying the nature of these forms and their relationship to each other, one may seek to gain insight into
the scientific, philosophical, psychological, aesthetic and mystical laws of the universe. The Flower of
Life is considered to be a symbol of sacred geometry, said to contain ancient, religious value depicting
the fundamental forms of space and time. In this sense, it is a visual expression of the connections life
weaves through all mankind, believed by some to contain a type of Akashic Record of basic information
of all living things.
One of the beautiful arrangements of circles found at the Temple of Osiris at Abydos, Egypt (Rawles 1997).
Weisstein, Eric W. ”Flower of Life.” From MathWorld–A Wolfram Web Resource.
http://mathworld.wolfram.com/FlowerofLife.html
tkz-euclide AlterMundus
47. Some interesting examples 226
\begin{tikzpicture}[scale=.75]
\tkzSetUpLine[line width=2pt,color=teal!80!black]
\tkzSetUpCompass[line width=2pt,color=teal!80!black]
\tkzDefPoint(0,0){O} \tkzDefPoint(2.25,0){A}
\tkzDrawCircle(O,A)
\foreach \i in {0,...,5}{
\tkzDefPointBy[rotation= center O angle 30+60*\i](A)\tkzGetPoint{a\i}
\tkzDefPointBy[rotation= center {a\i} angle 120](O)\tkzGetPoint{b\i}
\tkzDefPointBy[rotation= center {a\i} angle 180](O)\tkzGetPoint{c\i}
\tkzDefPointBy[rotation= center {c\i} angle 120](a\i)\tkzGetPoint{d\i}
\tkzDefPointBy[rotation= center {c\i} angle 60](d\i)\tkzGetPoint{f\i}
\tkzDefPointBy[rotation= center {d\i} angle 60](b\i)\tkzGetPoint{e\i}
\tkzDefPointBy[rotation= center {f\i} angle 60](d\i)\tkzGetPoint{g\i}
\tkzDefPointBy[rotation= center {d\i} angle 60](e\i)\tkzGetPoint{h\i}
\tkzDefPointBy[rotation= center {e\i} angle 180](b\i)\tkzGetPoint{k\i}
\tkzDrawCircle(a\i,O)
\tkzDrawCircle(b\i,a\i)
\tkzDrawCircle(c\i,a\i)
\tkzDrawArc[rotate](f\i,d\i)(-120)
\tkzDrawArc[rotate](e\i,d\i)(180)
\tkzDrawArc[rotate](d\i,f\i)(180)
\tkzDrawArc[rotate](g\i,f\i)(60)
\tkzDrawArc[rotate](h\i,d\i)(60)
\tkzDrawArc[rotate](k\i,e\i)(60)
}
\tkzClipCircle(O,f0)
\end{tikzpicture}
tkz-euclide AlterMundus
47. Some interesting examples 227
D3 D2
C O I A
D4 D1
\begin{tikzpicture}[scale=.75]
\tkzDefPoint(0,0){O}
\tkzDefPoint(5,0){A}
\tkzDefPoint(0,5){B}
\tkzDefPoint(-5,0){C}
\tkzDefPoint(0,-5){D}
\tkzDefMidPoint(A,O) \tkzGetPoint{I}
\tkzInterLC(I,B)(I,A) \tkzGetPoints{F}{E}
\tkzInterCC(O,C)(B,E) \tkzGetPoints{D3}{D2}
\tkzInterCC(O,C)(B,F) \tkzGetPoints{D4}{D1}
\tkzDrawArc[angles](B,E)(180,360)
\tkzDrawArc[angles](B,F)(220,340)
\tkzDrawLine[add=.5 and .5](B,I)
\tkzDrawCircle(O,A)
\tkzDefCircle[diameter](O,A) \tkzGetPoint{x}
\tkzDrawCircle(x,A)
\tkzDrawSegments(B,D C,A)
\tkzDrawPolygon[new](D,D1,D2,D3,D4)
\tkzDrawPoints(A,...,D,O)
\tkzDrawPoints[new](E,F,I,D1,D2,D4,D3)
\tkzLabelPoints[below left](A,...,D,O)
\tkzLabelPoints[new,below right](I,E,F,D1,D2,D4,D3)
\end{tikzpicture}
tkz-euclide AlterMundus
47. Some interesting examples 228
Pentagon in a square
T I D E C
N P
M
Q
A B
tkz-euclide AlterMundus
47. Some interesting examples 229
\begin{tikzpicture}[scale=.75]
\tkzDefPoints{0/0/O,-5/-5/A,5/-5/B}
\tkzDefSquare(A,B) \tkzGetPoints{C}{D}
\tkzDefMidPoint(A,B) \tkzGetPoint{F}
\tkzDefMidPoint(C,D) \tkzGetPoint{E}
\tkzDefMidPoint(B,C) \tkzGetPoint{G}
\tkzDefMidPoint(A,D) \tkzGetPoint{K}
\tkzInterLC(D,C)(E,B) \tkzGetSecondPoint{T}
\tkzDefMidPoint(D,T) \tkzGetPoint{I}
\tkzInterCC[with nodes](O,D,I)(E,D,I) \tkzGetSecondPoint{H}
\tkzInterLC(O,H)(O,E) \tkzGetSecondPoint{M}
\tkzInterCC(O,E)(E,M) \tkzGetFirstPoint{Q}
\tkzInterCC[with nodes](O,O,E)(Q,E,M) \tkzGetFirstPoint{P}
\tkzInterCC[with nodes](O,O,E)(P,E,M) \tkzGetFirstPoint{N}
\tkzCompasss(O,H E,H)
\tkzDrawArc(E,B)(T)
\tkzDrawPolygons[purple](A,B,C,D M,E,Q,P,N)
\tkzDrawCircle(O,E)
\tkzDrawSegments(T,I O,H E,H E,F G,K)
\tkzDrawPoints(T,M,Q,P,N,I)
\tkzLabelPoints(A,B,O,N,P,Q,M,H)
\tkzLabelPoints[above right](C,D,E,I,T)
\end{tikzpicture}
tkz-euclide AlterMundus
47. Some interesting examples 230
Hexagon Inscribed
To inscribe a regular hexagon in a given equilateral triangle perfectly inside it (no boarders).
\begin{tikzpicture}[scale=.5]
\pgfmathsetmacro{\c}{6}
\tkzDefPoints{0/0/A,\c/0/B}
\tkzDefTriangle[equilateral](A,B)\tkzGetPoint{C}
\tkzDefTriangleCenter[centroid](A,B,C)
\tkzGetPoint{I}
\tkzDefPointBy[homothety=center A ratio 1./3](B)
\tkzGetPoint{c1}
\tkzInterLC(B,C)(I,c1) \tkzGetPoints{a1}{a2}
\tkzInterLC(A,C)(I,c1) \tkzGetPoints{b1}{b2}
\tkzInterLC(A,B)(I,c1) \tkzGetPoints{c1}{c2}
\tkzDrawPolygon(A,B,C)
\tkzDrawCircle[thin,orange](I,c1)
\tkzDrawPolygon[red,thick](a2,a1,b2,b1,c2,c1)
\end{tikzpicture}
\begin{tikzpicture}[scale=.5]
\pgfmathsetmacro{\c}{6}
\tkzDefPoints{0/0/A,\c/0/B}
\tkzDefTriangle[equilateral](A,B)\tkzGetPoint{C}
\tkzDefTriangleCenter[centroid](A,B,C)
\tkzGetPoint{I}
\tkzDefPointsBy[rotation= center I%
angle 60](A,B,C){a,b,c}
\tkzDrawPolygon[fill=teal!20,opacity=.5](A,B,C)
\tkzDrawPolygon[fill=purple!20,opacity=.5](a,b,c)
\end{tikzpicture}
tkz-euclide AlterMundus
47. Some interesting examples 231
T
A
M O
\begin{tikzpicture}
\pgfmathsetmacro{\r}{2}%
\pgfmathsetmacro{\xO}{6}%
\pgfmathsetmacro{\xE}{\xO-\r}%
\tkzDefPoints{0/0/M,\xO/0/O,\xE/0/E}
\tkzDefCircle[diameter](M,O)
\tkzGetPoint{I}
\tkzInterCC(I,O)(O,E) \tkzGetPoints{T}{T'}
\tkzDefShiftPoint[O](45:2){B}
\tkzInterLC(M,B)(O,E) \tkzGetPoints{A}{B}
\tkzDrawCircle(O,E)
\tkzDrawSemiCircle[dashed](I,O)
\tkzDrawLine(M,O)
\tkzDrawLines(M,T O,T M,B)
\tkzDrawPoints(A,B,T)
\tkzLabelPoints[above](A,B,O,M,T)
\end{tikzpicture}
tkz-euclide AlterMundus
47. Some interesting examples 232
From Wikipedia : In geometry, the radical axis of two non-concentric circles is the set of points whose
power with respect to the circles are equal. For this reason the radical axis is also called the power line
or power bisector of the two circles. The notation radical axis was used by the French mathematician
M. Chasles as axe radical.
b′
a
H
a′ b
A
\begin{tikzpicture}
\tkzDefPoints{0/0/A,4/2/B,2/3/K}
\tkzDefCircle[R](A,1)\tkzGetPoint{a}
\tkzDefCircle[R](B,2)\tkzGetPoint{b}
\tkzDefCircle[R](K,3)\tkzGetPoint{k}
\tkzDrawCircles(A,a B,b)
\tkzDrawCircle[dashed,new](K,k)
\tkzInterCC(A,a)(K,k) \tkzGetPoints{a}{a'}
\tkzInterCC(B,b)(K,k) \tkzGetPoints{b}{b'}
\tkzDrawLines[new,add=2 and 2](a,a')
\tkzDrawLines[new,add=1 and 1](b,b')
\tkzInterLL(a,a')(b,b') \tkzGetPoint{X}
\tkzDefPointBy[projection= onto A--B](X) \tkzGetPoint{H}
\tkzDrawPoints(A,B,H,X,a,b,a',b')
\tkzDrawLine(A,B)
\tkzDrawLine[add= 1 and 2,new](X,H)
\tkzLabelPoints(A,B,H,X,a,b,a',b')
\end{tikzpicture}
tkz-euclide AlterMundus
47. Some interesting examples 233
From Wikipedia : Given two nonconcentric circles, draw radii parallel and in the same direction. Then
the line joining the extremities of the radii passes through a fixed point on the line of centers which
divides that line externally in the ratio of radii. This point is called the external homothetic center, or
external center of similitude (Johnson 1929, pp. 19-20 and 41).
M′
A T′
\begin{tikzpicture}
\tkzDefPoints{0/0/A,4/2/B,2/3/K}
\tkzDefCircle[R](A,1)\tkzGetPoint{a}
\tkzDefCircle[R](B,2)\tkzGetPoint{b}
\tkzDrawCircles(A,a B,b)
\tkzDrawLine(A,B)
\tkzDefShiftPoint[A](60:1){M}
\tkzDefShiftPoint[B](60:2){M'}
\tkzInterLL(A,B)(M,M') \tkzGetPoint{O}
\tkzDefLine[tangent from = O](B,M') \tkzGetPoints{X}{T'}
\tkzDefLine[tangent from = O](A,M) \tkzGetPoints{X}{T}
\tkzDrawPoints(A,B,O,T,T',M,M')
\tkzDrawLines[new](O,B O,T' O,M')
\tkzDrawSegments[new](A,M B,M')
\tkzLabelPoints(A,B,O,T,T',M,M')
\end{tikzpicture}
tkz-euclide AlterMundus
47. Some interesting examples 234
For two circles, there are generally four distinct lines that are tangent to both if the two circles are outside
each other. For two of these, the external tangent lines, the circles fall on the same side of the line; the
external tangent lines intersect in the external homothetic center
T′
F
B
E
a′
T
A a
\begin{tikzpicture}
\pgfmathsetmacro{\r}{1}%
\pgfmathsetmacro{\R}{2}%
\pgfmathsetmacro{\rt}{\R-\r}%
\tkzDefPoints{0/0/A,4/2/B,2/3/K}
\tkzDefMidPoint(A,B) \tkzGetPoint{I}
\tkzInterLC[R](A,B)(B,\rt) \tkzGetPoints{E}{F}
\tkzInterCC(I,B)(B,F) \tkzGetPoints{a}{a'}
\tkzInterLC[R](B,a)(B,\R) \tkzGetPoints{X'}{T'}
\tkzDefLine[tangent at=T'](B) \tkzGetPoint{h}
\tkzInterLL(T',h)(A,B) \tkzGetPoint{O}
\tkzInterLC[R](O,T')(A,\r) \tkzGetPoints{T}{T}
\tkzDefCircle[R](A,\r) \tkzGetPoint{a}
\tkzDefCircle[R](B,\R) \tkzGetPoint{b}
\tkzDefCircle[R](B,\rt) \tkzGetPoint{c}
\tkzDrawCircles(A,a)
\tkzDrawCircles[orange](B,b B,c)
\tkzDrawCircle[orange,dashed](I,B)
\tkzDrawPoints(O,A,B,a,a',E,F,T',T)
\tkzDrawLines(O,B A,a B,T' A,T)
\tkzDrawLines[add= 1 and 8](T',h)
\tkzLabelPoints(O,A,B,a,a',E,F,T,T')
\end{tikzpicture}
tkz-euclide AlterMundus
47. Some interesting examples 235
As soon as two circles are not concentric, we can construct their radical axis, the set of points of equal
power with respect to the two circles. We know that the radical axis is a line orthogonal to the line of the
centers. Note that if we specify P and Q as the points of contact of one of the common exterior tangents
with the two circles and D and E as the points of the circles outside [AB], then (DP) and (EQ) intersect
on the radical axis of the two circles. We will show that this property is always true and that it allows
us to construct common tangents, even when the circles have the same radius.
M
Q
E
P H
A
X
D
tkz-euclide AlterMundus
47. Some interesting examples 236
\begin{tikzpicture}
\tkzDefPoints{0/0/A,4/2/B,2/3/K}
\tkzDefCircle[R](A,1) \tkzGetPoint{a}
\tkzDefCircle[R](B,3) \tkzGetPoint{b}
\tkzInterCC[R](A,1)(K,3) \tkzGetPoints{a}{a'}
\tkzInterCC[R](B,3)(K,3) \tkzGetPoints{b}{b'}
\tkzInterLL(a,a')(b,b') \tkzGetPoint{X}
\tkzDefPointBy[projection= onto A--B](X) \tkzGetPoint{H}
\tkzGetPoint{C}
\tkzInterLC[R](A,B)(B,3) \tkzGetPoints{b1}{E}
\tkzInterLC[R](A,B)(A,1) \tkzGetPoints{D}{a2}
\tkzDefMidPoint(D,E) \tkzGetPoint{I}
\tkzDrawCircle[orange](I,D)
\tkzInterLC(X,H)(I,D) \tkzGetPoints{M}{M'}
\tkzInterLC(M,D)(A,D) \tkzGetPoints{P}{P'}
\tkzInterLC(M,E)(B,E) \tkzGetPoints{Q'}{Q}
\tkzInterLL(P,Q)(A,B) \tkzGetPoint{O}
\tkzDrawCircles(A,a B,b)
\tkzDrawSegments[orange](A,P I,M B,Q)
\tkzDrawPoints(A,B,D,E,M,I,O,P,Q,X,H)
\tkzDrawLines(O,E M,D M,E O,Q)
\tkzDrawLine[add= 3 and 4,orange](X,H)
\tkzLabelPoints(A,B,D,E,M,I,O,P,Q,X,H)
\end{tikzpicture}
tkz-euclide AlterMundus
47. Some interesting examples 237
This example involves determining the middle of a segment, using only a compass.
B
M
A
\begin{tikzpicture}
\tkzDefPoint(0,0){A}
\tkzDefRandPointOn[circle= center A radius 4] \tkzGetPoint{B}
\tkzDefPointBy[rotation= center A angle 180](B) \tkzGetPoint{C}
\tkzInterCC(A,B)(B,A) \tkzGetPoints{I}{I'}
\tkzInterCC(A,I)(I,A) \tkzGetPoints{J}{B}
\tkzInterCC(B,A)(C,B) \tkzGetPoints{D}{E}
\tkzInterCC(D,B)(E,B) \tkzGetPoints{M}{M'}
\tkzSetUpArc[color=orange,style=solid,delta=10]
\tkzDrawArc(C,D)(E)
\tkzDrawArc(B,E)(D)
\tkzDrawCircle[color=teal,line width=.2pt](A,B)
\tkzDrawArc(D,B)(M)
\tkzDrawArc(E,M)(B)
\tkzCompasss[color=orange,style=solid](B,I I,J J,C)
\tkzDrawPoints(A,B,C,D,E,M)
\tkzLabelPoints(A,B,M)
\end{tikzpicture}
tkz-euclide AlterMundus
47. Some interesting examples 238
From Wikipedia : Apollonius showed that a circle can be defined as the set of points in a plane that
have a specified ratio of distances to two fixed points, known as foci. This Apollonian circle is the basis
of the Apollonius pursuit problem. ... The solutions to this problem are sometimes called the circles of
Apollonius.
Explanation
A circle is the set of points in a plane that are equidistant from a given point O. The distance r from the center
is called the radius, and the point O is called the center. It is the simplest definition but it is not the only one.
Apollonius of Perga gives another definition : The set of all points whose distances from two fixed points are in a
constant ratio is a circle.
With tkz-euclide is easy to show you the last definition
A B K1
\begin{tikzpicture}[scale=1.5]
% Firstly we defined two fixed point.
% The figure depends of these points and the ratio K
\tkzDefPoint(0,0){A}
\tkzDefPoint(4,0){B}
% tkz-euclide.sty knows about the apollonius's circle
% with K=2 we search some points like I such as IA=2 x IB
\tkzDefCircle[apollonius,K=2](A,B) \tkzGetPoints{K1}{k}
\tkzDefPointOnCircle[through= center K1 angle 30 point k]
\tkzGetPoint{I}
\tkzDefPointOnCircle[through= center K1 angle 280 point k]
\tkzGetPoint{J}
\tkzDrawSegments[new](A,I I,B A,J J,B)
\tkzDrawCircle[color = teal,fill=teal!20,opacity=.4](K1,k)
\tkzDrawPoints(A,B,K1,I,J)
\tkzDrawSegment(A,B)
\tkzLabelPoints[below,font=\scriptsize](A,B,K1,I,J)
\end{tikzpicture}
tkz-euclide AlterMundus
47. Some interesting examples 239
Pappus chain
From Wikipedia In geometry, the Pappus chain is a ring of circles between two tangent circles investi-
gated by Pappus of Alexandria in the 3rd century AD.
\begin{tikzpicture}[ultra thin]
\pgfmathsetmacro{\xB}{6}%
\pgfmathsetmacro{\xC}{9}%
\pgfmathsetmacro{\xD}{(\xC*\xC)/\xB}%
\pgfmathsetmacro{\xJ}{(\xC+\xD)/2}%
\pgfmathsetmacro{\r}{\xD-\xJ}%
\pgfmathsetmacro{\nc}{16}%
\tkzDefPoints{0/0/A,\xB/0/B,\xC/0/C,\xD/0/D}
\tkzDefCircle[diameter](A,C) \tkzGetPoint{x}
\tkzDrawCircle[fill=teal!30](x,C)
\tkzDefCircle[diameter](A,B) \tkzGetPoint{y}
\tkzDrawCircle[fill=teal!30](y,B)
\foreach \i in {-\nc,...,0,...,\nc}
{\tkzDefPoint(\xJ,2*\r*\i){J}
\tkzDefPoint(\xJ,2*\r*\i-\r){H}
\tkzDefCircleBy[inversion = center A through C](J,H)
\tkzDrawCircle[fill=teal](tkzFirstPointResult,tkzSecondPointResult)}
\end{tikzpicture}
tkz-euclide AlterMundus
47. Some interesting examples 240
If two circles touch at A, and if [CD], [EF] be parallel diameters in them, A, C and E are aligned.
\begin{tikzpicture}[scale=.75]
A
x \tkzDefPoints{0/0/O_1,0/1/O_2,0/3/A}
\tkzDefPoint(15:3){F}
D \tkzDefPointBy[symmetry=center O_1](F) \tkzGetPoint{E}
O2 \tkzDefLine[parallel=through O_2](E,F) \tkzGetPoint{x}
F
C \tkzInterLC(x,O_2)(O_2,A) \tkzGetPoints{D}{C}
O1 \tkzDrawCircles(O_1,A O_2,A)
\tkzDrawSegments[orange](O_1,A E,F C,D)
E
\tkzDrawSegments[purple](A,E A,F)
\tkzDrawPoints(A,O_1,O_2,E,F,x,C,D)
\tkzLabelPoints(A,O_1,O_2,E,F,x,C,D)
\end{tikzpicture}
̂
(CD) ∥ (EF) (AO1 ) is secant to these two lines so A0 ̂
2 C = A01 E.
̂2 =
̂1 = CA0
Since the triangles AO2 C and AO1 E are isosceles the angles at the base are equal widehatAC02 = AE0
̂
EA01 . Thus A,C and E are aligned
Let AC, the diameter of a semicircle, be divided at B so that AC/AB = 𝜙 or in any ratio. Describe semi-
circles within the first semicircle and on AB, BC as diameters, and suppose a circle drawn touching the
all three semicircles. If GH be the diameter of this circle, to find relation between GH and AC.
tkz-euclide AlterMundus
47. Some interesting examples 241
\begin{tikzpicture}
\tkzDefPoints{0/0/A,12/0/C}
\tkzDefGoldenRatio(A,C) \tkzGetPoint{B}
\tkzDefMidPoint(A,C) \tkzGetPoint{O}
\tkzDefMidPoint(A,B) \tkzGetPoint{O_1}
\tkzDefMidPoint(B,C) \tkzGetPoint{O_2}
\tkzDefExtSimilitudeCenter(O_1,A)(O_2,B) \tkzGetPoint{M_0}
\tkzDefIntSimilitudeCenter(O,A)(O_1,A) \tkzGetPoint{M_1}
\tkzDefIntSimilitudeCenter(O,C)(O_2,C) \tkzGetPoint{M_2}
\tkzInterCC(O_1,A)(M_2,C) \tkzGetFirstPoint{E}
\tkzInterCC(O_2,C)(M_1,A) \tkzGetSecondPoint{F}
\tkzInterCC(O,A)(M_0,B) \tkzGetFirstPoint{D}
\tkzInterLL(O_1,E)(O_2,F) \tkzGetPoint{O_3}
\tkzDefCircle[circum](E,F,B) \tkzGetPoint{0_4}
\tkzInterLC(A,D)(O_1,A) \tkzGetFirstPoint{I}
\tkzInterLC(C,D)(O_2,B) \tkzGetSecondPoint{K}
\tkzInterLC[common=D](A,D)(O_3,D) \tkzGetFirstPoint{G}
\tkzInterLC[common=D](C,D)(O_3,D) \tkzGetFirstPoint{H}
\tkzInterLL(C,G)(B,K) \tkzGetPoint{M}
\tkzInterLL(A,H)(B,I) \tkzGetPoint{L}
\tkzInterLL(L,G)(A,C) \tkzGetPoint{N}
\tkzInterLL(M,H)(A,C) \tkzGetPoint{P}
\tkzDrawCircles[red,thin](O_3,F)
\tkzDrawCircles[new,thin](0_4,B)
\tkzDrawSemiCircles[teal](O,C O_1,B O_2,C)
\tkzDrawSemiCircles[green](M_2,C)
\tkzDrawSemiCircles[green,swap](M_1,A)
\tkzDrawSegment(A,C)
\tkzDrawSegments[new](O_1,O_3 O_2,O_3)
\tkzDrawSegments[new,very thin](B,H C,G A,H G,N H,P)
\tkzDrawSegments[new,very thin](B,D A,D C,D G,H I,B K,B B,G)
\tkzDrawPoints(A,B,C,M_1,M_2,E,O_3,F,D,0_4,O_1,O_2,I,K,G,H,L,P,N,M)
\tkzLabelPoints[font=\scriptsize](A,B,C,M_1,M_2,F,O_1,O_2,I,K,G,H,L,M,N)
\tkzLabelPoints[font=\scriptsize,right](E,O_3,D,0_4,P)
\end{tikzpicture}
tkz-euclide AlterMundus
47. Some interesting examples 242
O3
G H
I
E
L
F K
04
M
P
A O1 M1 N B M2 O2 C
Let GH be the diameter of the circle which is parallel to AC, and let the circle touch the semicircles on AC, AB, BC
in D, E, F respectively.
Then, by Prop. 1 A,G and D are aligned, ainsi que D, H and C.
For a like reason A E and H are aligned, C F and Gare aligned, as also are B E and G, B F and H.
Let (AD) meet the semicircle on [AC] at I, and let (BD) meet the semicircle on [BC] in K. Join CI, CK meeting AE,
BF in L, M, and let GL, HM produced meet AB in N, P respectively.
Now, in the triangle AGB, the perpendiculars from A, C on the opposite sides meet in L. Therefore by the proper-
ties of triangles, (GN) is perpendicular to (AC). Similarly (HP) is perpendicular to (BC).
Again, since the angles at I, K, D are right, (CK) is parallel to (AD), and (CI) to (BD).
Therefore
AB AL AN BC CM PC
= = and = =
BC LH NP AB MG NP
hence
AN NP
= so NP2 = AN × PC
NP PC
Now suppose that B divides [AC] according to the divine proportion that is :
AB AC
𝜙= = then AN = 𝜙NPand NP = 𝜙PC
BC AB
We have
AC = AN + NP + PC either AB + BC == AN + NP + PC or (𝜙 + 1)BC = AN + NP + PC
we get
tkz-euclide AlterMundus
47. Some interesting examples 243
as
𝜙2 = 𝜙 + 1 then (𝜙 + 1)BC = 2(𝜙 + 1)PC i.e. BC = 2PC
That is, p is the middle of the segment BC.
Part of the proof from https://www.cut-the-knot.org
The circle which touches all three excircles of a triangle and encompasses them is often known as ”the”
Apollonius circle (Kimberling 1998, p. 102)
Explanation
The purpose of the first examples was to show the simplicity with which we could recreate these propositions.
With TikZ you need to do calculations and use trigonometry while with tkz-euclide you only need to build
simple objects
But don’t forget that behind or far above tkz-euclide there is TikZ. I’m only creating an interface between TikZ
and the user of my package.
The last example is very complex and it is to show you all that we can do with tkz-euclide.
tkz-euclide AlterMundus
47. Some interesting examples 244
F′ a
Ac
A′′
C′
Za
Bc
Ja
Yb
F′ b Fa
Jb
Fb K O
N Sp Q
A′
Ba Xb A Mc B Xa Ab
Fc
Yc
Zc
Jc
Ca Cb
F′ c
tkz-euclide AlterMundus
47. Some interesting examples 245
\begin{tikzpicture}[scale=.6]
\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[ortho](A,B,C) \tkzGetPoint{H}
\tkzDefSpcTriangle[excentral,name=J](A,B,C){a,b,c}
\tkzDefSpcTriangle[centroid,name=M](A,B,C){a,b,c}
\tkzDefCircle[in](Ma,Mb,Mc) \tkzGetPoint{Sp} % Sp Spieker center
\tkzDefProjExcenter[name=J](A,B,C)(a,b,c){Y,Z,X}
\tkzDefLine[parallel=through Za](A,B) \tkzGetPoint{Xc}
\tkzInterLL(Za,Xc)(C,B) \tkzGetPoint{C'}
\tkzDefLine[parallel=through Zc](B,C) \tkzGetPoint{Ya}
\tkzInterLL(Zc,Ya)(A,B) \tkzGetPoint{A'}
\tkzDefPointBy[reflection= over Ja--Jc](C')\tkzGetPoint{Ab}
\tkzDefPointBy[reflection= over Ja--Jc](A')\tkzGetPoint{Cb}
\tkzInterLL(K,O)(N,Sp) \tkzGetPoint{Q}
\tkzInterLC(A,B)(Q,Cb) \tkzGetFirstPoint{Ba}
\tkzInterLC(A,C)(Q,Cb) \tkzGetPoints{Ac}{Ca}
\tkzInterLC(B,C')(Q,Cb) \tkzGetFirstPoint{Bc}
\tkzInterLC[next to=Ja](Ja,Q)(Q,Cb) \tkzGetFirstPoint{F'a}
\tkzInterLC[next to=Jc](Jc,Q)(Q,Cb) \tkzGetFirstPoint{F'c}
\tkzInterLC[next to=Jb](Jb,Q)(Q,Cb) \tkzGetFirstPoint{F'b}
\tkzInterLC[common=F'a](Sp,F'a)(Ja,F'a) \tkzGetFirstPoint{Fa}
\tkzInterLC[common=F'b](Sp,F'b)(Jb,F'b) \tkzGetFirstPoint{Fb}
\tkzInterLC[common=F'c](Sp,F'c)(Jc,F'c) \tkzGetFirstPoint{Fc}
\tkzInterLC(Mc,Sp)(Q,Cb) \tkzGetFirstPoint{A''}
\tkzDefCircle[euler](A,B,C) \tkzGetPoints{E}{e}
\tkzDefCircle[ex](C,A,B) \tkzGetPoints{Ea}{a}
\tkzDefCircle[ex](A,B,C) \tkzGetPoints{Eb}{b}
\tkzDefCircle[ex](B,C,A) \tkzGetPoints{Ec}{c}
% Calculations are done, now you can draw, mark and label
\tkzDrawCircles(Q,Cb E,e)%
\tkzDrawCircles(Eb,b Ea,a Ec,c)
\tkzDrawPolygon(A,B,C)
\tkzDrawSegments[dashed](A,A' C,C' A',Zc Za,C' B,Cb B,Ab A,Ca)
\tkzDrawSegments[dashed](C,Ac Ja,Xa Jb,Yb Jc,Zc)
\begin{scope}
\tkzClipCircle(Q,Cb) % We limit the drawing of the lines
\tkzDrawLine[add=5 and 12,orange](K,O)
\tkzDrawLine[add=12 and 28,red!50!black](N,Sp)
\end{scope}
\tkzDrawPoints(A,B,C,K,Ja,Jb,Jc,Q,N,O,Sp,Mc,Xa,Xb,Yb,Yc,Za,Zc)
\tkzDrawPoints(A',C',A'',Ab,Cb,Bc,Ca,Ac,Ba,Fa,Fb,Fc,F'a,F'b,F'c)
\tkzLabelPoints(Ja,Jb,Jc,Q,Xa,Xb,Za,Zc,Ab,Cb,Bc,Ca,Ac,Ba,F'b)
\tkzLabelPoints[above](O,K,F'a,Fa,A'')
\tkzLabelPoints[below](B,F'c,Yc,N,Sp,Fc,Mc)
\tkzLabelPoints[left](A',C',Fb)
\tkzLabelPoints[right](C)
\tkzLabelPoints[below right](A)
\tkzLabelPoints[above right](Yb)
\tkzDrawSegments(Fc,F'c Fb,F'b Fa,F'a)
\tkzDrawSegments[color=green!50!black](Mc,N Mc,A'' A'',Q)
\tkzDrawSegments[color=red,dashed](Ac,Ab Ca,Cb Ba,Bc Ja,Jc A',Cb C',Ab)
\tkzDrawSegments[color=red](Cb,Ab Bc,Ac Ba,Ca A',C')
\tkzMarkSegments[color=red,mark=|](Cb,Ab Bc,Ac Ba,Ca)
\tkzMarkRightAngles(Jc,Zc,A Ja,Xa,B Jb,Yb,C)
\tkzDrawSegments[green,dashed](A,F'a B,F'b C,F'c)
\end{tikzpicture}
tkz-euclide AlterMundus
Part X.
FAQ
48. FAQ 247
48. FAQ
– The mistake I make most often is to forget to put an ”s” in the macro used to draw more than one object:
like \tkzDrawSegment(s) or \tkzDrawCircle(s) ok like in this example \tkzDrawPoint(A,B) when you
need \tkzDrawPoints(A,B);
– Don’t forget that since version 4 the unit is obligatorily the ”cm” it is thus necessary to withdraw the unit like
here \tkzDrawCircle[R](O,3cm) which becomes \tkzDrawCircle[R](O,3). The traditional options of
TikZ keep their units examplebelow right = 12pt on the other hand one will write size=1.2 to position
an arc in \tkzMarkAngle;
– The following error still happens to me from time to time. A point that is created has its name in brackets
while a point that is used either as an option or as a parameter has its name in braces.
Example \tkzGetPoint(A)When defining an object, use braces and not brackets, so write: \tkzGetPoint{A};
– The changes in obtaining the points of intersection between lines and circles sometimes exchange the
solutions, this leads either to a bad figure or to an error.
– \tkzGetPoint{A} in place of \tkzGetFirstPoint{A}. When a macro gives two points as results, either
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 reference
tkzFirstPointResult or tkzSecondPointResult. It is possible that a third point is given as
tkzPointResult;
– 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.
– Error ”dimension too large” : In some cases, this error occurs. One way to avoid it is to use the ”veclen”
option. When this option is used in an scope, the ”veclen” function is replaced by a function dependent
on ”xfp”. Do not use intersection macros in this scope. For example, an error occurs if you use the macro
\tkzDrawArc 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.
tkz-euclide AlterMundus
Index
\add, 123
\ang, 115
\Ax, 181
\Ay, 181
\coordinate, 32
\endpgfinterruptboundingbox, 153
Environment
scope, 34, 190
tikzpicture, 190
tikzspicture, 190
\foreach, 107
\fpeval, 109
\iftkzFlagCC, 110
\iftkzFlagLC, 104
Operating System
Windows, 16
Package
pgfmath, 246
tkz-elements, 15, 16
tkz-euclide, 146
xfp, 16, 32, 34, 179, 246
\pgfinterruptboundingbox, 153
\pgflinewidth, 121, 122
\pgfmathsetmacro, 109
\pgfresetboundingbox, 146
\px, 181
\py, 181
\rAB, 39
\rAp, 48
standalone, 21
TeX Distributions
MiKTeX, 16
TeXLive, 16
TikZ Library
babel, 26
decoration, 246
\tikzset, 189
tkz-euclide: options
lua, 16
mini, 16
\tkzAngleResult, 115, 117
\tkzAutoLabelPoints, 166
\tkzCalcLength, 179, 180
Index 249
\tkzCalcLength: arguments
(pt1,pt2){name of macro}, 179
\tkzCalcLength: options
cm, 180
\tkzCalcLength[⟨local options⟩](⟨pt1,pt2⟩), 179
\tkzCentroid, 41
\tkzClip, 26, 146, 147
\tkzClip: options
space, 147
\tkzClipBB, 148, 149
\tkzClipCircle[out], 154
\tkzClipCircle, 94, 151
\tkzClipCircle: arguments
(⟨A,B⟩), 151
\tkzClipCircle: options
out, 151
\tkzClipCircle[⟨local options⟩](⟨A,B⟩), 151
\tkzClipPolygon[out], 150, 154
\tkzClipPolygon, 150
\tkzClipPolygon: arguments
(⟨pt1,pt2,pt3,…⟩), 150
\tkzClipPolygon: options
out, 150
\tkzClipPolygon[⟨local options⟩](⟨points list⟩), 150
\tkzClipSector(O,A)(B), 152
\tkzClipSector[R](O,2)(30,90), 152
\tkzClipSector[rotate](O,A)(90), 152
\tkzClipSector, 152
\tkzClipSector: options
R, 152
rotate, 152
towards, 152
\tkzClipSector[⟨local options⟩](⟨O,…⟩)(⟨…⟩), 152
\tkzClip[⟨local options⟩], 147
\tkzcmtopt, 181
\tkzcmtopt: arguments
(number){name of macro}, 181
\tkzcmtopt(⟨number⟩){⟨name of macro⟩}, 181
\tkzCompass, 136, 173
\tkzCompass: options
delta, 173
length, 173
\tkzCompasss, 173, 174
\tkzCompasss: options
delta, 173
length, 173
\tkzCompasss[⟨local options⟩](⟨pt1,pt2 pt3,pt4,…⟩), 173
\tkzCompass[⟨local options⟩](⟨A,B⟩), 173
\tkzDefBarycentricPoint, 40, 42
\tkzDefBarycentricPoint: arguments
(pt1=𝛼1 ,pt2=𝛼2 ,…), 40
\tkzDefBarycentricPoint(⟨pt1=𝛼1 ,pt2=𝛼2 ,…⟩), 40
\tkzDefCircle[radius](A,B), 180
\tkzDefCircle, 94
\tkzDefCircle: arguments
(⟨pt1,pt2⟩) or (⟨pt1,pt2,pt3⟩), 94
\tkzDefCircle: options
K, 94
tkz-euclide AlterMundus
Index 250
R, 94
apollonius, 94
circum, 94
diameter, 94
euler or nine, 94
ex, 94
in, 94
orthogonal from, 94
orthogonal through, 94
spieker, 94
\tkzDefCircleBy, 101
\tkzDefCircleBy: arguments
pt1,pt2, 101
\tkzDefCircleBy: options
homothety, 101
inversion, 101
projection , 101
reflection, 101
rotation , 101
symmetry , 101
translation, 101
\tkzDefCircleBy[⟨local options⟩](⟨pt1,pt2⟩), 101
\tkzDefCirclesBy, 101
\tkzDefCircle[⟨local options⟩](⟨A,B⟩) or (⟨A,B,C⟩), 94
\tkzDefEquiPoints, 45
\tkzDefEquiPoints: arguments
(pt1,pt2), 45
\tkzDefEquiPoints: options
/compass/delta, 45
dist, 45
from=pt, 45
show, 45
\tkzDefEquiPoints[⟨local options⟩](⟨pt1,pt2⟩), 45
\tkzDefExtSimilitudeCenter, 41
\tkzDefGoldenRatio(A,C), 40
\tkzDefGoldenRatio, 39, 40
\tkzDefGoldenRatio: arguments
(pt1,pt2), 40
\tkzDefGoldenRatio(⟨pt1,pt2⟩), 40
\tkzDefGoldenRectangle, 91
\tkzDefGoldenRectangle: arguments
(⟨pt1,pt2⟩), 91
\tkzDefGoldenRectangle(⟨point,point⟩), 91
\tkzDefGoldRectangle, 91
\tkzDefHarmonic, 44
\tkzDefHarmonic: options
both, 44
ext, 44
int, 44
\tkzDefHarmonic[⟨options⟩](⟨pt1,pt2,pt3⟩) or (⟨pt1,pt2,k⟩), 44
\tkzDefIntSimilitudeCenter, 41
\tkzDefLine, 70
\tkzDefLine: arguments
(⟨pt1,pt2,pt3⟩), 70
(⟨pt1,pt2⟩), 70
(⟨pt1⟩), 70
\tkzDefLine: options
K, 71
tkz-euclide AlterMundus
Index 251
altitude, 71
bisector out, 71
bisector, 71
euler, 71
mediator, 71
normed, 71
orthogonal=through…, 71
parallel=through…, 71
perpendicular=through…, 71
symmedian, 71
tangent at, 71
tangent from, 71
\tkzDefLine[⟨local options⟩](⟨pt1,pt2⟩) or (⟨pt1,pt2,pt3⟩), 70
\tkzDefMidArc, 45
\tkzDefMidArc: arguments
pt1, pt2, pt3, 45
\tkzDefMidArc(⟨pt1,pt2,pt3⟩), 45
\tkzDefMidPoint, 20, 39
\tkzDefMidPoint: arguments
(pt1,pt2), 39
\tkzDefMidPoint(⟨pt1,pt2⟩), 39
\tkzDefParallelogram, 91
\tkzDefParallelogram: arguments
(⟨pt1,pt2,pt3⟩), 91
\tkzDefParallelogram(⟨pt1,pt2,pt3⟩), 91
\tkzDefPoint, 32, 33, 39, 104, 115
\tkzDefPoint: arguments
(𝛼:d), 33
(x, y), 33
{ref}, 33
\tkzDefPoint: options
label, 33
shift, 33
\tkzDefPointBy[rotation = …], 115
\tkzDefPointBy, 56
\tkzDefPointBy: arguments
pt, 56
\tkzDefPointBy: options
homothety, 56
inversion negative, 56
inversion, 56
projection , 56
reflection, 56
rotation in rad, 56
rotation with nodes, 56
rotation , 56
symmetry , 56
translation, 56
\tkzDefPointBy[⟨local options⟩](⟨pt⟩), 56
\tkzDefPointOnCircle, 48, 49
\tkzDefPointOnCircle: options
R in rad, 48
R, 48
through in rad, 48
through, 48
\tkzDefPointOnCircle[⟨local options⟩], 48
\tkzDefPointOnLine, 47
\tkzDefPointOnLine: arguments
tkz-euclide AlterMundus
Index 252
pt1,pt2, 47
\tkzDefPointOnLine: options
pos=nb, 47
\tkzDefPointOnLine[⟨local options⟩](⟨A,B⟩), 47
\tkzDefPoints{0/0/O,2/2/A}, 36
\tkzDefPoints, 32, 36
\tkzDefPoints: arguments
xi /yi /ri , 36
\tkzDefPoints: options
shift, 36
\tkzDefPointsBy, 56, 64
\tkzDefPointsBy: arguments
(⟨list of points⟩){⟨list of pts⟩}, 64
\tkzDefPointsBy: options
homothety = center #1 ratio #2, 64
inversion = center #1 through #2, 64
inversion negative = center #1 through #2, 64
projection = onto #1--#2, 64
reflection = over #1--#2, 64
rotation = center #1 angle #2, 64
rotation in rad = center #1 angle #2, 64
rotation with nodes = center #1 from #2 to #3, 64
symmetry = center #1, 64
translation = from #1 to #2, 64
\tkzDefPointsBy[⟨local options⟩](⟨list of points⟩){⟨list of points⟩}, 64
\tkzDefPoints[⟨local options⟩]{⟨x1 /y1 /n1 , x2 /y2 /r2 , ...⟩}, 36
\tkzDefPointWith, 65
\tkzDefPointWith: arguments
(pt1,pt2), 65
\tkzDefPointWith: options
K, 65
colinear normed= at #1, 65
colinear= at #1, 65
linear normed, 65
linear, 65
orthogonal normed, 65
orthogonal, 65
\tkzDefPointWith(⟨pt1,pt2⟩), 65
\tkzDefPoint[⟨local options⟩](⟨x, y⟩){⟨ref⟩} or (⟨𝛼:d⟩){⟨ref⟩}, 33
\tkzDefProjExcenter[name=J](A,B,C)(a,b,c){Y,Z,X}, 98
\tkzDefProjExcenter, 98
\tkzDefProjExcenter: arguments
(pt1=𝛼1 ,pt2=𝛼2 ,…), 98
\tkzDefProjExcenter: options
name, 98
\tkzDefProjExcenter[⟨local options⟩](⟨A,B,C⟩)(⟨a,b,c⟩){⟨X,Y,Z⟩}, 98
\tkzDefRadicalAxis, 184
\tkzDefRadicalAxis: arguments
(pt1,pt2)(pt3,pt4), 184
\tkzDefRadicalAxis(⟨pt1,pt2⟩)(⟨pt3,pt4⟩), 184
\tkzDefRandPointOn, 119
\tkzDefRandPointOn: options
circle =center pt1 radius dim, 119
circle through=center pt1 through pt2, 119
disk through=center pt1 through pt2, 119
line=pt1--pt2, 119
rectangle=pt1 and pt2, 119
segment= pt1--pt2, 119
tkz-euclide AlterMundus
Index 253
tkz-euclide AlterMundus
Index 254
golden, 77
gold, 77
half, 77
isosceles right, 77
pythagoras, 77
pythagore, 77
school, 77
sublime, 77
swap, 77
two angles= #1 and #2, 77
\tkzDefTriangleCenter[ortho](B,C,A), 50
\tkzDefTriangleCenter, 50
\tkzDefTriangleCenter: arguments
(pt1,pt2,pt3), 50
\tkzDefTriangleCenter: options
centroid, 50
circum, 50
euler, 50
ex, 50
feuerbach, 50
gergonne, 50
grebe, 50
in, 50
lemoine, 50
median, 50
mittenpunkt, 50
nagel, 50
orthic, 50
ortho, 50
spieker, 50
symmedian, 50
\tkzDefTriangleCenter[⟨local options⟩](⟨A,B,C⟩), 50
\tkzDefTriangle[⟨local options⟩](⟨A,B⟩), 77
\tkzDotProduct, 182
\tkzDotProduct: arguments
(pt1,pt2,pt3), 182
\tkzDotProduct(⟨pt1,pt2,pt3⟩), 182
\tkzDrawArc[angles](O,A)(0,90), 135
\tkzDrawArc[delta=10](O,A)(B), 135
\tkzDrawArc[R with nodes](O,2)(A,B), 135
\tkzDrawArc[R](O,2)(30,90), 135
\tkzDrawArc[rotate,color=red](O,A)(90), 135
\tkzDrawArc, 115, 134, 135, 246
\tkzDrawArc: options
R with nodes, 135
R, 135
angles, 135
delta, 135
reverse, 135
rotate, 135
towards, 135
\tkzDrawArc[⟨local options⟩](⟨O,…⟩)(⟨…⟩), 135
\tkzDrawCircle(s), 246
\tkzDrawCircle[R](O,3), 246
\tkzDrawCircle[R](O,3cm), 246
\tkzDrawCircle, 94, 129, 140
\tkzDrawCircle: arguments
(⟨pt1,pt2⟩), 129
tkz-euclide AlterMundus
Index 255
\tkzDrawCircles, 130
\tkzDrawCircles: arguments
(⟨pt1,pt2 pt3,pt4 ...⟩), 130
\tkzDrawCircles: options
through, 130
\tkzDrawCircles[⟨local options⟩](⟨A,B C,D …⟩), 130
\tkzDrawCircle[⟨local options⟩](⟨A,B⟩), 129
\tkzDrawEllipse, 134
\tkzDrawEllipse: arguments
(⟨C,a,b,An⟩), 134
\tkzDrawEllipse[⟨local options⟩](⟨C,a,b,An⟩), 134
\tkzDrawLine, 123
\tkzDrawLine: options
TikZ options, 123
…, 123
add, 123
\tkzDrawLines, 123
\tkzDrawLines[⟨local options⟩](⟨pt1,pt2 pt3,pt4 ...⟩), 123
\tkzDrawLine[⟨local options⟩](⟨pt1,pt2⟩) , 123
\tkzDrawPoint(A,B), 246
\tkzDrawPoint, 121
\tkzDrawPoint: arguments
name of point, 121
\tkzDrawPoint: options
TikZ options, 121
color, 121
shape, 121
size, 121
\tkzDrawPoints(A,B), 246
\tkzDrawPoints(A,B,C), 122
\tkzDrawPoints, 121, 122
\tkzDrawPoints: arguments
points list, 122
\tkzDrawPoints: options
color, 122
shape, 122
size, 122
\tkzDrawPoints[⟨local options⟩](⟨liste⟩), 122
\tkzDrawPoint[⟨local options⟩](⟨name⟩), 121
\tkzDrawPolygon, 127
\tkzDrawPolygon: arguments
(⟨pt1,pt2,pt3,...⟩), 127
\tkzDrawPolygon: options
Options TikZ, 127
\tkzDrawPolygon[⟨local options⟩](⟨points list⟩), 127
\tkzDrawPolySeg, 128
\tkzDrawPolySeg: arguments
(⟨pt1,pt2,pt3,...⟩), 128
\tkzDrawPolySeg: options
Options TikZ, 128
\tkzDrawPolySeg[⟨local options⟩](⟨points list⟩), 128
\tkzDrawSector(O,A)(B), 138
\tkzDrawSector[R with nodes](O,2)(A,B), 138
\tkzDrawSector[R,color=teal](O,2)(30,90), 138
\tkzDrawSector[rotate,color=red](O,A)(90), 138
\tkzDrawSector, 138–140
\tkzDrawSector: options
R with nodes, 138
tkz-euclide AlterMundus
Index 256
R, 138
rotate, 138
towards, 138
\tkzDrawSector[⟨local options⟩](⟨O,…⟩)(⟨…⟩), 138
\tkzDrawSegment(s), 246
\tkzDrawSegment, 123, 124
\tkzDrawSegment: arguments
(pt1,pt2), 124
\tkzDrawSegment: options
TikZ options, 124
…, 124
dim, 124
\tkzDrawSegments, 126
\tkzDrawSegments[⟨local options⟩](⟨pt1,pt2 pt3,pt4 ...⟩), 126
\tkzDrawSegment[⟨local options⟩](⟨pt1,pt2⟩), 124
\tkzDrawSemiCircle, 133
\tkzDrawSemiCircle: arguments
(⟨pt1,pt2⟩), 133
\tkzDrawSemiCircles, 133
\tkzDrawSemiCircles: arguments
(⟨pt1,pt2 pt3,pt4 ...⟩), 133
\tkzDrawSemiCircles[⟨local options⟩](⟨A,B C,D …⟩), 133
\tkzDrawSemiCircle[⟨local options⟩](⟨O,A⟩), 133
\tkzDuplicateLen, 178
\tkzDuplicateLength, 178
\tkzDuplicateSegment, 178, 179
\tkzDuplicateSegment: arguments
(pt1,pt2)(pt3,pt4){pt5}, 178
\tkzDuplicateSegment(⟨pt1,pt2⟩)(⟨pt3,pt4⟩){⟨pt5⟩}, 178
\tkzFillAngle, 144, 145, 201
\tkzFillAngle: options
size, 145
\tkzFillAngles, 145
\tkzFillAngles[⟨local options⟩](⟨A,O,B⟩)(⟨A',O',B'⟩)etc., 145
\tkzFillAngle[⟨local options⟩](⟨A,O,B⟩), 145
\tkzFillCircle, 94, 140
\tkzFillCircle: options
R, 140
radius, 140
\tkzFillCircle[⟨local options⟩](⟨A,B⟩), 140
\tkzFillPolygon, 143
\tkzFillPolygon: arguments
(⟨pt1,pt2,…⟩), 143
\tkzFillPolygon[⟨local options⟩](⟨points list⟩), 143
\tkzFillSector(O,A)(B), 144
\tkzFillSector[R with nodes](O,2)(A,B), 144
\tkzFillSector[R,color=blue](O,2)(30,90), 144
\tkzFillSector[rotate,color=red](O,A)(90), 144
\tkzFillSector, 139, 143, 144
\tkzFillSector: options
R with nodes, 144
R, 144
rotate, 144
towards, 144
\tkzFillSector[⟨local options⟩](⟨O,…⟩)(⟨…⟩), 144
\tkzFindAngle, 115
\tkzFindAngle: arguments
(pt1,pt2,pt3), 115
tkz-euclide AlterMundus
Index 257
\tkzFindAngle(⟨pt1,pt2,pt3⟩), 115
\tkzFindSlopeAngle, 117, 118
\tkzFindSlopeAngle: arguments
(pt1,pt2), 117
\tkzFindSlopeAngle(⟨A,B⟩), 117
\tkzGetAngle, 115–117
\tkzGetAngle: arguments
name of macro, 115
\tkzGetAngle(⟨name of macro⟩), 115
\tkzGetFirstPoint{A}, 246
\tkzGetFirstPoint{Jb}, 97
\tkzGetFirstPoint{M} , 38
\tkzGetFirstPoint, 38, 89
\tkzGetFirstPoint: arguments
ref1, 38
\tkzGetFirstPoint{⟨ref1⟩}, 38
\tkzGetLength{dAB}, 179, 180
\tkzGetLength, 39, 94, 179, 180
\tkzGetLength: arguments
name of a macro, 39
\tkzGetLength{⟨name of a macro⟩}, 39
\tkzGetPoint(A), 246
\tkzGetPoint{A}, 246
\tkzGetPoint{C}, 65
\tkzGetPoint{M} , 38
\tkzGetPoint{M}, 56
\tkzGetPoint, 20, 38–40, 50–52, 65, 70, 77, 91, 94, 95, 119
\tkzGetPoint: arguments
ref, 38
\tkzGetPointCoord, 181
\tkzGetPointCoord: arguments
(point){name of macro}, 181
\tkzGetPointCoord(⟨A⟩){⟨name of macro⟩}, 181
\tkzGetPoints{A}{B}, 246
\tkzGetPoints{M,N} , 38
\tkzGetPoints{O'}{M'}, 101
\tkzGetPoints{z1}{z2}, 100
\tkzGetPoints, 38, 70, 89–91, 94, 101
\tkzGetPoints: arguments
{ref1,ref2}, 38
\tkzGetPoints{⟨ref1⟩}{⟨ref2⟩}, 38
\tkzGetPoint{⟨ref⟩}, 38
\tkzGetRandPointOn, 118
\tkzGetResult, 182
\tkzGetSecondPoint{A}, 246
\tkzGetSecondPoint{M} , 39
\tkzGetSecondPoint{Tb}, 97
\tkzGetSecondPoint, 39, 89
\tkzGetSecondPoint: arguments
ref2, 39
\tkzGetSecondPoint{⟨ref2⟩}, 39
\tkzGetVectxy, 70
\tkzGetVectxy: arguments
(point){name of macro}, 70
\tkzGetVectxy(⟨A, B⟩){⟨text⟩}, 70
\tkzInit, 21, 26, 146, 147
\tkzInit: options
xmax, 147
tkz-euclide AlterMundus
Index 258
xmin, 147
xstep, 147
ymax, 147
ymin, 147
ystep, 147
\tkzInit[⟨local options⟩], 147
\tkzInterCC, 38, 110
\tkzInterCC: options
N, 110
R, 110
common=pt, 110
with nodes, 110
\tkzInterCC[⟨options⟩](⟨O, A⟩)(⟨O′ , A′ ⟩) or (⟨O, r⟩)(⟨O′ , r′ ⟩) or (⟨O, A, B⟩) (⟨O′ , C, D⟩), 110
\tkzInterLC, 104
\tkzInterLC: options
N, 104
R, 104
common=pt, 104
near, 104
with nodes, 104
\tkzInterLC[⟨options⟩](⟨A, B⟩)(⟨O, C⟩) or (⟨O, r⟩) or (⟨O, C, D⟩), 104
\tkzInterLL, 104
\tkzInterLL(⟨A, B⟩)(⟨C, D⟩), 104
\tkzIsLinear, 186, 187
\tkzIsLinear: arguments
(pt1,pt2,pt3), 186
\tkzIsLinear(⟨pt1,pt2,pt3⟩), 186
\tkzIsOrtho, 186, 187
\tkzIsOrtho: arguments
(pt1,pt2,pt3), 186
\tkzIsOrtho(⟨pt1,pt2,pt3⟩), 186
\tkzLabelAngle, 168
\tkzLabelAngle: options
pos, 169
\tkzLabelAngles, 170
\tkzLabelAngles[⟨local options⟩](⟨A,O,B⟩)(⟨A',O',B'⟩)etc., 170
\tkzLabelAngle[⟨local options⟩](⟨A,O,B⟩), 168
\tkzLabelArc(A,B){5}, 171
\tkzLabelArc, 171
\tkzLabelArc: arguments
(pt1,pt2,pt3), 171
label, 171
\tkzLabelArc: options
pos, 171
\tkzLabelArc[⟨local options⟩](⟨pt1,pt2,pt3⟩){⟨label⟩}, 171
\tkzLabelCircle, 94, 170
\tkzLabelCircle: options
tikz options, 170
\tkzLabelCircle[⟨tikz options⟩](⟨O,A⟩)(⟨angle⟩){⟨label⟩}, 170
\tkzLabelLine(A,B), 168
\tkzLabelLine, 168
\tkzLabelLine: arguments
label, 168
\tkzLabelLine: options
pos, 168
\tkzLabelLine[⟨local options⟩](⟨pt1,pt2⟩){⟨label⟩}, 168
\tkzLabelPoint(A){$A_1$}, 165
\tkzLabelPoint(A,B,C), 166
tkz-euclide AlterMundus
Index 259
\tkzLabelPoint, 165
\tkzLabelPoint: arguments
point, 165
\tkzLabelPoint: options
TikZ options, 165
\tkzLabelPoints(A,B,C), 165
\tkzLabelPoints, 165, 166
\tkzLabelPoints: arguments
list of points, 165, 166
\tkzLabelPoints[⟨local options⟩](⟨A1 , A2 , ...⟩), 165, 166
\tkzLabelPoint[⟨local options⟩](⟨point⟩){⟨label⟩}, 165
\tkzLabelSegment(A,B){5}, 166
\tkzLabelSegment, 166
\tkzLabelSegment: arguments
(pt1,pt2), 166
label, 166
\tkzLabelSegment: options
pos, 166
\tkzLabelSegments, 168
\tkzLabelSegments[⟨local options⟩](⟨pt1,pt2 pt3,pt4 ...⟩), 168
\tkzLabelSegment[⟨local options⟩](⟨pt1,pt2⟩){⟨label⟩}, 166
\tkzMarkAngle, 158, 159, 201, 246
\tkzMarkAngle: options
arc, 159
mark, 159
mkcolor, 159
mkpos, 159
mksize, 159
size, 159
\tkzMarkAngles, 159
\tkzMarkAngles[⟨local options⟩](⟨A,O,B⟩)(⟨A',O',B'⟩)etc., 159
\tkzMarkAngle[⟨local options⟩](⟨A,O,B⟩), 159
\tkzMarkArc, 158
\tkzMarkArc: options
color, 158
mark, 158
pos, 158
size, 158
\tkzMarkArc[⟨local options⟩](⟨pt1,pt2,pt3⟩), 158
\tkzMarkRightAngle, 160
\tkzMarkRightAngle: options
german, 160
size, 160
\tkzMarkRightAngles, 162
\tkzMarkRightAngles[⟨local options⟩](⟨A,O,B⟩)(⟨A',O',B'⟩)etc., 162
\tkzMarkRightAngle[⟨local options⟩](⟨A,O,B⟩), 160
\tkzMarkSegment, 157
\tkzMarkSegment: options
color, 157
mark, 157
pos, 157
size, 157
\tkzMarkSegments, 157
\tkzMarkSegments[⟨local options⟩](⟨pt1,pt2 pt3,pt4 ...⟩), 157
\tkzMarkSegment[⟨local options⟩](⟨pt1,pt2⟩), 157
\tkzPermute, 88
\tkzPermute: arguments
(pt1,pt2,pt3), 88
tkz-euclide AlterMundus
Index 260
\tkzPermute(⟨pt1,pt2,pt3⟩), 88
\tkzPicAngle, 162
\tkzPicAngle: options
tikz option, 162
\tkzPicAngle[⟨tikz options⟩](⟨A,O,B⟩), 162
\tkzPicRightAngle, 162
\tkzPicRightAngle: options
tikz option, 162
\tkzPicRightAngle[⟨tikz options⟩](⟨A,O,B⟩), 162
\tkzPowerCircle, 184
\tkzPowerCircle: arguments
(pt1)(pt2,pt3), 184
\tkzPowerCircle(⟨pt1⟩)(⟨pt2,pt3⟩), 184
\tkzProtractor, 177
\tkzProtractor: options
lw, 177
return, 177
scale, 177
\tkzProtractor[⟨local options⟩](⟨O, A⟩), 177
\tkzpttocm, 180
\tkzpttocm: arguments
(number){name of macro}, 180
\tkzpttocm(⟨number⟩){⟨name of macro⟩}, 180
\tkzSetUpArc, 193
\tkzSetUpArc: options
color, 193
line width, 193
style, 193
\tkzSetUpArc[⟨local options⟩], 193
\tkzSetUpColors, 189
\tkzSetUpCompass, 194
\tkzSetUpCompass: options
color, 194
delta, 194
line width, 194
style, 194
\tkzSetUpCompass[⟨local options⟩], 194
\tkzSetUpLabel, 194, 195
\tkzSetUpLine, 122, 191
\tkzSetUpLine: options
add, 191
color, 191
line width, 191
style, 191
\tkzSetUpLine[⟨local options⟩], 191
\tkzSetUpPoint, 189–191
\tkzSetUpPoint: options
color, 189
fill, 189
shape, 189
size, 189
\tkzSetUpPoint[⟨local options⟩], 189
\tkzSetUpStyle, 195
\tkzSetUpStyle[⟨local options⟩], 195
\tkzShowBB, 148
\tkzShowBB[⟨local options⟩], 148
\tkzShowLine, 174, 175, 194
\tkzShowLine: options
tkz-euclide AlterMundus
Index 261
K, 174
bisector, 174
gap, 174
length, 174
mediator, 174
orthogonal, 174
perpendicular, 174
ratio, 174
size, 174
\tkzShowLine[⟨local options⟩](⟨pt1,pt2⟩) or (⟨pt1,pt2,pt3⟩), 174
\tkzShowTransformation, 175, 176
\tkzShowTransformation: options
K, 176
gap, 176
length, 176
projection=onto pt1--pt2, 176
ratio, 176
reflection= over pt1--pt2, 176
size, 176
symmetry=center pt, 176
translation=from pt1 to pt2, 176
\tkzShowTransformation[⟨local options⟩](⟨pt1,pt2⟩) or (⟨pt1,pt2,pt3⟩), 175
\tkzSwapPoints, 182
\tkzSwapPoints: arguments
(pt1,pt2), 182
\tkzSwapPoints(⟨pt1,pt2⟩), 182
\tkzTestInterCC, 110
\tkzTestInterCC(⟨O, A⟩)(⟨O′ , B⟩), 110
\tkzTestInterLC, 104
\tkzTestInterLC(⟨O, A⟩)(⟨O′ , B⟩), 104
\useasboundingbox, 146
\Vx, 70
\Vy, 70
\xstep, 147
\ystep, 147
tkz-euclide AlterMundus