\newpage \section{Class \Iclass{Quadrilateral}} % (fold) \subsection{Quadrilateral Attributes} % (fold) \label{sub:quadrilateral_attributes} Points are created in the direct direction. A test is performed to check whether the points form a rectangle, otherwise compilation is blocked. \begin{mybox} Creation | Q.new = rectangle : new (z.A,z.B,z.C,z.D)| \end{mybox} \bgroup \catcode`_=12 \small \captionof{table}{rectangle attributes.}\label{quadrilateral:att} \begin{tabular}{lll} \toprule \textbf{Attributes} & \textbf{Application} & \\ \Iattr{quadrilateral}{pa} & |z.A = Q.new.pa| & \\ \Iattr{quadrilateral}{pb} & |z.B = Q.new.pb| & \\ \Iattr{quadrilateral}{pc} & |z.C = Q.new.pc| & \\ \Iattr{quadrilateral}{pd} & |z.D = Q.new.pd| & \\ \Iattr{quadrilateral}{type} & |Q.new.type= 'quadrilateral'| &\\ \Iattr{quadrilateral}{i} & |z.I = Q.new.i| & intersection of diagonals\\ \Iattr{quadrilateral}{g} & |z.G = Q.new.g| & barycenter\\ \Iattr{quadrilateral}{a} & |AB = Q.new.a| & barycenter\\ \Iattr{quadrilateral}{b} & |BC = Q.new.b| & barycenter\\ \Iattr{quadrilateral}{c} & |CD = Q.new.c| & barycenter\\ \Iattr{quadrilateral}{d} & |DA = Q.new.d| & barycenter\\ \Iattr{quadrilateral}{ab} & |Q.new.ab| & line passing through two vertices \\ \Iattr{quadrilateral}{ac} & |Q.new.ca| & idem. \\ \Iattr{quadrilateral}{ad} & |Q.new.ad| & idem. \\ \Iattr{quadrilateral}{bc} & |Q.new.bc| & idem. \\ \Iattr{quadrilateral}{bd} & |Q.new.bd| & idem. \\ \Iattr{quadrilateral}{cd} & |Q.new.cd| & idem. \\ \bottomrule \end{tabular} \egroup \subsubsection{Quadrilateral attributes} % (fold) \label{ssub:quadrilateral_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 ( 5 , 1 ) z.D = point : new ( -1 , 4 ) Q.ABCD = quadrilateral : new ( z.A , z.B , z.C , z.D ) z.I = Q.ABCD.i z.G = Q.ABCD.g \end{tkzelements} \begin{tikzpicture} \tkzGetNodes \tkzDrawPolygon(A,B,C,D) \tkzDrawSegments(A,C B,D) \tkzDrawPoints(A,B,C,D,I,G) \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 ( 5 , 1 ) z.D = point : new ( -1 , 4 ) Q.ABCD = quadrilateral : new ( z.A , z.B , z.C , z.D ) z.I = Q.ABCD.i z.G = Q.ABCD.g \end{tkzelements} \hspace{\fill}\begin{tikzpicture} \tkzGetNodes \tkzDrawPolygon(A,B,C,D) \tkzDrawSegments(A,C B,D) \tkzDrawPoints(A,B,C,D,I,G) \end{tikzpicture} \end{minipage} % subsubsection quadrilateral_attributes (end) % subsection quadrilateral_attributes (end) \subsection{Quadrilateral methods} % (fold) \label{sub:quadrilateral_methods} \bgroup \catcode`_=12 \small \captionof{table}{Quadrilateral methods.}\label{quadrilateral:met} \begin{tabular}{ll} \toprule \textbf{Methods} & \textbf{Comments} \\ \midrule \\ \Imeth{quadrilateral}{iscyclic ()} & inscribed ? (Refer to next example)\\ \bottomrule % \end{tabular} \egroup \subsubsection{Inscribed quadrilateral} % (fold) \label{ssub:inscribed_quadrilateral} \begin{minipage}{.5\textwidth} \begin{Verbatim} \begin{tkzelements} z.A = point : new ( 0 , 0 ) z.B = point : new ( 4 , 0 ) z.D = point : polar ( 4 , 2*math.pi/3 ) L.DB = line : new (z.D,z.B) T.equ = L.DB : equilateral () z.C = T.equ.pc Q.new = quadrilateral : new (z.A,z.B,z.C,z.D) bool = Q.new : iscyclic () if bool == true then C.cir = triangle : new (z.A,z.B,z.C): circum_circle () z.O = C.cir.center end \end{tkzelements} \begin{tikzpicture} \tkzGetNodes \tkzDrawPolygon(A,B,C,D) \tkzDrawPoints(A,B,C,D) \tkzLabelPoints(A,B,C,D) \tkzDrawCircle(O,A) \ifthenelse{\equal{\tkzUseLua{bool}}{true}}{ \tkzDrawCircle(O,A)}{} \end{tikzpicture} \end{Verbatim} \end{minipage} \begin{minipage}{.5\textwidth} \begin{tkzelements} scale = .75 z.A = point : new ( 0 , 0 ) z.B = point : new ( 4 , 0 ) z.D = point : polar ( 4 , 2*math.pi/3 ) L.DB = line : new (z.D,z.B) T.equ = L.DB : equilateral () z.C = T.equ.pc Q.new = quadrilateral : new (z.A,z.B,z.C,z.D) bool = Q.new : iscyclic () if bool == true then C.cir = triangle : new (z.A,z.B,z.C): circum_circle () z.O = C.cir.center end \end{tkzelements} \hspace{\fill} \begin{tikzpicture} \tkzGetNodes \tkzDrawPolygon(A,B,C,D) \tkzDrawPoints(A,B,C,D) \tkzLabelPoints(A,B,C,D) \tkzDrawCircle(O,A) \ifthenelse{\equal{\tkzUseLua{bool}}{true}}{ \tkzDrawCircle(O,A)}{} \end{tikzpicture} \end{minipage} % subsubsection inscribed_quadrilateral (end) % subsection quadrilateral_methods (end)