\section{Polygons}

\subsection{Direct definition}

The object \Lkeyword{polygone} allows us to define a \Index{polygon}. We use
the option \Lkeyword{args} to specify the list of vertices:
\texttt{[object=polygone,args=$A_0$ $A_1$ \ldots $A_n$]}

There are other ways to define a polygon in 2D. The options
\Lkeyword{definition} and \Lkeyword{args} support these methods:

\begin{itemize}

%% syntaxe : pol u  --> pol'
\item \texttt{\Lkeyword{definition}=\Lkeyword{translatepol}};
\texttt{\Lkeyword{args}=$pol$ $u$}.

Translation of the polygon $pol$ by the
vector $\vec u$

%% syntaxe : pol u  --> pol'
\item \texttt{\Lkeyword{definition}=\Lkeyword{rotatepol}};
\texttt{\Lkeyword{args}=$pol$ $I$ $\alpha $}.

Image of the polygon $pol$
after a rotation with centre $I$ and angle $\alpha $

%% syntaxe : pol I alpha  --> pol'
\item \texttt{\Lkeyword{definition}=\Lkeyword{hompol}};
\texttt{\Lkeyword{args}=$pol$ $I$ $\alpha $}.

Image of the polygon $pol$
after a homothety (dilation) with centre $I$ and ratio $\alpha$.

%% syntaxe : pol I  --> pol'
\item \texttt{\Lkeyword{definition}=\Lkeyword{sympol}};
\texttt{\Lkeyword{args}=$pol$ $I$}.

Image of the polygon $pol$ after a
reflection in the point $I$.

%% syntaxe : pol D  --> pol'
\item \texttt{\Lkeyword{definition}=\Lkeyword{axesympol}};
\texttt{\Lkeyword{args}=$pol$ $d$}.

Image of the polygon $pol$ after a
reflection in the line $d$.
\end{itemize}


In the following example we define, name and draw the polygon with
vertices $(-1,0)$, $(-3, 1)$, $(0, 2)$, then---in blue---the
image after a rotation about the point $(-1,0)$ through an angle
$-45$. Finally, we translate the polygon with the vector shift
$(2,-2)$ by directly incorporating \textit{jps code} within the
argument of \Lkeyword{definition}.

\begin{LTXexample}[width=7.5cm]
\begin{pspicture}(-3,-3)(4,3.5)%
\psframe*[linecolor=blue!50](-3,-3)(4,3.5)
\psset{lightsrc=50 20 20,viewpoint=50 30 15,Decran=60}
\psset{solidmemory}
\psSolid[object=grille,
   base=-3 0 -3 3,
   linewidth=0.5\pslinewidth,linecolor=gray,]
%% definition du plan de projection
\psSolid[object=plan,
   definition=equation,
   args={[1 0 0 0] 90},
   base=-3.2 3.2 -2.2 2.2,
   name=monplan,
   planmarks,
]
\psset{plan=monplan}
\psSolid[object=plan,
   args=monplan,
   linecolor=gray!40,
   plangrid,
   action=none,
]
\psProjection[object=polygone,
   args=-1 0 -3 1 0 2,
   name=P,
]
\psProjection[object=polygone,
   definition=rotatepol,
   linecolor=blue,
   args=P -1 0 -45,
]
%% du code jps dans la definition
\psProjection[object=polygone,
   definition={2 -2 addv} papply,
   fillstyle=hlines,hatchcolor=yellow,
   linestyle=dashed,
   args=P,
]
\composeSolid
\axesIIID(4,2,2)(5,4,3)
\end{pspicture}
\end{LTXexample}

\endinput
