summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/pst-solides3d/doc/par-projectionpolygone.tex
blob: 03f56ad6ff2369a1cc309729b8fd2d985a44a54c (plain)
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
103
104
105
106
107
108
109
110
\section {Polygones}

L'objet \Cadre{polygone} permet de définir un polygone. Sous sa forme
usuelle, on utilise l'argument \verb+args+ pour spécifier la liste des
points~: 
\Cadre{[object=polygone,args=$A_0$ $A_1$ \ldots $A_n$]}

Il existe d'autres méthodes pour définir un polygone 2d. L'argument
\Cadre{definition}, couplé à l'argument \Cadre{args} permet d'utiliser
les différentes méthodes supportées~:

\begin{itemize}

%% syntaxe : pol u  --> pol'
\item \Cadre {[definition=translatepol]} ; 
\verb+args=+$pol$ $u$. Translaté du polygone $pol$  par le vecteur
$\vec u$

%% syntaxe : pol u  --> pol'
\item \Cadre {[definition=rotatepol]} ; 
\verb+args=+$pol$ $I$ $\alpha $. Image du polygone pol par la rotation
de centre $I$ et d'angle $\alpha $

%% syntaxe : pol I alpha  --> pol'
\item \Cadre {[definition=hompol]} ; 
\verb+args=+$pol$ $I$ $\alpha $. Image du polygone $pol$ par
l'homothétie de centre $I$ et de rapport $\alpha $.

%% syntaxe : pol I  --> pol'
\item \Cadre {[definition=sympol]} ; 
\verb+args=+$pol$ $I$. Image du polygone $pol$ par
la symétrie de centre $I$.

%% syntaxe : pol D  --> pol'
\item \Cadre {[definition=axesympol]} ; 
\verb+args=+$pol$ $d$. Image du polygone $pol$ par
la symétrie axiale de droite $d$.

\end{itemize}

Dans l'exemple ci-dessous, on définit, on nomme et on trace le
polygone de sommets $(1,0)$, $(-3, 1)$, $(0, 2)$ puis on trace en bleu
son image par la rotation de centre $(-1,0)$ et d'angle $-45$. Enfin,
on représente le translaté du polygone d'origine par le vecteur
$(2,-2)$, et ce en incorporant directement du code jps dans l'argument
\verb+[definition=]+. 

\begin{multicols}{2}

\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}
\columnbreak

\begin{gbar}
\begin{verbatim}
\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,]
\end{verbatim}
\end{gbar}
\end{multicols}