Commit 9ea96d212ae3c27c96676a20f5cdb0a2f6ef8bc6

Authored by mclaudel
0 parents

Commit principal

Showing 4 changed files with 352 additions and 0 deletions   Show diff stats
README.md 0 → 100644
  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
echiquier.ps 0 → 100644
  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
jo.ps 0 → 100644
  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
quiche-lorraine.ps 0 → 100644
  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