1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
\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
|