\section{Definition of polygons} \subsection{Defining the points of a square} \label{def_square} We have seen the definitions of some triangles. Let us look at the definitions of some quadrilaterals and regular polygons. \begin{NewMacroBox}{tkzDefSquare}{\parg{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 \tkzname{tkzFirstPointResult} and \tkzname{tkzSecondPointResult}.\\ We can rename them with \tkzcname{tkzGetPoints}. \medskip \begin{tabular}{lll}% \toprule Arguments & example & explication \\ \midrule \TAline{\parg{pt1,pt2}}{\tkzcname{tkzDefSquare}\parg{A,B}}{The square is defined in the direct direction.} \end{tabular} \end{NewMacroBox} \subsubsection{Using \tkzcname{tkzDefSquare} with two points} Note the inversion of the first two points and the result. \begin{tkzexample}[latex=4cm,small] \begin{tikzpicture}[scale=.5] \tkzDefPoint(0,0){A} \tkzDefPoint(3,0){B} \tkzDefSquare(A,B) \tkzDrawPolygon[color=red](A,B,tkzFirstPointResult,% tkzSecondPointResult) \tkzDefSquare(B,A) \tkzDrawPolygon[color=blue](B,A,tkzFirstPointResult,% tkzSecondPointResult) \end{tikzpicture} \end{tkzexample} We may only need one point to draw an isosceles right-angled triangle so we use \tkzcname{tkzGetFirstPoint} or \tkzcname{tkzGetSecondPoint}. \subsubsection{Use of \tkzcname{tkzDefSquare} to obtain an isosceles right-angled triangle} \begin{tkzexample}[latex=7cm,small] \begin{tikzpicture}[scale=1] \tkzDefPoint(0,0){A} \tkzDefPoint(3,0){B} \tkzDefSquare(A,B) \tkzGetFirstPoint{C} \tkzDrawPolygon[color=blue,fill=blue!30](A,B,C) \end{tikzpicture} \end{tkzexample} \subsubsection{Pythagorean Theorem and \tkzcname{tkzDefSquare} } \begin{tkzexample}[latex=8cm,small] \begin{tikzpicture}[scale=.5] \tkzInit \tkzDefPoint(0,0){C} \tkzDefPoint(4,0){A} \tkzDefPoint(0,3){B} \tkzDefSquare(B,A)\tkzGetPoints{E}{F} \tkzDefSquare(A,C)\tkzGetPoints{G}{H} \tkzDefSquare(C,B)\tkzGetPoints{I}{J} \tkzFillPolygon[fill = red!50 ](A,C,G,H) \tkzFillPolygon[fill = blue!50 ](C,B,I,J) \tkzFillPolygon[fill = purple!50](B,A,E,F) \tkzFillPolygon[fill = orange,opacity=.5](A,B,C) \tkzDrawPolygon[line width = 1pt](A,B,C) \tkzDrawPolygon[line width = 1pt](A,C,G,H) \tkzDrawPolygon[line width = 1pt](C,B,I,J) \tkzDrawPolygon[line width = 1pt](B,A,E,F) \tkzLabelSegment[](A,C){$a$} \tkzLabelSegment[](C,B){$b$} \tkzLabelSegment[swap](A,B){$c$} \end{tikzpicture} \end{tkzexample} \subsection{Definition of parallelogram} \subsection{Defining the points of a parallelogram} It is a matter of completing three points in order to obtain a parallelogram. \begin{NewMacroBox}{tkzDefParallelogram}{\parg{pt1,pt2,pt3}}% From three points, another point is obtained such that the four taken in order form a parallelogram. The result is in \tkzname{tkzPointResult}. \\ We can rename it with the name \tkzcname{tkzGetPoint}... \begin{tabular}{lll}% \toprule arguments & default & definition \\ \midrule \TAline{\parg{pt1,pt2,pt3}}{no default}{Three points are necessary} \bottomrule \end{tabular} \end{NewMacroBox} \subsubsection{Example of a parallelogram definition} \begin{tkzexample}[latex=7 cm,small] \begin{tikzpicture}[scale=1] \tkzDefPoints{0/0/A,3/0/B,4/2/C} \tkzDefParallelogram(A,B,C) \tkzGetPoint{D} \tkzDrawPolygon(A,B,C,D) \tkzLabelPoints(A,B) \tkzLabelPoints[above right](C,D) \tkzDrawPoints(A,...,D) \end{tikzpicture} \end{tkzexample} \subsubsection{Simple example} Explanation of the definition of a parallelogram \begin{tkzexample}[latex=7 cm,small] \begin{tikzpicture}[scale=1] \tkzDefPoints{0/0/A,3/0/B,4/2/C} \tkzDefPointWith[colinear= at C](B,A) \tkzGetPoint{D} \tkzDrawPolygon(A,B,C,D) \tkzLabelPoints(A,B) \tkzLabelPoints[above right](C,D) \tkzDrawPoints(A,...,D) \end{tikzpicture} \end{tkzexample} \subsubsection{Construction of the golden rectangle } \begin{tkzexample}[latex=8cm,small] \begin{tikzpicture}[scale=.5] \tkzInit[xmax=14,ymax=10] \tkzClip[space=1] \tkzDefPoint(0,0){A} \tkzDefPoint(8,0){B} \tkzDefMidPoint(A,B)\tkzGetPoint{I} \tkzDefSquare(A,B)\tkzGetPoints{C}{D} \tkzDrawSquare(A,B) \tkzInterLC(A,B)(I,C)\tkzGetPoints{G}{E} \tkzDrawArc[style=dashed,color=gray](I,E)(D) \tkzDefPointWith[colinear= at C](E,B) \tkzGetPoint{F} \tkzDrawPoints(C,D,E,F) \tkzLabelPoints(A,B,C,D,E,F) \tkzDrawSegments[style=dashed,color=gray]% (E,F C,F B,E) \end{tikzpicture} \end{tkzexample} \subsection{Drawing a square} \begin{NewMacroBox}{tkzDrawSquare}{\oarg{local options}\parg{pt1,pt2}}% The macro draws a square but not the vertices. It is possible to color the inside. The order of the points is that of the direct direction of the trigonometric circle. \medskip \begin{tabular}{lll}% \toprule arguments & example & explication \\ \midrule \TAline{\parg{pt1,pt2}}{|\tkzcname{tkzDrawSquare}|\parg{A,B}}{|\tkzcname{tkzGetPoints\{C\}\{D\}}|} \bottomrule \end{tabular} \medskip \begin{tabular}{lll}% options & example & explication \\ \midrule \TOline{Options TikZ}{|red,line width=1pt|}{} \end{tabular} \end{NewMacroBox} \subsubsection{The idea is to inscribe two squares in a semi-circle.} \begin{tkzexample}[latex=6 cm,small] \begin{tikzpicture}[scale=.75] \tkzInit[ymax=8,xmax=8] \tkzClip[space=.25] \tkzDefPoint(0,0){A} \tkzDefPoint(8,0){B} \tkzDefPoint(4,0){I} \tkzDefSquare(A,B) \tkzGetPoints{C}{D} \tkzInterLC(I,C)(I,B) \tkzGetPoints{E'}{E} \tkzInterLC(I,D)(I,B) \tkzGetPoints{F'}{F} \tkzDefPointsBy[projection=onto A--B](E,F){H,G} \tkzDefPointsBy[symmetry = center H](I){J} \tkzDefSquare(H,J) \tkzGetPoints{K}{L} \tkzDrawSector[fill=yellow](I,B)(A) \tkzFillPolygon[color=red!40](H,E,F,G) \tkzFillPolygon[color=blue!40](H,J,K,L) \tkzDrawPolySeg[color=red](H,E,F,G) \tkzDrawPolySeg[color=red](J,K,L) \tkzDrawPoints(E,G,H,F,J,K,L) \end{tikzpicture} \end{tkzexample} \subsection{The golden rectangle} \begin{NewMacroBox}{tkzDefGoldRectangle}{\parg{point,point}}% The macro determines a rectangle whose size ratio is the number $\Phi$. The created points are in \tkzname{tkzFirstPointResult} and \tkzname{tkzSecondPointResult}. They can be obtained with the macro \tkzcname{tkzGetPoints}. The following macro is used to draw the rectangle. \begin{tabular}{lll}% \toprule arguments & example & explication \\ \midrule \TAline{\parg{pt1,pt2}}{\parg{A,B}}{If C and D are created then $AB/BC=\Phi$.} \end{tabular} \end{NewMacroBox} \begin{NewMacroBox}{tkzDrawGoldRectangle}{\oarg{local options}\parg{point,point}} \begin{tabular}{lll}% arguments & example & explication \\ \midrule \TAline{\parg{pt1,pt2}}{\parg{A,B}}{Draws the golden rectangle based on the segment $[AB]$} \end{tabular} \medskip \begin{tabular}{lll}% options & example & explication \\ \midrule \TOline{Options TikZ}{|red,line width=1pt|}{} \end{tabular} \end{NewMacroBox} \subsubsection{Golden Rectangles} \begin{tkzexample}[latex=6 cm,small] \begin{tikzpicture}[scale=.6] \tkzDefPoint(0,0){A} \tkzDefPoint(8,0){B} \tkzDefGoldRectangle(A,B) \tkzGetPoints{C}{D} \tkzDefGoldRectangle(B,C) \tkzGetPoints{E}{F} \tkzDrawPolygon[color=red,fill=red!20](A,B,C,D) \tkzDrawPolygon[color=blue,fill=blue!20](B,C,E,F) \end{tikzpicture} \end{tkzexample} \subsection{Drawing a polygon} \begin{NewMacroBox}{tkzDrawPolygon}{\oarg{local options}\parg{points list}}% Just give a list of points and the macro plots the polygon using the \TIKZ\ options present. You can replace $(A,B,C,D,E)$ by $(A,...,E)$ and $(P_1,P_2,P_3,P_4,P_5)$ by $(P_1,P...,P_5)$ \begin{tabular}{lll}% \toprule arguments & example & explication \\ \midrule \TAline{\parg{pt1,pt2,pt3,...}}{|\BS tkzDrawPolygon[gray,dashed](A,B,C)|}{Drawing a triangle} \end{tabular} \medskip \begin{tabular}{lll}% \toprule options & default & example \\ \midrule \TOline{Options TikZ}{...}{|\BS tkzDrawPolygon[red,line width=2pt](A,B,C)|} \end{tabular} \end{NewMacroBox} \subsubsection{\tkzcname{tkzDrawPolygon}} \begin{tkzexample}[latex=7cm, small] \begin{tikzpicture} [rotate=18,scale=1.5] \tkzDefPoint(0,0){A} \tkzDefPoint(2.25,0.2){B} \tkzDefPoint(2.5,2.75){C} \tkzDefPoint(-0.75,2){D} \tkzDrawPolygon[fill=black!50!blue!20!](A,B,C,D) \tkzDrawSegments[style=dashed](A,C B,D) \end{tikzpicture}\end{tkzexample} \subsection{Drawing a polygonal chain} \begin{NewMacroBox}{tkzDrawPolySeg}{\oarg{local options}\parg{points list}}% Just give a list of points and the macro plots the polygonal chain using the \TIKZ\ options present. \begin{tabular}{lll}% \toprule arguments & example & explication \\ \midrule \TAline{\parg{pt1,pt2,pt3,...}}{|\BS tkzDrawPolySeg[gray,dashed](A,B,C)|}{Drawing a triangle} \end{tabular} \medskip \begin{tabular}{lll}% \toprule options & default & example \\ \midrule \TOline{Options TikZ}{...}{|\BS tkzDrawPolySeg[red,line width=2pt](A,B,C)|} \end{tabular} \end{NewMacroBox} \subsubsection{Polygonal chain} \begin{tkzexample}[latex=7cm, small] \begin{tikzpicture} \tkzDefPoints{0/0/A,6/0/B,3/4/C,2/2/D} \tkzDrawPolySeg(A,...,D) \tkzDrawPoints(A,...,D) \end{tikzpicture} \end{tkzexample} \subsubsection{Polygonal chain: index notation} \begin{tkzexample}[latex=7cm, small] \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} \end{tkzexample} \subsection{Clip a polygon} \begin{NewMacroBox}{tkzClipPolygon}{\oarg{local options}\parg{points list}}% This macro makes it possible to contain the different plots in the designated polygon. \medskip \begin{tabular}{lll}% \toprule arguments & example & explication \\ \midrule \TAline{\parg{pt1,pt2}}{\parg{A,B}}{} %\bottomrule \end{tabular} \end{NewMacroBox} \subsubsection{\tkzcname{tkzClipPolygon}} \begin{tkzexample}[latex=7 cm,small] \begin{tikzpicture}[scale=1.25] \tkzInit[xmin=0,xmax=4,ymin=0,ymax=3] \tkzClip[space=.5] \tkzDefPoint(0,0){A} \tkzDefPoint(4,0){B} \tkzDefPoint(1,3){C} \tkzDrawPolygon(A,B,C) \tkzDefPoint(0,2){D} \tkzDefPoint(2,0){E} \tkzDrawPoints(D,E) \tkzLabelPoints(D,E) \tkzClipPolygon(A,B,C) \tkzDrawLine[color=red](D,E) \end{tikzpicture} \end{tkzexample} \subsubsection{Example: use of "Clip" for Sangaku in a square} \begin{tkzexample}[latex=7cm, small] \begin{tikzpicture}[scale=.75] \tkzDefPoint(0,0){A} \tkzDefPoint(8,0){B} \tkzDefSquare(A,B) \tkzGetPoints{C}{D} \tkzDrawPolygon(B,C,D,A) \tkzClipPolygon(B,C,D,A) \tkzDefPoint(4,8){F} \tkzDefTriangle[equilateral](C,D) \tkzGetPoint{I} \tkzDrawPoint(I) \tkzDefPointBy[projection=onto B--C](I) \tkzGetPoint{J} \tkzInterLL(D,B)(I,J) \tkzGetPoint{K} \tkzDefPointBy[symmetry=center K](B) \tkzGetPoint{M} \tkzDrawCircle(M,I) \tkzCalcLength(M,I) \tkzGetLength{dMI} \tkzFillPolygon[color = orange](A,B,C,D) \tkzFillCircle[R,color = yellow](M,\dMI pt) \tkzFillCircle[R,color = blue!50!black](F,4 cm)% \end{tikzpicture} \end{tkzexample} \subsection{Color a polygon} \begin{NewMacroBox}{tkzFillPolygon}{\oarg{local options}\parg{points list}}% You can color by drawing the polygon, but in this case you color the inside of the polygon without drawing it. \medskip \begin{tabular}{lll}% \toprule arguments & example & explication \\ \midrule \TAline{\parg{pt1,pt2,\dots}}{\parg{A,B,\dots}}{} %\bottomrule \end{tabular} \end{NewMacroBox} \subsubsection{\tkzcname{tkzFillPolygon}} \begin{tkzexample}[latex=7cm, small] \begin{tikzpicture}[scale=0.7] \tkzInit[xmin=-3,xmax=6,ymin=-1,ymax=6] \tkzDrawX[noticks] \tkzDrawY[noticks] \tkzDefPoint(0,0){O} \tkzDefPoint(4,2){A} \tkzDefPoint(-2,6){B} \tkzPointShowCoord[xlabel=$x$,ylabel=$y$](A) \tkzPointShowCoord[xlabel=$x'$,ylabel=$y'$,% ystyle={right=2pt}](B) \tkzDrawSegments[->](O,A O,B) \tkzLabelSegment[above=3pt](O,A){$\vec{u}$} \tkzLabelSegment[above=3pt](O,B){$\vec{v}$} \tkzMarkAngle[fill= yellow,size=1.8cm,% opacity=.5](A,O,B) \tkzFillPolygon[red!30,opacity=0.25](A,B,O) \tkzLabelAngle[pos = 1.5](A,O,B){$\alpha$} \end{tikzpicture} \end{tkzexample} \subsection{Regular polygon} \begin{NewMacroBox}{tkzDefRegPolygon}{\oarg{local options}\parg{pt1,pt2}}% From the number of sides, depending on the options, this macro determines a regular polygon according to its center or one side. \begin{tabular}{lll}% \toprule arguments & example & explication \\ \midrule \TAline{\parg{pt1,pt2}}{\parg{O,A}}{with option "center", $O$ is the center of the polygon.} \TAline{\parg{pt1,pt2}}{\parg{A,B}}{with option "side", $[AB]$ is a side.} \end{tabular} \medskip \begin{tabular}{lll}% \toprule options & default & example \\ \midrule \TOline{name}{P}{The vertices are named $P1$,$P2$,\dots} \TOline{sides}{5}{number of sides.} \TOline{center}{center}{The first point is the center.} \TOline{side}{center}{The two points are vertices.} \TOline{Options TikZ}{...}{} \end{tabular} \end{NewMacroBox} \subsubsection{Option \tkzname{center}} \begin{tkzexample}[latex=7cm, small] \begin{tikzpicture} \tkzDefPoints{0/0/P0,0/0/Q0,2/0/P1} \tkzDefMidPoint(P0,P1) \tkzGetPoint{Q1} \tkzDefRegPolygon[center,sides=7](P0,P1) \tkzDefMidPoint(P1,P2) \tkzGetPoint{Q1} \tkzDefRegPolygon[center,sides=7,name=Q](P0,Q1) \tkzDrawPolygon(P1,P...,P7) \tkzFillPolygon[gray!20](Q0,Q1,P2,Q2) \foreach \j in {1,...,7} {\tkzDrawSegment[black](P0,Q\j)} \end{tikzpicture} \end{tkzexample} \subsubsection{Option \tkzname{side}} \begin{tkzexample}[latex=7cm, small] \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} \end{tkzexample} \endinput