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. You may need to use some mathematical constants, here is the list of constants defined by the package. \section{Auxiliary tools} \subsection{Constants} \tkzname{\tkznameofpack} knows some constants, here is the list: \begin{tkzltxexample}[] \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} \end{tkzltxexample} \subsection{New point by calculation } When a macro of \tkzname{tkznameofpack} creates a new point, it is stored internally with the reference \tkzname{tkzPointResult}. You can assign your own reference to it. This is done with the macro \tkzcname{tkzGetPoint}. A new reference is created, your choice of reference must be placed between braces. \begin{NewMacroBox}{tkzGetPoint}{\marg{ref}}% If the result is in \tkzname{tkzPointResult}, you can access it with \tkzcname{tkzGetPoint}. \medskip \begin{tabular}{lll}% \toprule arguments & default & example \\ \midrule \TAline{ref}{no default}{ \tkzcname{tkzGetPoint\{M\} } see the next example} \end{tabular} \end{NewMacroBox} Sometimes you need to get two points. It's possible with \begin{NewMacroBox}{tkzGetPoints}{\marg{ref1}\marg{ref2}}% The result is in \tkzname{tkzPointFirstResult} and \tkzname{tkzPointSecondResult}. \medskip \begin{tabular}{lll}% \toprule arguments & default & example \\ \midrule \TAline{\{ref1,ref2\}}{no default}{ \tkzcname{tkzGetPoints\{M,N\} } It's the case with \tkzcname{tkzInterCC}} \end{tabular} \end{NewMacroBox} If you need only the first or the second point you can also use : \begin{NewMacroBox}{tkzGetFirstPoint}{\marg{ref1}}% \medskip \begin{tabular}{lll}% \toprule arguments & default & example \\ \midrule \TAline{ref1}{no default}{ \tkzcname{tkzGetFirstPoint\{M\} }} \end{tabular} \end{NewMacroBox} \begin{NewMacroBox}{tkzGetSecondPoint}{\marg{ref2}}% \medskip \begin{tabular}{lll}% \toprule arguments & default & example \\ \midrule \TAline{ref2}{no default}{ \tkzcname{tkzGetSecondPoint\{M\} }} \end{tabular} \end{NewMacroBox} Sometimes the results consist of a point and a dimension. You get the point with \tkzcname{tkzGetPoint} and the dimension with \tkzcname{tkzGetLength}. \begin{NewMacroBox}{tkzGetLength}{\marg{name of a macro}}% \medskip \begin{tabular}{lll}% \toprule arguments & default & example \\ \midrule \TAline{name of a macro}{no default}{ \tkzcname{tkzGetLength\{rAB\} \tkzcname{rAB} gives the length in cm}} \end{tabular} \end{NewMacroBox} %\tkzcname{tkzCalcLength}(A,B) After \tkzcname{tkzGetLength\{dAB\}} \tkzcname{dAB} gives $AB$ in cm} \section{Special points} Here are some special points. %<---------------------------------------------------------------------------> \subsection{Middle of a segment \tkzcname{tkzDefMidPoint}} It is a question of determining the middle of a segment. \begin{NewMacroBox}{tkzDefMidPoint}{\parg{pt1,pt2}}% The result is in \tkzname{tkzPointResult}. We can access it with \tkzcname{tkzGetPoint}. \medskip \begin{tabular}{lll}% \toprule arguments & default & definition \\ \midrule \TAline{(pt1,pt2)}{no default}{pt1 and pt2 are two points} \end{tabular} \end{NewMacroBox} \subsubsection{Use of \tkzcname{tkzDefMidPoint}} Review the use of \tkzcname{tkzDefPoint}. \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture}[scale=1] \tkzDefPoint(2,3){A} \tkzDefPoint(6,2){B} \tkzDefMidPoint(A,B) \tkzGetPoint{M} \tkzDrawSegment(A,B) \tkzDrawPoints(A,B,M) \tkzLabelPoints[below](A,B,M) \end{tikzpicture} \end{tkzexample} \subsection{\tkzname{Golden ratio} \tkzcname{tkzDefGoldenRatio}} From Wikipedia : In mathematics, two quantities are in the golden ratio if their ratio is the same as the ratio of their sum to the larger of the two quantities. Expressed algebraically, for quantities $a$, $b$ such as $a > b > 0$; $a+b$ is to $a$ as $a$ is to $b$. $ \frac{a+b}{a} = \frac{a}{b} = \phi = \frac{1 + \sqrt{5}}{2}$ One of the two solutions to the equation $x^2 - x - 1 = 0$ is the golden ratio $\phi$, $\phi = \frac{1 + \sqrt{5}}{2}$. \begin{NewMacroBox}{tkzDefGoldenRatio}{\parg{pt1,pt2}}% \begin{tabular}{lll}% arguments & default & example \\ \midrule \TAline{(pt1,pt2)}{no default}{\tkzcname{tkzDefGoldenRatio(A,C)} \tkzcname{tkzGetPoint}\{B\}} \bottomrule \end{tabular} \medskip $AB=a$, $BC=b$ and $\frac{AC}{AB} = \frac{AB}{BC} =\phi$ \end{NewMacroBox} \subsubsection{Use the golden ratio to divide a line segment} \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture} \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} \end{tkzexample} \subsubsection{Golden arbelos} \begin{tkzexample}[latex=7cm,small] \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} \end{tkzexample} It is also possible to use the following macro. \subsection{\tkzname{Barycentric coordinates} with \tkzcname{tkzDefBarycentricPoint}} $pt_1$, $pt_2$, \dots, $pt_n$ being $n$ points, they define $n$ vectors $\overrightarrow{v_1}$, $\overrightarrow{v_2}$, \dots, $\overrightarrow{v_n}$ with the origin of the referential as the common endpoint. $\alpha_1$, $\alpha_2$, \dots $\alpha_n$ are $n$ numbers, the vector obtained by: \begin{align*} \frac{\alpha_1 \overrightarrow{v_1} + \alpha_2 \overrightarrow{v_2} + \cdots + \alpha_n \overrightarrow{v_n}}{\alpha_1 + \alpha_2 + \cdots + \alpha_n} \end{align*} defines a single point. \begin{NewMacroBox}{tkzDefBarycentricPoint}{\parg{pt1=$\alpha_1$,pt2=$\alpha_2$,\dots}}% \begin{tabular}{lll}% arguments & default & definition \\ \midrule \TAline{(pt1=$\alpha_1$,pt2=$\alpha_2$,\dots)}{no default}{Each point has a assigned weight} \bottomrule \end{tabular} \medskip \emph{You need at least two points. Result in \tkzname{tkzPointResult}.} \end{NewMacroBox} \subsubsection{with two points} In the following example, we obtain the barycenter of points $A$ and $B$ with coefficients $1$ and $2$, in other words: \[ \overrightarrow{AI}= \frac{2}{3}\overrightarrow{AB} \] \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture} \tkzDefPoint(2,3){A} \tkzDefShiftPointCoord[2,3](30:4){B} \tkzDefBarycentricPoint(A=1,B=2) \tkzGetPoint{G} \tkzDrawLine(A,B) \tkzDrawPoints(A,B,G) \tkzLabelPoints(A,B,G) \end{tikzpicture} \end{tkzexample} \subsubsection{with three points} This time $M$ is simply the center of gravity of the triangle. For reasons of simplification and homogeneity, there is also \tkzcname{tkzCentroid}. \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture}[scale=.8] \tkzDefPoints{2/1/A,5/3/B,0/6/C} \tkzDefBarycentricPoint(A=1,B=1,C=1) \tkzGetPoint{G} \tkzDefMidPoint(A,B) \tkzGetPoint{C'} \tkzDefMidPoint(A,C) \tkzGetPoint{B'} \tkzDefMidPoint(C,B) \tkzGetPoint{A'} \tkzDrawPolygon(A,B,C) \tkzDrawLines[add=0 and 1,new](A,G B,G C,G) \tkzDrawPoints[new](A',B',C',G) \tkzDrawPoints(A,B,C) \tkzLabelPoint[above right](G){$G$} \tkzAutoLabelPoints[center=G](A,B,C) \tkzLabelPoints[above right](A') \tkzLabelPoints[below](B',C') \end{tikzpicture} \end{tkzexample} \subsection{\tkzname{Internal and external Similitude Center}} The centers of the two homotheties in which two circles correspond are called external and internal centers of similitude. You can use \tkzcname{tkzDefIntSimilitudeCenter} and \tkzcname{tkzDefExtSimilitudeCenter} but the next macro is better. \begin{NewMacroBox}{tkzDefSimilitudeCenter}{\oarg{options}\parg{O,A}\parg{O',B} or \parg{O,r}\parg{O',r'}}% \begin{tabular}{lll}% arguments & example & explanation \\ \midrule \TAline{\parg{pt1,pt2}\parg{pt3,pt4}}{$(O,A)(O',B)$} {$r=OA,r'=O'B$} \TAline{\parg{pt1,r1}\parg{pt2,r2}}{$(A,1)(B,2)$} {} \end{tabular} \medskip \begin{tabular}{lll}% \toprule options & default & definition \\ \midrule \TOline{ext}{ext}{external center} \TOline{int}{ext}{internal center} \TOline{node}{node}{Circles are defined by two points: center and point on the circle} \TOline{R}{node}{Circles are defined by the center and the radius} \end{tabular} \end{NewMacroBox} \subsubsection{Internal and external with \tkzname{node}} \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture}[scale=.75] \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} \end{tkzexample} \subsubsection{D'Alembert Theorem} % (fold) \label{ssub:d_alembert_theorem} \begin{tkzexample}[latex=7cm,small] \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} \end{tkzexample} % subsubsection d_alembert_theorem (end) You can use \tkzcname{tkzDefBarycentricPoint} to find a homothetic center |\tkzDefBarycentricPoint(O=\r,A=\R) \tkzGetPoint{I}| \\ |\tkzDefBarycentricPoint(O={-\r},A=\R) \tkzGetPoint{J}| \subsubsection{Example with \tkzname{node}} \begin{tkzexample}[latex=7cm,small] \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} \end{tkzexample} \newpage %<----------------------------------------------------------------------> \subsection{ \tkzname{Harmonic division} with \tkzcname{tkzDefHarmonic}} %<----------------------------------------------------------------------> \begin{NewMacroBox}{tkzDefHarmonic}{\oarg{options}\parg{pt1,pt2,pt3} or \parg{pt1,pt2}}% \begin{tabular}{lll}% options & default & definition \\ \midrule \TOline{both}{both}{\parg{A,B} we look for C and D such that $(A,B;C,D) = -1$ } \TOline{ext}{both}{\parg{A,B,C} we look for D such that $(A,B;C,D) = -1$} \TOline{int}{both}{\parg{A,B,D} we look for C such that $(A,B;C,D) = -1$} \end{tabular} \end{NewMacroBox} \subsubsection{options \tkzname{ext} and \tkzname{int}} \begin{tkzexample}[vbox,small] \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} \end{tkzexample} \subsubsection{Bisector and harmonic division} % (fold) \label{ssub:bisector_and_harmonic_division} \begin{tkzexample}[vbox,small] \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} \end{tkzexample} % subsubsection bisector_and_harmonic_division (end) \subsubsection{option \tkzname{both} } \tkzname{both} is the default option \begin{tkzexample}[vbox,small] \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} \end{tkzexample} %<----------------------------------------------------------------------> \subsection{\tkzname{Equidistant points} with \tkzcname{tkzDefEquiPoints} } %<----------------------------------------------------------------------> \begin{NewMacroBox}{tkzDefEquiPoints}{\oarg{local options}\parg{pt1,pt2}}% \begin{tabular}{lll}% arguments & default & definition \\ \midrule \TAline{(pt1,pt2)}{no default}{unordered list of two items} \end{tabular} \begin{tabular}{lll}% options & default & definition \\ \midrule \TOline{dist} {2 (cm)} {half the distance between the two points} \TOline{from=pt} {no default} {reference point} \TOline{show} {false} {if true displays compass traces} \TOline{/compass/delta} {0} {compass trace size } \end{tabular} \medskip \emph{This macro makes it possible to obtain two points on a straight line equidistant from a given point.} \end{NewMacroBox} \subsubsection{Using \tkzcname{tkzDefEquiPoints} with options} \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture} \tkzSetUpCompass[color=purple,line width=1pt] \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) \tkzDrawPoints[color=blue](A,B,C) \tkzDrawPoints[color=red](E,H) \tkzLabelPoints(E,H) \tkzLabelPoints[color=blue](A,B,C) \end{tikzpicture} \end{tkzexample} %<----------------------------------------------------------------------> % Middle of an arc > %<----------------------------------------------------------------------> \subsection{Middle of an arc} \begin{NewMacroBox}{tkzDefMidArc}{\parg{pt1,pt2,pt3}}% \begin{tabular}{lll}% arguments & default & definition \\ \midrule \TAline{$pt1,pt2,pt3$}{no default}{$pt1$ is the center, $\widearc{pt2pt3}$ the arc} \end{tabular} \end{NewMacroBox} \begin{tkzexample}[vbox,small] \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} \end{tkzexample} %<----------------------------------------------------------------------> % Point on a line > %<----------------------------------------------------------------------> \section{Point on line or circle} \subsection{Point on a line with \tkzcname{tkzDefPointOnLine}} \begin{NewMacroBox}{tkzDefPointOnLine}{\oarg{local options}\parg{A,B}}% \begin{tabular}{lll}% arguments & default & definition \\ \midrule \TAline{pt1,pt2} {no default} {Two points to define a line} \bottomrule \end{tabular} \medskip \begin{tabular}{lll}% options & default & definition \\ \midrule \TOline{pos=nb} {}{nb is a decimal } \end{tabular} \end{NewMacroBox} \subsubsection{Use of option \tkzname{pos}} \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture} \tkzDefPoints{0/0/A,3/0/B} \tkzDefPointOnLine[pos=1.2](A,B)\tkzGetPoint{P} \tkzDefPointOnLine[pos=-0.2](A,B)\tkzGetPoint{R} \tkzDefPointOnLine[pos=0.5](A,B) \tkzGetPoint{S} \tkzDrawLine[new](A,B) \tkzDrawPoints(A,B,P) \tkzLabelPoints(A,B) \tkzLabelPoint[above](P){pos=$1.2$} \tkzLabelPoint[above](R){pos=$-.2$} \tkzLabelPoint[above](S){pos=$.5$} \tkzDrawPoints(A,B,P,R,S) \tkzLabelPoints(A,B) \end{tikzpicture} \end{tkzexample} \subsection{Point on a circle with \tkzcname{tkzDefPointOnCircle}} The order of the arguments has changed: now it is center, angle and point or radius. I have added two options for working with radians which are \tkzname{through in rad} and \tkzname{R in rad}. \begin{NewMacroBox}{tkzDefPointOnCircle}{\oarg{local options}}% \begin{tabular}{lll}% options & default & examples definition \\ \midrule \TOline{through} {}{through = center K1 angle 30 point B]} \TOline{R} {}{R = center K1 angle 30 radius \tkzcname{rAp}} \TOline{through in rad} {}{through in rad= center K1 angle pi/4 point B]} \TOline{R in rad} {}{R in rad = center K1 angle pi/6 radius \tkzcname{rAp}} \end{tabular} \medskip \emph{The new order for arguments are : center, angle and point or radius.} \end{NewMacroBox} \subsubsection{Altshiller's Theorem} The two lines joining the points of intersection of two orthogonal circles to a point on one of the circles met the other circle in two diametricaly oposite points. Altshiller p 176 \begin{tkzexample}[latex=6cm,small] \begin{tikzpicture}[scale=.4] \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 .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} \end{tkzexample} \subsubsection{Use of \tkzcname{tkzDefPointOnCircle}} \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture} \tkzDefPoints{0/0/A,4/0/B,0.8/3/C} \tkzDefPointOnCircle[R = center B angle 90 radius 1] \tkzGetPoint{I} \tkzDefCircle[circum](A,B,C) \tkzGetPoints{G}{g} \tkzDefPointOnCircle[through = center G angle 30 point g] \tkzGetPoint{J} \tkzDefCircle[R](B,1) \tkzGetPoint{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} \end{tkzexample} \newpage \section{Special points relating to a triangle} \subsection{Triangle center: \tkzcname{tkzDefTriangleCenter}} \begin{NewMacroBox}{tkzDefTriangleCenter}{\oarg{local options}\parg{A,B,C}}% \tkzHandBomb\ 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 \tkzcname{tkzGetPoint} to get the center you are looking for. You can use \tkzname{tkzPointResult} if it is not necessary to keep the results. \medskip \begin{tabular}{lll}% \toprule arguments & default & example \\ \midrule \TAline{(pt1,pt2,pt3)}{no default}{ \tkzcname{tkzDefTriangleCenter[ortho](B,C,A)}} \midrule options & default & definition \\ \midrule \TOline{ortho} {circum}{intersection of the altitudes} \TOline{orthic} {circum}{\dots} \TOline{centroid} {circum}{intersection of the medians} \TOline{median} {circum}{ \dots } \TOline{circum}{circum}{circle center circumscribed} \TOline{in} {circum}{center of the circle inscribed in a triangle } \TOline{in} {circum}{intersection of the bisectors} \TOline{ex} {circum}{center of a circle exinscribed to a triangle } \TOline{euler}{circum}{center of Euler's circle } \TOline{gergonne}{circum}{defined with the Contact triangle} \TOline{symmedian} {circum}{Lemoine's point or symmedian center or Grebe's point } \TOline{lemoine} {circum}{ \dots} \TOline{grebe} {circum}{ \dots} \TOline{spieker} {circum}{Spieker circle center} \TOline{nagel}{circum}{Nagel Center} \TOline{mittenpunkt} {circum}{Or middlespoint} \TOline{feuerbach}{circum}{Feuerbach Point} \end{tabular} \end{NewMacroBox} \subsubsection{Option \tkzname{ortho} or \tkzname{orthic}} The intersection $H$ of the three altitudes of a triangle is called the orthocenter. \begin{tkzexample}[latex=6cm,small] \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} \tkzDrawPolygon(A,B,C) \tkzDrawSegments[new](A,Ha B,Hb C,Hc) \tkzDrawPoints(A,B,C,H) \tkzLabelPoint(H){$H$} \tkzLabelPoints[below](A,B) \tkzLabelPoints[above](C) \tkzMarkRightAngles(A,Ha,B B,Hb,C C,Hc,A) \end{tikzpicture} \end{tkzexample} \subsubsection{Option \tkzname{centroid}} \begin{tkzexample}[latex=6cm,small] \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) \tkzDrawLines[add = 0 and 2/3,new](A,G B,G C,G) \tkzDrawPoints(A,B,C,G) \tkzLabelPoint(G){$G$} \end{tikzpicture} \end{tkzexample} \subsubsection{Option \tkzname{circum}} \begin{tkzexample}[latex=6cm,small] \begin{tikzpicture} \tkzDefPoints{0/1/A,3/2/B,1/4/C} \tkzDefTriangleCenter[circum](A,B,C) \tkzGetPoint{O} \tkzDrawPolygon(A,B,C) \tkzDrawCircle(O,A) \tkzDrawPoints(A,B,C,O) \tkzLabelPoint(O){$O$} \end{tikzpicture} \end{tkzexample} \subsubsection{Option \tkzname{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 \href{https://en.wikipedia.org/wiki/Incircle_and_excircles_of_a_triangle}{Wikipedia}) \medskip We get the center of the inscribed circle of the triangle. The result is of course in \tkzname{tkzPointResult}. We can retrieve it with \tkzcname{tkzGetPoint}. \begin{tkzexample}[latex=8cm,small] \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) \tkzLabelPoint(I){$I$} \end{tikzpicture} \end{tkzexample} \subsubsection{Option \tkzname{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 triangle's sides.\\ (Article on \href{https://en.wikipedia.org/wiki/Incircle_and_excircles_of_a_triangle}{Wikipedia}) We get the center of an inscribed circle of the triangle. The result is of course in \tkzname{tkzPointResult}. We can retrieve it with \tkzcname{tkzGetPoint}. \begin{tkzexample}[latex=7cm,small] \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) \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} \end{tkzexample} \subsubsection{Option \tkzname{euler}} This macro allows to obtain the center of the circle of the nine points or euler's circle or Feuerbach's circle. The nine-point circle, also called Euler's circle or the Feuerbach circle, is the circle that passes through the perpendicular feet $H_A$, $H_B$, and $H_C$ dropped from the vertices of any reference triangle $ABC$ on the sides opposite them. Euler showed in 1765 that it also passes through the midpoints $M_A$, $M_B$, $M_C$ of the sides of $ABC$. By Feuerbach's theorem, the nine-point circle also passes through the midpoints $E_A$, $E_B$, and $E_C$ of the segments that join the vertices and the orthocenter $H$. These points are commonly referred to as the Euler points.\\ (\url{https://mathworld.wolfram.com/Nine-PointCircle.html}) \begin{tkzexample}[latex=5cm,small] \begin{tikzpicture}[scale=1,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} \tkzDefSpcTriangle[ortho,name=H](A,B,C){_A,_B,_C} \tkzDrawPolygon(A,B,C) \tkzDrawCircle[new](N,E_A) \tkzDrawSegments[new](A,H_A B,H_B C,H_C) \tkzDrawPoints(A,B,C,N,H) \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, font=\scriptsize](A,B,C,M_A,M_B,M_C,H_A,H_B,H_C,E_A,E_B,E_C) \tkzLabelPoints[font=\scriptsize](H,N) \tkzMarkSegments[mark=s|,size=3pt, color=blue,line width=1pt](B,E_B E_B,H) \end{tikzpicture} \end{tkzexample} \subsubsection{Option \tkzname{symmedian}} The point of concurrence $K$ of the symmedians, sometimes also called the Lemoine point (in England and France) or the Grebe point (in Germany).\\ \href{https://mathworld.wolfram.com/SymmedianPoint.html}{Weisstein, Eric W. "Symmedian Point." From MathWorld--A Wolfram Web Resource.} \begin{tkzexample}[latex=6cm,small] \begin{tikzpicture} \tkzDefPoint(0,0){A} \tkzDefPoint(5,0){B} \tkzDefPoint(1,4){C} \tkzDefTriangleCenter[symmedian](A,B,C)\tkzGetPoint{K} \tkzDefTriangleCenter[median](A,B,C)\tkzGetPoint{G} \tkzDefTriangleCenter[in](A,B,C)\tkzGetPoint{I} \tkzDefSpcTriangle[centroid,name=M](A,B,C){a,b,c} \tkzDefSpcTriangle[incentral,name=I](A,B,C){a,b,c} \tkzDrawPolygon(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} \end{tkzexample} \subsubsection{Option \tkzname{spieker}} The Spieker center is the center $Sp$ of the Spieker circle, i.e., the incenter of the medial triangle of a reference triangle.\\ \href{https://mathworld.wolfram.com/SpiekerCenter.html}{Weisstein, Eric W. "Spieker Center." From MathWorld--A Wolfram Web Resource. } \begin{tkzexample}[latex=8cm,small] \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} \tkzDrawPolygon[](A,B,C) \tkzDrawPolygon[new](Ma,Mb,Mc) \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) \tkzLabelPoints[below](A,B,Mc) \tkzLabelPoints[above](C) \end{tikzpicture} \end{tkzexample} \subsubsection{Option \tkzname{gergonne}} The Gergonne Point is the point of concurrency which results from connecting the vertices of a triangle to the opposite points of tangency of the triangle's incircle. (Joseph Gergonne French mathematician ) \begin{tkzexample}[latex=8cm,small] \begin{tikzpicture} \tkzDefPoints{0/0/B,3.6/0/C,2.8/4/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) \tkzDrawSegments[new](A,C_1 B,C_2 C,C_3) \tkzDrawPoints(A,...,C,C_1,C_2,C_3) \tkzDrawPoints[red](Ge) \tkzLabelPoints(B,C,C_1,Ge) \tkzLabelPoints[above](A,C_2,C_3) \end{tikzpicture} \end{tkzexample} \subsubsection{Option \tkzname{nagel}} Let $Ta$ be the point at which the excircle with center $Ja$ meets the side $BC$ of a triangle $ABC$, and define $Tb$ and $Tc$ similarly. Then the lines $ATa$, $BTb$, and $CTc$ concur in the Nagel point $Na$.\\ \href{https://mathworld.wolfram.com/NagelPoint.html}{Weisstein, Eric W. "Nagel point." From MathWorld--A Wolfram Web Resource. } \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture}[scale=.5] \tkzDefPoints{0/0/A,6/0/B,4/6/C} \tkzDefSpcTriangle[ex](A,B,C){Ja,Jb,Jc} \tkzDefSpcTriangle[extouch](A,B,C){Ta,Tb,Tc} \tkzDefTriangleCenter[nagel](A,B,C) \tkzGetPoint{Na} \tkzDrawPolygon[blue](A,B,C) \tkzDrawLines[add=0 and 1](A,Ta B,Tb C,Tc) \tkzDrawPoints[new](Ja,Jb,Jc,Ta,Tb,Tc) \tkzClipBB \tkzDrawLines[add=1 and 1,dashed](A,B B,C C,A) \tkzDrawCircles[new](Ja,Ta Jb,Tb Jc,Tc) \tkzDrawSegments[new,dashed](Ja,Ta Jb,Tb Jc,Tc) \tkzDrawPoints(B,C,A) \tkzDrawPoints[new](Na) \tkzLabelPoints(B,C,A) \tkzLabelPoints[new](Na) \tkzLabelPoints[new](Ja,Jb,Jc,Ta,Tb,Tc) \tkzMarkRightAngles[fill=gray!20](Ja,Ta,C Jb,Tb,A Jc,Tc,B) \end{tikzpicture} \end{tkzexample} \subsubsection{Option \tkzname{mittenpunkt}} The mittenpunkt (also called the middlespoint) of a triangle $ABC$ is the symmedian point of the excentral triangle, i.e., the point of concurrence M of the lines from the excenters through the corresponding triangle side midpoints.\\ \href{https://mathworld.wolfram.com/Mittenpunkt.html}{Weisstein, Eric W. "Mittenpunkt." From MathWorld--A Wolfram Web Resource.} \begin{tkzexample}[latex=8cm,small] \begin{tikzpicture}[scale=.5] \tkzDefPoints{0/0/A,6/0/B,4/6/C} \tkzDefSpcTriangle[centroid](A,B,C){Ma,Mb,Mc} \tkzDefSpcTriangle[ex](A,B,C){Ja,Jb,Jc} \tkzDefSpcTriangle[extouch](A,B,C){Ta,Tb,Tc} \tkzDefTriangleCenter[mittenpunkt](A,B,C) \tkzGetPoint{Mi} \tkzDrawPoints[new](Ma,Mb,Mc,Ja,Jb,Jc) \tkzClipBB \tkzDrawPolygon[blue](A,B,C) \tkzDrawLines[add=0 and 1](Ja,Ma Jb,Mb Jc,Mc) \tkzDrawLines[add=1 and 1](A,B A,C B,C) \tkzDrawCircles[new](Ja,Ta Jb,Tb Jc,Tc) \tkzDrawPoints(B,C,A) \tkzDrawPoints[new](Mi) \tkzLabelPoints(Mi) \tkzLabelPoints[left](Mb) \tkzLabelPoints[new](Ma,Mc,Jb,Jc) \tkzLabelPoints[above left](Ja,Jc) \end{tikzpicture} \end{tkzexample} \subsubsection{Relation between \tkzname{gergonne}, \tkzname{centroid} and \tkzname{mittenpunkt}} The Gergonne point $Ge$, triangle centroid $G$, and mittenpunkt $M$ are collinear, with GeG/GM=2. \begin{tkzexample}[vbox,small] \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} \end{tkzexample} \endinput