\newpage \section{Class \Iclass{triangle}} % (fold) \label{sec:class_triangle} \subsection{Attributes of a triangle} % (fold) \label{sub:attributes_of_a_triangle} The triangle object is created using the \Imeth{triangle}{new} method, for example with \begin{mybox} Creation | T.ABC = triangle : new ( z.A , z.B , z.C ) | \end{mybox} (Refer to examples: \ref{sub:alternate}; \ref{sub:apollonius_circle}; \ref{sub:excircles} ). Multiple attributes are then created. \bgroup \catcode`_=12 \small \captionof{table}{Triangle attributes.}\label{triangle:att} \begin{tabular}{ll} \toprule \textbf{Attributes} & \textbf{Application}\\ \Iattr{triangle}{pa} &T.ABC.pa \\ \Iattr{triangle}{pb} &T.ABC.pb \\ \Iattr{triangle}{pc} &T.ABC.pc \\ \Iattr{triangle}{type} & 'triangle' \\ \Iattr{triangle}{circumcenter} & T.ABC.circumcenter\\ \Iattr{triangle}{centroid} &T.ABC.centroid\\ \Iattr{triangle}{incenter} &T.ABC.incenter\\ \Iattr{triangle}{orthocenter} &T.ABC.orthocenter\\ \Iattr{triangle}{eulercenter} &T.ABC.eulercenter \\ \Iattr{triangle}{spiekercenter} &T.ABC.spiekercenter \\ \Iattr{triangle}{a}& It's the length of the side opposite the first vertex \\ \Iattr{triangle}{b}& It's the length of the side opposite the second verte\\ \Iattr{triangle}{c}& It's the length of the side opposite the third vertex \\ \Iattr{triangle}{alpha}& Vertex angle of the first vertex\\ \Iattr{triangle}{beta}& Vertex angle of the second vertex\\ \Iattr{triangle}{gamma}& Vertex angle of the third vertex\\ \Iattr{triangle}{ab}& Line defined by the first two points of the triangle\\ \Iattr{triangle}{bc}& Line defined by the last two points \\ \Iattr{triangle}{ca}& Line defined by the last and the first points of the triangle\\ \bottomrule % \end{tabular} \egroup \subsection{Triangle attributes: angles} % (fold) \label{sub:triangle_attributes_angles} \begin{minipage}{.6\textwidth} \begin{Verbatim} \begin{tkzelements} z.A = point: new(0,0) z.B = point: new(5,0) z.C = point: new(2,3) T.ABC = triangle: new (z.A,z.B,z.C) \end{tkzelements} \def\wangle#1{\tkzDN[2]{% \tkzUseLua{math.deg(T.ABC.#1)}}} \begin{tikzpicture} \tkzGetNodes \tkzDrawPolygons(A,B,C) \tkzLabelAngle(B,A,C){$\wangle{alpha}^\circ$} \tkzLabelAngle(C,B,A){$\wangle{beta}^\circ$} \tkzLabelAngle(A,C,B){$\wangle{gamma}^\circ$} \end{tikzpicture} \end{Verbatim} \end{minipage} \begin{minipage}{.4\textwidth} \begin{tkzelements} z.A = point: new(0,0) z.B = point: new(5,0) z.C = point: new(2,3) T.ABC = triangle: new (z.A,z.B,z.C) \end{tkzelements} \def\wangle#1{\tkzDN[2]{\tkzUseLua{math.deg(T.ABC.#1)}}} \begin{tikzpicture} \tkzGetNodes \tkzDrawPolygons(A,B,C) \tkzLabelAngle(B,A,C){$\wangle{alpha}^\circ$} \tkzLabelAngle(C,B,A){$\wangle{beta}^\circ$} \tkzLabelAngle(A,C,B){$\wangle{gamma}^\circ$} \end{tikzpicture} \end{minipage} % subsection triangle_attributes_angles (end) \subsubsection{Example: triangle attributes} % (fold) \label{ssub:example_triangle_attributes} \begin{minipage}{.5\textwidth} \begin{Verbatim} \begin{tkzelements} z.A = point: new (0 , 0) z.B = point: new (4 , 0) z.C = point: new (0 , 3) T.ABC = triangle : new (z.A,z.B,z.C) z.O = T.ABC.circumcenter z.I = T.ABC.incenter z.H = T.ABC.orthocenter z.G = T.ABC.centroid a = T.ABC.a b = T.ABC.b c = T.ABC.c alpha = T.ABC.alpha beta = T.ABC.beta gamma = T.ABC.gamma \end{tkzelements} \begin{tikzpicture} \tkzGetNodes \tkzDrawPolygon(A,B,C) \tkzDrawPoints(A,B,C,O,G,I,H) \tkzLabelPoints[below](A,B,O,G,I) \tkzLabelPoints[above right](H,C) \tkzDrawCircles(O,A) \tkzLabelSegment[sloped](A,B){\tkzUseLua{c}} \tkzLabelSegment[sloped,above](B,C){\tkzUseLua{a}} \end{tikzpicture} \end{Verbatim} \end{minipage} \begin{minipage}{.5\textwidth} \begin{tkzelements} z.A = point: new (0 , 0) z.B = point: new (4 , 0) z.C = point: new (0 , 3) T.ABC = triangle : new (z.A,z.B,z.C) z.O = T.ABC.circumcenter z.I = T.ABC.incenter z.H = T.ABC.orthocenter z.G = T.ABC.centroid a = T.ABC.a b = T.ABC.b c = T.ABC.c alpha = T.ABC.alpha beta = T.ABC.beta gamma = T.ABC.gamma \end{tkzelements} \hspace*{\fill} \begin{tikzpicture} \tkzGetNodes \tkzDrawPolygon(A,B,C) \tkzDrawPoints(A,B,C,O,G,I,H) \tkzLabelPoints[below](A,B,O,G,I) \tkzLabelPoints[above right](H,C) \tkzDrawCircles(O,A) \tkzLabelSegment[sloped](A,B){\tkzUseLua{c}} \tkzLabelSegment[sloped,above](B,C){\tkzUseLua{a}} \end{tikzpicture} \hspace*{\fill} \end{minipage} % subsubsection example_triangle_attributes (end) % subsection attributes_of_a_triangle (end) \subsection{Methods of the class triangle} % (fold) \label{sub:methods_of_the_class_triangle} \bgroup \catcode`_=12 \small \begin{minipage}{\textwidth} \captionof{table}{triangle methods.}\label{triangle:met} \begin{tabular}{ll} \toprule \textbf{Methods} & \textbf{Comments} \\ \midrule \Imeth{triangle}{new} (a, b ,c) & |T.ABC = triangle : new (z.A,z.B,z.C)| \\ ... & |T| or |T.name| with what you want for name, is possible.\\ \midrule \textbf{Points} &\\ \midrule \Imeth{triangle}{lemoine\_point ()} & |T.ABC : lemoine_point ()| intersection os the symmedians\\ \Imeth{triangle}{symmedian\_point ()} & Lemoine point or the Grebe point \\ \Imeth{triangle}{bevan\_point ()} & Circumcenter of the excentral triangle\\ \Imeth{triangle}{mittenpunkt\_point ()} & Symmedian point of the excentral triangle\\ \Imeth{triangle}{gergonne\_point ()} & Intersection of the three cevians that lead to the contact points \\ \Imeth{triangle}{nagel\_point () } & Intersection of the three cevians that lead to the extouch points\\ \Imeth{triangle}{feuerbach\_point () } & The point at which the incircle and euler circle are tangent. \\ \Imeth{triangle}{spieker\_center ()} & Incenter of the medial triangle \\ \Imeth{triangle}{barycenter (ka,kb,kc)} & |T.ABC: barycenter (2,1,1)| barycenter of |({A,2},{B,1},{C,1}) |\\ \Imeth{triangle}{base (u,v) } & |z.D = T.ABC: base(1,1)| \tkzar ABDC is a parallelogram \\ \Imeth{triangle}{projection (p) } & Projection of a point on the sides \\ \Imeth{triangle}{euler\_points () } & Euler points of euler circle \\ \Imeth{triangle}{nine\_points () } & 9 Points of the euler circle \\ \Imeth{triangle}{parallelogram ()} & |z.D = T.ABC : parallelogram ()| \tkzar ABCD is a parallelogram\\ \midrule \textbf{Lines} &\\ \midrule \Imeth{triangle}{altitude (n) } & |L.AHa = T.ABC : altitude () | n empty or 0 line from $A$ \footnote{|z.Ha = L.AHa.pb| recovers the common point of the opposite side and altitude. The method |orthic| is usefull.}\\ \Imeth{triangle}{bisector (n) } & |L.Bb = T.ABC : bisector (1) | n = 1 line from $B$ \footnote{|_,z.b = get_points(L.Bb)| recovers the common point of the opposite side and bisector. }\\ \Imeth{triangle}{bisector\_ext(n) } & n=2 line from the third vertex.\\ \Imeth{triangle}{symmedian\_line (n)} & Cevian with respect to Lemoine point. \\ \Imeth{triangle}{euler\_line () } & the line through $N$ ,$G$, $H$ and $O$ if the triangle is not equilateral \footnote{N center of nine points circle, G centroid, H orthocenter , O circum center } \\ \Imeth{triangle}{antiparallel(pt,n)} & n=0 antiparallel through pt to $(BC)$, n=1 to $(AC)$ etc.\\ \midrule \textbf{Circles} &\\ \midrule \Imeth{triangle}{euler\_circle ()} & C.|NP = T.ABC : euler_circle ()| \tkzar $N$ euler point \footnote{ The midpoint of each side of the triangle, the foot of each altitude, the midpoint of the line segment from each vertex of the triangle to the orthocenter.} \\ \Imeth{triangle}{circum\_circle ()} & |C.OA = T.ABC : circum ()| Triangle's circumscribed circle \\ \Imeth{triangle}{in\_circle ()} & Inscribed circle of the triangle\\ \Imeth{triangle}{ex\_circle (n)} & Circle tangent to the three sides of the triangle ; n =1 swap ; n=2 2 swap \\ \Imeth{triangle}{first\_lemoine\_circle ()} & The center is the midpoint between Lemoine point and the circumcenter.\footnote{ Through the Lemoine point draw lines parallel to the triangle's sides. The points where the parallel lines intersect the sides of ABC then lie on a circle known as the first Lemoine circle. } \\ \Imeth{triangle}{second\_lemoine\_circle ()} & Refer to example \ref{sub:antiparallel_through_lemoine_point}\\ \Imeth{triangle}{spieker\_circle ()} & The incircle of the medial triangle\\ \Imeth{triangle}{cevian\_circle ()} & Circumscribed circle of a Cevian triangle Refer to (\ref{ssub:method_imeth_triangle_cevian})\\ \Imeth{triangle}{pedal\_circle ()} & Circumscribed circle of the podar triangle Refer to (\ref{ssub:method_imeth_triangle_pedal})\\ \Imeth{triangle}{conway\_circle ()} & Circumscribed circle of Conway points Refer to (\ref{ssub:method_imeth_triangle_conway})\\ \bottomrule \end{tabular} \end{minipage} \egroup Remark: If you don't need to use the triangle object several times, you can obtain a bisector or a altitude with the next functions |bisector (z.A,z.B,z.C)| and |altitude (z.A,z.B,z.C)| Refer to (\ref{misc}) \clearpage\newpage \bgroup \catcode`_=12 \small \begin{minipage}{\textwidth} \begin{center} %\caption{Methods of the class triangle (follow-up) } \begin{tabular}{ll} \toprule \textbf{Methods} & \textbf{Comments} \\ \midrule \textbf{Triangles} &\\ \midrule \Imeth{triangle}{orthic ()} & |T = T.ABC : orthic ()| triangle joining the feet of the altitudes \\ \Imeth{triangle}{medial ()} & |T = T.ABC : medial ()| triangle with vertices at the midpoints\\ \Imeth{triangle}{incentral ()} & Cevian triangle of the triangle with respect to its incenter \\ \Imeth{triangle}{excentral () } & Triangle with vertices corresponding to the excenters \\ \Imeth{triangle}{extouch ()} & Triangle formed by the points of tangency with the excircles \\ \Imeth{triangle}{intouch () } & Contact triangle formed by the points of tangency of the incircle \\ \Imeth{triangle}{tangential ()} & Triangle formed by the lines tangent to the circumcircle at the vertices\\ \Imeth{triangle}{feuerbach ()} & Triangle formed by the points of tangency of the euler circle with the excircles\\ \Imeth{triangle}{anti () }& Anticomplementary Triangle The given triangle is its medial triangle. \\ \Imeth{triangle}{cevian (pt)} & Triangle formed with the endpoints of the three cevians with respect to |pt|. refer to (\ref{ssub:method_imeth_triangle_cevian})\\ \Imeth{triangle}{pedal (pt)} & Triangle formed by projections onto the sides of |pt| Refer to \ref{ssub:method_imeth_triangle_pedal}\\ \Imeth{triangle}{symmedian ()} & Triangle formed with the intersection points of the symmedians. \\ \Imeth{triangle}{euler ()} & Triangle formed with the euler points \\ \midrule \textbf{Ellipses} &\\ \Imeth{triangle}{steiner\_inellipse ()} & Refer to ex. (\ref{ssub:steiner_inellipse_and_circumellipse})\\ \Imeth{triangle}{steiner\_circumellipse ()} & Refer to ex. (\ref{ssub:steiner_inellipse_and_circumellipse})\\ \Imeth{triangle}{euler\_ellipse ()} & Refer to ex. (\ref{sub:euler_ellipse})\\ \midrule \textbf{Miscellaneous} &\\ \midrule \Imeth{triangle}{area ()} & $ \mathcal{A}$| = T.ABC: area ()|\\ \Imeth{triangle}{barycentric\_coordinates (pt)} & Triples of numbers corresponding to masses placed at the vertices\\ \Imeth{triangle}{in\_out (pt)} & Boolean. Test if |pt| is inside the triangle\\ \Imeth{triangle}{check\_equilateral ()} & Boolean. Test if the triangle is equilateral\\ \bottomrule \end{tabular} \end{center} \end{minipage} \egroup % subsubsection methods_of_the_class_triangle (end) \subsubsection{Méthodes \Imeth{triangle}{cevian} et \Imeth{triangle}{cevian\_circle}} % (fold) \label{ssub:method_imeth_triangle_cevian} \begin{minipage}{.5\textwidth} \begin{Verbatim} \begin{tkzelements} scale = 2 z.a = point: new (1,2) z.b = point: new (5,1) z.c = point: new (3,5) T = triangle: new (z.a,z.b,z.c) z.i = T.orthocenter T.cevian = T : cevian (z.i) z.ta,z.tb,z.tc = get_points (T.cevian) C.cev = T : cevian_circle (z.i) z.w = C.cev.center \end{tkzelements} \begin{tikzpicture} \tkzGetNodes \tkzDrawPolygons(a,b,c ta,tb,tc) \tkzDrawSegments(a,ta b,tb c,tc) \tkzDrawPoints(a,b,c,i,ta,tb,tc) \tkzLabelPoints(a,b,c,i) \tkzDrawCircles(w,ta) \end{tikzpicture} \end{Verbatim} \end{minipage} \begin{minipage}{.5\textwidth} \begin{tkzelements} scale = 2 z.a = point: new (1,2) z.b = point: new (5,1) z.c = point: new (3,5) T = triangle: new (z.a,z.b,z.c) z.i = T.orthocenter T.cevian = T : cevian (z.i) z.ta,z.tb,z.tc = get_points (T.cevian) C.cev = T : cevian_circle (z.i) z.w = C.cev.center \end{tkzelements} \begin{tikzpicture} \tkzGetNodes \tkzDrawPolygons(a,b,c ta,tb,tc) \tkzDrawSegments(a,ta b,tb c,tc) \tkzDrawPoints(a,b,c,i,ta,tb,tc) \tkzLabelPoints(a,b,c,i) \tkzDrawCircles(w,ta) \end{tikzpicture} \end{minipage} % subsubsection method_imeth_triangle_cevian (end) \subsubsection{Méthodes \Imeth{triangle}{pedal} et \Imeth{triangle}{pedal\_circle}} % (fold) \label{ssub:method_imeth_triangle_pedal} \begin{minipage}{.5\textwidth} \begin{Verbatim} \begin{tkzelements} z.A = point: new(0,0) z.B = point: new(5,0) z.C = point: new(1.5,3) z.O = point: new (2,1) T.ABC = triangle: new (z.A,z.B,z.C) T.pedal = T.ABC : pedal (z.O) z.E,z.F,z.G = get_points(T.pedal) C.pedal = T.ABC : pedal_circle (z.O) z.w = C.pedal.center z.T = C.pedal.through \end{tkzelements} \begin{tikzpicture} \tkzGetNodes \tkzDrawPolygon(A,B,C) \tkzDrawPolygon[red](E,F,G) \tkzDrawCircle(w,T) \tkzDrawPoints(A,B,C,E,F,G,O) \tkzLabelPoints(A,B,C,E,F,G) \tkzDrawSegments(O,E O,F O,G) \end{tikzpicture} \end{Verbatim} \end{minipage} \begin{minipage}{.5\textwidth} \begin{tkzelements} z.A = point: new(0,0) z.B = point: new(5,0) z.C = point: new(1.5,3) z.O = point: new (2,1) T.ABC = triangle: new (z.A,z.B,z.C) T.pedal = T.ABC : pedal (z.O) z.E,z.F,z.G = get_points(T.pedal) C.pedal = T.ABC : pedal_circle (z.O) z.w = C.pedal.center z.T = C.pedal.through \end{tkzelements} \begin{tikzpicture} \tkzGetNodes \tkzDrawPolygon(A,B,C) \tkzDrawPolygon[red](E,F,G) \tkzDrawCircle(w,T) \tkzDrawPoints(A,B,C,E,F,G,O) \tkzLabelPoints(A,B,C,E,F,G) \tkzDrawSegments(O,E O,F O,G) \end{tikzpicture} \end{minipage} % subsubsection method_imeth_triangle_pedal (end) \subsubsection{Méthodes \Imeth{triangle}{conway\_points} et \Imeth{triangle}{conway\_circle}} % (fold) \label{ssub:method_imeth_triangle_conway} En géométrie plane, le théorème du cercle de Conway stipule que lorsque les côtés se rencontrant à chaque sommet d'un triangle sont prolongés par la longueur du côté opposé, les six points d'extrémité des trois segments de droite résultants se trouvent sur un cercle dont le centre est le centre d'incidence du triangle. \begin{minipage}{.5\textwidth} \begin{Verbatim} \begin{tkzelements} z.A = point:new (0,0) z.C = point:new (5,0) z.B = point:new (1,3) T.ABC = triangle : new (z.A,z.B,z.C) C.conway = T.ABC : conway_circle () z.w,z.t = get_points(C.conway) z.t1,z.t2,z.t3,z.t4, z.t5,z.t6= T.ABC : conway_points () \end{tkzelements} \hspace*{5cm} \begin{tikzpicture} \tkzGetNodes \tkzDrawPolygon(A,B,C) \tkzDrawCircles(w,t) \tkzDrawPoints(t1,t2,t3,t4,t5,t6) \tkzLabelPoints(t1,t2,t3,t4,t5,t6) \tkzDrawSegments[dashed](t1,A t2,A t3,B) \tkzDrawSegments[dashed](t4,B t5,C t6,C) \tkzMarkSegments(B,C t1,A t2,A) \tkzMarkSegments[mark=||](A,C t3,B t4,B) \tkzMarkSegments[mark=|||](A,B t5,C t6,C) \end{tikzpicture} \end{Verbatim} \end{minipage} \begin{minipage}{.5\textwidth} \begin{tkzelements} scale = .5 z.A = point:new (0,0) z.C = point:new (5,0) z.B = point:new (1,3) T.ABC = triangle : new (z.A,z.B,z.C) C.conway = T.ABC : conway_circle () z.w,z.t = get_points(C.conway) z.t1,z.t2,z.t3, z.t4,z.t5,z.t6= T.ABC : conway_points () \end{tkzelements} \begin{tikzpicture} \tkzGetNodes \tkzDrawPolygon(A,B,C) \tkzDrawCircles(w,t) \tkzDrawPoints(t1,t2,t3,t4,t5,t6) \tkzLabelPoints(t1,t2,t3,t4,t5,t6) \tkzDrawSegments[dashed](t1,A t2,A t3,B t4,B t5,C t6,C) \tkzMarkSegments(B,C t1,A t2,A) \tkzMarkSegments[mark=||](A,C t3,B t4,B) \tkzMarkSegments[mark=|||](A,B t5,C t6,C) \end{tikzpicture} \end{minipage} % subsubsection methode_imeth_triangle_conway (end) \subsubsection{Euler line} % (fold) \label{ssub:euler_line} \begin{minipage}{.5\textwidth} \begin{Verbatim} \begin{tkzelements} z.A = point: new (0 , 0) z.B = point: new (6 , 0) z.C = point: new (1.5 , 3.5) T.ABC = triangle: new (z.A,z.B,z.C) z.O = T.ABC.circumcenter z.G = T.ABC.centroid z.N = T.ABC.eulercenter z.H = T.ABC.orthocenter z.P,z.Q,z.R = get_points (T.ABC: orthic()) z.K,z.I,z.J = get_points (T.ABC: medial ()) \end{tkzelements} \begin{tikzpicture} \tkzGetNodes \tkzDrawLines[blue](O,H) \tkzDrawCircle[red](N,I) \tkzDrawCircles[teal](O,A) \tkzDrawSegments(A,P B,Q C,R) \tkzDrawSegments[red](A,I B,J C,K) \tkzDrawPolygons(A,B,C) \tkzDrawPoints(A,B,C,N,I,J,K,O,P,Q,R,H,G) \tkzLabelPoints(A,B,C,I,J,K,P,Q,R,H) \tkzLabelPoints[below](N,O,G) \end{tikzpicture} \end{Verbatim} \end{minipage} \begin{minipage}{.5\textwidth} \begin{tkzelements} z.A = point: new (0 , 0) z.B = point: new (6 , 0) z.C = point: new (1.5 , 3.5) T.ABC = triangle: new (z.A,z.B,z.C) z.O = T.ABC.circumcenter z.G = T.ABC.centroid z.N = T.ABC. eulercenter z.H = T.ABC. orthocenter z.P,z.Q,z.R = get_points (T.ABC: orthic()) z.K,z.I,z.J = get_points (T.ABC: medial ()) \end{tkzelements} \hspace*{\fill} \begin{tikzpicture} \tkzGetNodes \tkzDrawLines[blue](O,H) \tkzDrawCircle[red](N,I) \tkzDrawCircles[teal](O,A) \tkzDrawSegments(A,P B,Q C,R) \tkzDrawSegments[red](A,I B,J C,K) \tkzDrawPolygons(A,B,C) \tkzDrawPoints(A,B,C,N,I,J,K,O,P,Q,R,H,G) \tkzLabelPoints(A,B,C,I,J,K,P,Q,R) \tkzLabelPoints[below](N,O,G,H) \end{tikzpicture} \end{minipage} % subsubsection euler_line (end) \subsection{Euler ellipse} % (fold) \label{sub:euler_ellipse} Example of obtaining the Euler circle as well as the Euler ellipse. \begin{tkzelements} z.A = point: new (2,3.8) z.B = point: new (0 ,0) z.C = point: new (6.2 ,0) L.AB = line : new ( z.A , z.B ) T.ABC = triangle: new (z.A,z.B,z.C) z.K = midpoint (z.B,z.C) E.euler = T.ABC : euler_ellipse () z.N = T.ABC.eulercenter C.euler = circle : new (z.N,z.K) ang = math.deg(E.euler.slope) z.O = T.ABC.circumcenter z.G = T.ABC.centroid z.H = T.ABC.orthocenter \end{tkzelements} \begin{minipage}{.5\textwidth} \begin{Verbatim} \begin{tkzelements} z.A = point: new (2,3.8) z.B = point: new (0 ,0) z.C = point: new (6.2 ,0) L.AB = line : new ( z.A , z.B ) T.ABC = triangle: new (z.A,z.B,z.C) z.K = midpoint (z.B,z.C) E.euler = T.ABC : euler_ellipse () z.N = T.ABC.eulercenter C.euler = circle : new (z.N,z.K) ang = math.deg(E.euler.slope) z.O = T.ABC.circumcenter z.G = T.ABC.centroid z.H = T.ABC.orthocenter \end{tkzelements} \end{Verbatim} \end{minipage} \begin{minipage}{.5\textwidth} \begin{tikzpicture} \tkzGetNodes \tkzDrawPolygon(A,B,C) \tkzDrawCircle(N,K) \tkzDrawEllipse[teal](N,\tkzUseLua{E.euler.Rx}, \tkzUseLua{E.euler.Ry},\tkzUseLua{ang}) \tkzDrawLine(O,H) \tkzDrawPoints(A,B,C,N,O,H,G) \tkzLabelPoints[below left](B,C,N,O,H,G) \tkzLabelPoints[above](A) \end{tikzpicture} \end{minipage} \begin{Verbatim} \begin{tikzpicture} \tkzGetNodes \tkzDrawPolygon(A,B,C) \tkzDrawCircle(N,K) \tkzDrawEllipse[teal](N,\tkzUseLua{E.euler.Rx}, \tkzUseLua{E.euler.Ry},\tkzUseLua{ang}) \tkzDrawLine(O,H) \tkzDrawPoints(A,B,C,N,O,H,G) \tkzLabelPoints[below left](B,C,N,O,H,G) \tkzLabelPoints[above](A) \end{tikzpicture} \end{Verbatim} % subsection euler_ellipse (end) \subsubsection{Steiner inellipse and circumellipse} % (fold) \label{ssub:steiner_inellipse_and_circumellipse} In this example, the inner and outer Steiner ellipses, referred to as the "inellipse" and "circumellipse" (Mathworld.com), respectively, along with the orthoptic circle, are depicted.. The triangle must be acutangle. \begin{minipage}{.5\textwidth} \begin{Verbatim} \begin{tkzelements} scale = .5 z.A = point: new (1 , 4) z.B = point: new (11 , 1) z.C = point: new (5 , 12) T.ABC = triangle: new(z.A,z.B,z.C) E = T.ABC: steiner_inellipse () z.G = E.center ang = math.deg(E.slope) z.F = E.Fa z.E = E.Fb C = E: orthoptic_circle () z.w = C.center z.o = C.through EE = T.ABC : steiner_circumellipse () z.M = C : point (0) L.T1,L.T2= E : tangent_from (z.M) z.T1 = L.T1.pb z.T2 = L.T2.pb \end{tkzelements} \end{Verbatim} \end{minipage} \begin{minipage}{.5\textwidth}\begin{tkzelements} scale = .5 z.A = point: new (1 , 4) z.B = point: new (11 , 1) z.C = point: new (5 , 12) T.ABC = triangle: new(z.A,z.B,z.C) E = T.ABC: steiner_inellipse () z.G = E.center ang = math.deg(E.slope) z.F = E.Fa z.E = E.Fb C = E: orthoptic_circle () z.w = C.center z.o = C.through EE = T.ABC : steiner_circumellipse () z.M = C : point (0) L.T1,L.T2= E : tangent_from (z.M) z.T1 = L.T1.pb z.T2 = L.T2.pb \end{tkzelements} \begin{tikzpicture} \tkzGetNodes \tkzDrawPolygon(A,B,C) \tkzDrawCircles(w,o) \tkzDrawEllipse[teal](G,\tkzUseLua{E.Rx}, \tkzUseLua{E.Ry},\tkzUseLua{ang}) \tkzDrawEllipse[red](G,\tkzUseLua{EE.Rx}, \tkzUseLua{EE.Ry},\tkzUseLua{ang}) \tkzDrawLines(F,E M,T1 M,T2) % \tkzDrawPoints(A,B,C,F,E,G,M,T1,T2) \tkzLabelPoints[above](C,M,T1) \tkzLabelPoints[right](T2,B) \tkzLabelPoints[below left](A,F,E,G) \end{tikzpicture} \end{minipage} \begin{Verbatim} \begin{tikzpicture} \tkzGetNodes \tkzDrawPolygon(A,B,C) \tkzDrawCircles(w,o) \tkzDrawEllipse[teal](G,\tkzUseLua{E.Rx}, \tkzUseLua{E.Ry},\tkzUseLua{ang}) \tkzDrawEllipse[red](G,\tkzUseLua{EE.Rx}, \tkzUseLua{EE.Ry},\tkzUseLua{ang}) \tkzDrawLines(F,E M,T1 M,T2) % \tkzDrawPoints(A,B,C,F,E,G,M,T1,T2) \tkzLabelPoints[above](C,M,T1) \tkzLabelPoints[right](T2,B) \tkzLabelPoints[below left](A,F,E,G) \end{tikzpicture} \end{Verbatim} % subsubsection steiner_inellipse_and_circumellipse (end) \subsection{Harmonic division and bisector} % (fold) \label{sub:harmonic_division_and_bisector} \begin{minipage}{.4\textwidth} \begin{Verbatim} \begin{tkzelements} scale = .4 z.A = point: new (0 , 0) z.B = point: new (6 , 0) z.M = point: new (5 , 4) T.AMB = triangle : new (z.A,z.M,z.B) L.AB = T.AMB.ca L.bis = T.AMB : bisector (1) z.C = L.bis.pb L.bisext = T.AMB : bisector_ext (1) z.D = intersection (L.bisext,L.AB) L.CD = line: new (z.C,z.D) z.O = L.CD.mid L.AM = line: new (z.A,z.M) L.LL = L.AM : ll_from (z.B) L.MC = line: new (z.M,z.C) L.MD = line: new (z.M,z.D) z.E = intersection (L.LL,L.MC) z.F = intersection (L.LL,L.MD) \end{tkzelements} \end{Verbatim} \end{minipage} \begin{minipage}{.6\textwidth} \begin{tkzelements} scale =.4 z.A = point: new (0 , 0) z.B = point: new (6 , 0) z.M = point: new (5 , 4) T.AMB = triangle : new (z.A,z.M,z.B) L.AB = T.AMB.ca L.bis = T.AMB : bisector (1) z.C = L.bis.pb L.bisext = T.AMB : bisector_ext (1) z.D = intersection (L.bisext,L.AB) L.CD = line: new (z.C,z.D) z.O = L.CD.mid L.AM = line: new (z.A,z.M) L.LL = L.AM : ll_from (z.B) L.MC = line: new (z.M,z.C) L.MD = line: new (z.M,z.D) z.E = intersection (L.LL,L.MC) z.F = intersection (L.LL,L.MD) \end{tkzelements} \hspace{\fill} \begin{tikzpicture} \tkzGetNodes \tkzDrawPolygon(A,B,M) \tkzDrawCircle[purple](O,C) \tkzDrawSegments[purple](M,E M,D E,F) \tkzDrawSegments(D,B) \tkzDrawPoints(A,B,M,C,D,E,F) \tkzLabelPoints[below right](A,B,C,D,E) \tkzLabelPoints[above](M,F) \tkzMarkRightAngle[opacity=.4,fill=gray!20](C,M,D) \tkzMarkAngles[mark=||,size=.5](A,M,E E,M,B B,E,M) \tkzMarkAngles[mark=|,size=.5](B,M,F M,F,B) \tkzMarkSegments(B,E B,M B,F) \end{tikzpicture} \end{minipage} \begin{Verbatim} \begin{tikzpicture} \tkzGetNodes \tkzDrawPolygon(A,B,M) \tkzDrawCircle[purple](O,C) \tkzDrawSegments[purple](M,E M,D E,F) \tkzDrawSegments(D,B) \tkzDrawPoints(A,B,M,C,D,E,F) \tkzLabelPoints[below right](A,B,C,D,E) \tkzLabelPoints[above](M,F) \tkzMarkRightAngle[opacity=.4,fill=gray!20](C,M,D) \tkzMarkAngles[mark=||,size=.5](A,M,E E,M,B B,E,M) \tkzMarkAngles[mark=|,size=.5](B,M,F M,F,B) \tkzMarkSegments(B,E B,M B,F) \end{tikzpicture} \end{Verbatim} % subsection harmonic_division_and_bisector (end) \subsubsection{Method \Imeth{triangle}{cevan}} % (fold) \label{ssub:method_imeth_triangle_cevan} \begin{minipage}{.5\textwidth} \begin{Verbatim} \begin{tkzelements} scale = 2 z.a = point: new (1,2) z.b = point: new (5,1) z.c = point: new (3,5) T = triangle: new (z.a,z.b,z.c) z.i = T.orthocenter T.cevian = T : cevian (z.i) z.ta,z.tb,z.tc = get_points (T.cevian) C.cev = T : cevian_circle (z.i) z.w = C.cev.center \end{tkzelements} \begin{tikzpicture} \tkzGetNodes \tkzDrawPolygons(a,b,c ta,tb,tc) \tkzDrawSegments(a,ta b,tb c,tc) \tkzDrawPoints(a,b,c,i,ta,tb,tc) \tkzLabelPoints(a,b,c,i) \tkzDrawCircles(w,ta) \end{tikzpicture} \end{Verbatim} \end{minipage} \begin{minipage}{.5\textwidth} \begin{tkzelements} scale = 2 z.a = point: new (1,2) z.b = point: new (5,1) z.c = point: new (3,5) T = triangle: new (z.a,z.b,z.c) z.i = T.orthocenter T.cevian = T : cevian (z.i) z.ta,z.tb,z.tc = get_points (T.cevian) C.cev = T : cevian_circle (z.i) z.w = C.cev.center \end{tkzelements} \begin{tikzpicture} \tkzGetNodes \tkzDrawPolygons(a,b,c ta,tb,tc) \tkzDrawSegments(a,ta b,tb c,tc) \tkzDrawPoints(a,b,c,i,ta,tb,tc) \tkzLabelPoints(a,b,c,i) \tkzDrawCircles(w,ta) \end{tikzpicture} \end{minipage} % subsubsection method_imeth_triangle_cevan (end) % subsection methods_of_the_class_triangle (end) % section class_triangle (end) \endinput