Commit
9ea96d212ae3c27c96676a20f5cdb0a2f6ef8bc6
Authored by
mclaudel
2021-01-17 19:21:50 +0100
0 parents
Commit principal
1
+++ a/README.md
@@ -0,0 +1,19 @@
@@ -0,0 +1,19 @@
1
+TP de Transmission image multimédia
2
+
3
+TP1 : les représentations vectorielles, le format Postscript
4
+
5
+Voici le rendu de mon TP sur le langage Postscript dans le cadre du module de TIM.
6
+
7
+Le premier fichier (jo.ps) est une représentation des anneaux olympiques. Cette figure fait appel aux compétences de base de Postscript :
8
+
9
+créer un nouveau trait pour une nouvelle figure, choisir la couleur du trait, faire un arc de cercle.
10
+Cette figure utilise une simple définition (/width 10 def) pour s'occuper de la largeur des anneaux qui reste la même.
11
+
12
+Le deuxième fichier (quiche-lorraine.ps) est une figure plus complexe. Sa définition en langage postscript utilise les principes de translation et de rotation ainsi que celui de la boucle for. On y retrouve aussi les utilisations des opérations rlineto ainsi que stroke.
13
+
14
+Le but étant de dessiner les parts de la quiche grâce à la fonction rotate et d'y placer des lardons en combinant les fonction rotate et translate. La différence de résultat du fait d'intervertir rotate et translate est expliquée dans les commentaires du code.
15
+
16
+Le troisième et dernier fichier (echiquier.ps) combine en quelque sorte toutes les compétences acquises. Un échiquier a été représenté et des pièces sont placées
17
+L'utilisation de la commande repeat est présente dans le code. Les pièces sont des procédures définies pour faciliter leur placement en fin de code.
18
+
19
+Grâce à ce TP j'ai pu apprendre les bases puis les subtilités du langage Postscript et de la notation postfixée.
0
\ No newline at end of file
20
\ No newline at end of file
1
+++ a/echiquier.ps
@@ -0,0 +1,229 @@
@@ -0,0 +1,229 @@
1
+/case_noire {
2
+ newpath
3
+ moveto
4
+ 50 0 rlineto
5
+ 0 -50 rlineto
6
+ -50 0 rlineto
7
+ closepath
8
+ fill
9
+} def
10
+
11
+/pion_rouge {
12
+ 1 0 0 setrgbcolor
13
+ newpath
14
+ moveto
15
+ 6 14 rlineto
16
+ -4 7 rlineto
17
+ 6 6 rlineto
18
+ 6 -6 rlineto
19
+ -4 -7 rlineto
20
+ 6 -14 rlineto
21
+ closepath
22
+ fill
23
+} def
24
+
25
+/pion_vert {
26
+ 0 1 0 setrgbcolor
27
+ newpath
28
+ moveto
29
+ 6 14 rlineto
30
+ -4 7 rlineto
31
+ 6 6 rlineto
32
+ 6 -6 rlineto
33
+ -4 -7 rlineto
34
+ 6 -14 rlineto
35
+ closepath
36
+ fill
37
+} def
38
+
39
+/roi_rouge {
40
+ 1 0 0 setrgbcolor
41
+ newpath
42
+ moveto
43
+ 6 10 rlineto
44
+ 0 15 rlineto
45
+ 2 0 rlineto
46
+ 0 5 rlineto
47
+ -5 0 rlineto
48
+ 0 2 rlineto
49
+ 5 0 rlineto
50
+ 0 5 rlineto
51
+ 2 0 rlineto
52
+ 0 -5 rlineto
53
+ 5 0 rlineto
54
+ 0 -2 rlineto
55
+ -5 0 rlineto
56
+ 0 -5 rlineto
57
+ 2 0 rlineto
58
+ 0 -15 rlineto
59
+ 6 -10 rlineto
60
+ closepath
61
+ fill
62
+} def
63
+
64
+/roi_vert {
65
+ 0 1 0 setrgbcolor
66
+ newpath
67
+ moveto
68
+ 6 10 rlineto
69
+ 0 15 rlineto
70
+ 2 0 rlineto
71
+ 0 5 rlineto
72
+ -5 0 rlineto
73
+ 0 2 rlineto
74
+ 5 0 rlineto
75
+ 0 5 rlineto
76
+ 2 0 rlineto
77
+ 0 -5 rlineto
78
+ 5 0 rlineto
79
+ 0 -2 rlineto
80
+ -5 0 rlineto
81
+ 0 -5 rlineto
82
+ 2 0 rlineto
83
+ 0 -15 rlineto
84
+ 6 -10 rlineto
85
+ closepath
86
+ fill
87
+} def
88
+
89
+/fou_vert {
90
+ 0 1 0 setrgbcolor
91
+ newpath
92
+ moveto
93
+ 8 22 rlineto
94
+ -4 7 rlineto
95
+ 6 8 rlineto
96
+ 6 -8 rlineto
97
+ -4 -7 rlineto
98
+ 8 -22 rlineto
99
+ closepath
100
+ fill
101
+} def
102
+
103
+/tour_verte {
104
+ 0 1 0 setrgbcolor
105
+ newpath
106
+ moveto
107
+ 0 3 rlineto
108
+ 3 0 rlineto
109
+ 0 30 rlineto
110
+ -3 0 rlineto
111
+ 0 3 rlineto
112
+ 24 0 rlineto
113
+ 0 -3 rlineto
114
+ -3 0 rlineto
115
+ 0 -30 rlineto
116
+ 3 0 rlineto
117
+ 0 -3 rlineto
118
+ closepath
119
+ fill
120
+} def
121
+
122
+/dame_verte {
123
+ 0 1 0 setrgbcolor
124
+ newpath
125
+ moveto
126
+ 6 10 rlineto
127
+ 0 15 rlineto
128
+ -3 14 rlineto
129
+ 16 0 rlineto
130
+ -3 -14 rlineto
131
+ 0 -15 rlineto
132
+ 6 -10 rlineto
133
+ closepath
134
+ fill
135
+} def
136
+
137
+% Echiquier
138
+
139
+
140
+gsave
141
+150 500 translate
142
+4 {
143
+ 0 0 case_noire stroke
144
+ 100 0 translate } repeat
145
+grestore
146
+
147
+gsave
148
+100 450 translate
149
+4 {
150
+ 0 0 case_noire stroke
151
+ 100 0 translate } repeat
152
+grestore
153
+
154
+gsave
155
+150 400 translate
156
+4 {
157
+ 0 0 case_noire stroke
158
+ 100 0 translate } repeat
159
+grestore
160
+
161
+gsave
162
+100 350 translate
163
+4 {
164
+ 0 0 case_noire stroke
165
+ 100 0 translate } repeat
166
+grestore
167
+
168
+gsave
169
+150 300 translate
170
+4 {
171
+ 0 0 case_noire stroke
172
+ 100 0 translate } repeat
173
+grestore
174
+
175
+gsave
176
+100 250 translate
177
+4 {
178
+ 0 0 case_noire stroke
179
+ 100 0 translate } repeat
180
+grestore
181
+
182
+gsave
183
+150 200 translate
184
+4 {
185
+ 0 0 case_noire stroke
186
+ 100 0 translate } repeat
187
+grestore
188
+
189
+gsave
190
+100 150 translate
191
+4 {
192
+ 0 0 case_noire stroke
193
+ 100 0 translate } repeat
194
+grestore
195
+
196
+newpath
197
+100 500 moveto
198
+400 0 rlineto
199
+0 -400 rlineto
200
+-400 0 rlineto
201
+closepath
202
+stroke
203
+
204
+% Placement des pièces
205
+
206
+117 405 pion_rouge
207
+167 405 pion_rouge
208
+217 405 pion_rouge
209
+167 455 roi_rouge
210
+
211
+417 255 pion_vert
212
+365 155 fou_vert
213
+317 105 roi_vert
214
+363 205 tour_verte
215
+313 205 dame_verte
216
+
217
+
218
+/Times-Roman findfont
219
+20 scalefont
220
+setfont
221
+
222
+0 0 0 setrgbcolor
223
+newpath
224
+100 550 moveto
225
+(Comment mater en un coup depuis cette position ?) show
226
+
227
+newpath
228
+237 520 moveto
229
+((Trait aux verts)) show
1
+++ a/jo.ps
@@ -0,0 +1,31 @@
@@ -0,0 +1,31 @@
1
+/width 10 def
2
+
3
+newpath
4
+width setlinewidth
5
+0.35 0.7 1 setrgbcolor
6
+150 250 75 285 275 arc
7
+stroke
8
+
9
+newpath
10
+width setlinewidth
11
+0.97 0.9 0.06 setrgbcolor
12
+237.5 175 75 105 95 arc
13
+stroke
14
+
15
+newpath
16
+width setlinewidth
17
+0 0 0 setrgbcolor
18
+325 250 75 186 176 arc
19
+stroke
20
+
21
+newpath
22
+width setlinewidth
23
+0.15 0.5 0.06 setrgbcolor
24
+412.5 175 75 105 95 arc
25
+stroke
26
+
27
+newpath
28
+width setlinewidth
29
+1 0 0 setrgbcolor
30
+500 250 75 186 176 arc
31
+stroke
1
+++ a/quiche-lorraine.ps
@@ -0,0 +1,73 @@
@@ -0,0 +1,73 @@
1
+% Pâte de la quiche
2
+newpath
3
+gsave
4
+20 setlinewidth
5
+0.36 0.23 0.07 setrgbcolor
6
+300 300 160 0 360 arc
7
+stroke
8
+grestore
9
+
10
+
11
+% Croûte de la quiche
12
+newpath
13
+gsave
14
+300 300 150 0 360 arc
15
+closepath
16
+0.89 0.88 0.39 setrgbcolor
17
+fill
18
+grestore
19
+
20
+
21
+% Couper la quiche en 8 parts égales
22
+0 45 360 {
23
+ newpath
24
+ gsave
25
+ 0.3 setlinewidth
26
+ 300 300 moveto
27
+ rotate
28
+ 150 0 rlineto
29
+ stroke
30
+ grestore
31
+} for
32
+
33
+
34
+
35
+% Placer des lardons roses sur la quiche
36
+0 36 360 {
37
+ gsave
38
+ 12 setlinewidth
39
+ 0.9 0.46 0.67 setrgbcolor
40
+
41
+ 300 300 translate
42
+ rotate
43
+
44
+ 20 20 moveto
45
+ 5 5 rlineto
46
+
47
+ 55 55 moveto
48
+ 5 5 rlineto
49
+
50
+ 90 90 moveto
51
+ 5 5 rlineto
52
+
53
+ stroke
54
+ grestore
55
+} for
56
+
57
+
58
+% Placer des lardons (rouges) mais en interchangeant les commandes translate et rotate
59
+% On voit ici que ce n'est pas ce que l'on veut puisque les lardons sont ici disposés à 300 pixels du coin en bas à droite de la page.
60
+0 36 360 {
61
+ gsave
62
+ 12 setlinewidth
63
+ 0.84 0.15 0.17 setrgbcolor
64
+
65
+ rotate
66
+ 300 300 translate
67
+
68
+ 5 5 moveto
69
+ 5 5 rlineto
70
+
71
+ stroke
72
+ grestore
73
+} for