summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/cchess/ccpieces.mf
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/cchess/ccpieces.mf')
-rw-r--r--macros/latex/contrib/cchess/ccpieces.mf1173
1 files changed, 1173 insertions, 0 deletions
diff --git a/macros/latex/contrib/cchess/ccpieces.mf b/macros/latex/contrib/cchess/ccpieces.mf
new file mode 100644
index 0000000000..0b6a78d881
--- /dev/null
+++ b/macros/latex/contrib/cchess/ccpieces.mf
@@ -0,0 +1,1173 @@
+mode_setup;
+message "pixels_per_inch="; show pixels_per_inch; message " ";
+showvariable FontSize; message " ";
+smoothing:=1;
+
+FS#:=FontSize/400; % unite employee sur le papier graphique de depart
+max_rayon#:=220FS#; % rayon du plus grand cercle entrant dans la boite de caractere
+max_diametre#:=2*max_rayon#;
+define_pixels(FS,max_rayon,max_diametre);
+SF:=1/FS; % = number of drawing units per pixel
+ % in our particular coordinate system, if we want to
+ % move by 1 pixel, we must move by this quantity.
+pair piece_center; piece_center=(max_rayon,0); % center of each piece:
+pickup pencircle scaled 5FS; normal_pen := savepen;
+pickup pencircle scaled 1; fine_pen := savepen;
+transform basic_transform;
+basic_transform = identity scaled FS shifted piece_center;
+diametre=0.985*max_diametre#/FS#;
+epaisseur_de_la_bordure=0.033*max_diametre#/FS#;
+
+def BaseBlanche =
+ currenttransform := basic_transform;
+ % apres currenttransform:=... on ne specifie plus les unites. FS est sous-entendu
+ fill fullcircle scaled diametre;
+ unfill fullcircle scaled (diametre-epaisseur_de_la_bordure);
+% fill fullcircle scaled 435; unfill fullcircle scaled 425;
+ pickup normal_pen;
+enddef;
+
+def BaseNoire =
+ currenttransform := basic_transform;
+ fill fullcircle scaled diametre;
+ unfill fullcircle scaled (diametre-epaisseur_de_la_bordure);
+ fill fullcircle scaled (diametre-2 epaisseur_de_la_bordure);
+% fill fullcircle scaled 435; unfill fullcircle scaled 425;
+% fill fullcircle scaled 415;
+ pickup normal_pen;
+enddef;
+
+def BaseNoireBlanche =
+ currenttransform := basic_transform;
+ fill fullcircle scaled diametre;
+ unfill fullcircle scaled (diametre-1.2 epaisseur_de_la_bordure);
+ fill fullcircle scaled (diametre-2 epaisseur_de_la_bordure);
+ unfill fullcircle scaled (diametre-3.2 epaisseur_de_la_bordure);
+% fill fullcircle scaled 435; unfill fullcircle scaled 422;
+% fill fullcircle scaled 415; unfill fullcircle scaled 402;
+ pickup normal_pen;
+enddef;
+
+%---------------------------
+
+beginchar ("J",max_diametre#,max_rayon#,max_rayon#); "sig"; % "Jacques Richer";
+ BaseNoire;
+ pickup fine_pen;
+ undraw (-2SF,1SF)..(-2SF,0)..(0,0)---(0,4SF)---(2SF,4SF)..(2SF,2SF)---(0,2SF);
+ undraw (1SF,2SF)..(3SF,-0.7SF);
+endchar;
+
+beginchar ("0",max_diametre#,max_rayon#,max_rayon#); "Masque noir/black mask";
+ currenttransform := basic_transform;
+ fill fullcircle scaled 437;
+endchar;
+
+
+beginchar ("K",max_diametre#,max_rayon#,max_rayon#); "General noir/black king";
+ BaseNoire;
+% Correction: le dessin doit etre tourne de 90 degres vers la droite!
+ currenttransform := currenttransform rotatedaround (piece_center,-90);
+% base (jambes)
+ unfilldraw (82,-45)..(97,-34)..(95,-25)..tension 2
+ ..(90,-16){left}..(82,-17)..(70,-18)--(13,-18)
+ ..(-40,-17)..(-66,-14)..(-77,0)..(-80,41)
+ ..(-82,68)..(-90,97)..(-103,105){left}
+ ..(-113,100)..(-114,88)..(-108,71)
+ ..{down}(-100,23)..{down}(-115,-27)
+ ..{right}(-100,-43)..{right}(-76,-41)
+ ..(-57,-44){dir -45}
+ ..{down}(-51,-56) % left leg
+ ..(-56,-62) % left foot
+ --(-78,-63)..tension 1.5
+ ..{down}(-92,-80)..(-75,-100){right}..(-51,-93)
+ ..(-27,-84) % {dir 45}
+ ..(-23,-72){up}..(-28,-56){up}..(-16,-42){right}
+ ..(-7,-50)..(-1,-68){down}..(-2,-80){down}..tension 2
+ ..(12,-89)--(49,-100)..(72,-106){right}..(86,-93){up}
+ ..(81,-77){dir 135}..(67,-71)--(26,-66)..(19,-52){up}
+ ..(27,-44)--(66,-44)
+ ..cycle;
+% axe vertical central et arc en haut a droite
+ unfilldraw (70,-7)..tension 1.5
+ ..(100,0)..tension 1.5..(103,41){up}..(96,73)
+ ..(73,98)..(50,106)
+ ..{curl0}(14,110){up}..(16,126){up}
+ ..(12,139)..(1,146){left}
+ ..(-10,140)..(-12,130){down}..{curl0}(-11,110){curl0}
+ ..(-27,103)..(-39,93){down}..tension 1.5..(-27,76)
+ ..(-14,69)..(-9,48)..(-8,20)
+ ..{curl0}(-10,1)--(21,-2) % remontee axe central
+ ..(16,5)..(10,28){up}
+ ..{curl 0.5}(11,71){curl 1.5}..(22,78)..(37,79){right}
+ ..(67,68){dir -45}..(79,36){down}..(77,16)
+ ..{curl0}cycle;
+ unfilldraw (-31,120){curl 0.5} % tache gauche en haut
+ ..(-34,130)..(-42,133){left}
+ ..(-54,130)..(-70,112)..(-72,100)
+ ..(-63,92){right}..tension 1.3..(-54,96)..tension 1.5
+ ..cycle;
+ unfilldraw (-43,41){curl1.3} % tache gauche du milieu
+ ..(-37,60){up}..tension 2
+ ..(-46,83)..tension 2..(-54,76)..(-66,57)
+ ..(-68,50){down}..(-59,42)..(-44,41){right}
+ ..cycle;
+ unfilldraw (-21,1){curl0.5} % tache gauche en bas
+ ..(-35,23)..(-50,31){left}..(-59,29)..tension 2
+ ..(-62,-2){curl 0.1}..(-46,-5){right}
+ ..{curl0.3}cycle;
+ unfilldraw (32,11){right}
+ ..(43,19)..tension 1.3 ..(48,34)..tension 1.3
+ ..(55,50)..{curl0.7}(58,65){curl0.7}
+ ..(37,55)..tension 1.5..(18,35)..tension 2
+ ..cycle;
+endchar;
+
+beginchar ("k",max_diametre#,max_rayon#,max_rayon#); "General rouge/red king";
+ BaseBlanche; % j'ai code le dessin a l'envers!
+ currenttransform := currenttransform rotatedaround (piece_center,180);
+ filldraw (-50,-126)..(-42,-100){up}..{curl0}(-43,-81){dir -4}
+ ..(-24,-84)..{curl0}(-11,-91){curl0}..(0,-81)..(7,-66){up}
+ ..(1,-34){up}..(5,-10)..(12,7)--(-5,23)..(-15,14)
+ ..(-20,-1)..{curl0.8}(-23,-48)
+ ..{curl0.2}(-43,-62){curl0.2} % monte tronc principal
+ ..tension 2.5..(-46,69)..(-53,86){left}..(-79,71)--(-80,-50)
+ ..(-84,-60)..(-101,-56)..(-108,-37)..(-107,18){up}..(-122,30){left}
+ ..(-139,13){down}..(-137,-20)..{curl0}(-128,-56){curl0}..(-143,-60)
+ --(-129,-85){curl0.2}..(-110,-82)..(-90,-81)..(-81,-86)
+ --(-81,-107)--cycle;
+ filldraw (100,-107){curl0.5} % structure de droite
+ ..tension2..(112,-76)..tension3..(100,66)
+ ..{curl0.2}(101,75){curl0.2}..tension 3..(82,88){curl0.3}
+ ..(79,84)..(73,78)--(27,57){dir -100}..(23,46)..(21,29)
+ ..{curl0.5}(21,2)--(32,-3){dir 40}..tension 1.5..(50,3)
+ ..{curl0.3}(77,8){curl0.3}..(77,-6)
+ --(40,-18){curl0}..tension 2..(28,-22)..tension 2..(22,-32)
+ ..tension 2..(22,-60)..tension 2..(40,-68)--(82,-63)
+ --(80,-79)..(42,-82)..(28,-88)..tension2..(22,-98){curl0}
+ --(73,-97)..tension 1.2
+ ..{curl0.2}cycle;
+ pickup fine_pen;
+ unfilldraw (76,33)..tension 3..(72,49)..tension 3 % trou du haut
+ ..(47,43)..tension 3..(46,24)..tension 3
+ ..cycle;
+ unfilldraw (78,-33){up}..tension 0.8 % trou du bas
+ ..(72,-28)..tension 3
+ ..(52,-33)..tension 0.8..(46,-42)..tension 0.8
+ ..(51,-47)..tension 3..(73,-40)
+ ..cycle;
+endchar;
+
+beginchar ("S",max_diametre#,max_rayon#,max_rayon#); "General noir/black king sur fond blanc";
+ BaseNoireBlanche;
+% Correction: le dessin doit etre tourne de 90 degres vers la droite!
+ currenttransform := identity rotated -90 scaled FS shifted ( piece_center - (8FS,0));
+% base (jambes)
+ filldraw (82,-45)..(97,-34)..(95,-25)..tension 2
+ ..(90,-16){left}..(82,-17)..(70,-18)--(13,-18)
+ ..(-40,-17)..(-66,-14)..(-77,0)..(-80,41)
+ ..(-82,68)..(-90,97)..(-103,105){left}
+ ..(-113,100)..(-114,88)..(-108,71)
+ ..{down}(-100,23)..{down}(-115,-27)
+ ..{right}(-100,-43)..{right}(-76,-41)
+ ..(-57,-44){dir -45}
+ ..{down}(-51,-56) % left leg
+ ..(-56,-62) % left foot
+ --(-78,-63)..tension 1.5
+ ..{down}(-92,-80)..(-75,-100){right}..(-51,-93)
+ ..(-27,-84) % {dir 45}
+ ..(-23,-72){up}..(-28,-56){up}..(-16,-42){right}
+ ..(-7,-50)..(-1,-68){down}..(-2,-80){down}..tension 2
+ ..(12,-89)--(49,-100)..(72,-106){right}..(86,-93){up}
+ ..(81,-77){dir 135}..(67,-71)--(26,-66)..(19,-52){up}
+ ..(27,-44)--(66,-44)
+ ..cycle;
+% axe vertical central et arc en haut a droite
+ filldraw (70,-7)..tension 1.5
+ ..(100,0)..tension 1.5..(103,41){up}..(96,73)
+ ..(73,98)..(50,106)
+ ..{curl0}(14,110){up}..(16,126){up}
+ ..(12,139)..(1,146){left}
+ ..(-10,140)..(-12,130){down}..{curl0}(-11,110){curl0}
+ ..(-27,103)..(-39,93){down}..tension 1.5..(-27,76)
+ ..(-14,69)..(-9,48)..(-8,20)
+ ..{curl0}(-10,1)--(21,-2) % remontee axe central
+ ..(16,5)..(10,28){up}
+ ..{curl 0.5}(11,71){curl 1.5}..(22,78)..(37,79){right}
+ ..(67,68){dir -45}..(79,36){down}..(77,16)
+ ..{curl0}cycle;
+ filldraw (-31,120){curl 0.5} % tache gauche en haut
+ ..(-34,130)..(-42,133){left}
+ ..(-54,130)..(-70,112)..(-72,100)
+ ..(-63,92){right}..tension 1.3..(-54,96)..tension 1.5
+ ..cycle;
+ filldraw (-43,41){curl1.3} % tache gauche du milieu
+ ..(-37,60){up}..tension 2
+ ..(-46,83)..tension 2..(-54,76)..(-66,57)
+ ..(-68,50){down}..(-59,42)..(-44,41){right}
+ ..cycle;
+ filldraw (-21,1){curl0.5} % tache gauche en bas
+ ..(-35,23)..(-50,31){left}..(-59,29)..tension 2
+ ..(-62,-2){curl 0.1}..(-46,-5){right}
+ ..{curl0.3}cycle;
+ filldraw (32,11){right}
+ ..(43,19)..tension 1.3 ..(48,34)..tension 1.3
+ ..(55,50)..{curl0.7}(58,65){curl0.7}
+ ..(37,55)..tension 1.5..(18,35)..tension 2
+ ..cycle;
+endchar;
+
+beginchar ("G",max_diametre#,max_rayon#,max_rayon#); "Lettre noir/black guard";
+ BaseNoire;
+ z1=(112,22);
+ unfilldraw z1{curl 0.1}..controls(115,41)
+ ..{curl 0.2}(127,60){curl 0.2}
+ ..(84,60){dir 182}
+ ..(27,63)
+ ...(17,121) % 3
+ ...(-20,121) ..tension 1.5
+ ..(-33,53) ..tension 1.5 %5
+ ..(-70,53) ..tension 2 %5.5
+ ..(-96,60) %6
+ ...(-112,42)..tension 2
+ ..(-133,10)..tension 2 %8
+ ..(-105,13)..tension 2 %8.5
+ ..(-80,20)..tension 2
+ ..(-33,17)..tension 2
+ ..(-30,-34)..tension 2
+ ..(-78,-37)
+ ...(-95,-40) ..tension 2
+ ..(-120,-60){curl0} ..controls (-107,-66)
+ ..{curl 0.3}(-96,-81){curl 0.3} .. controls (-63,-70) and (-40,-67)
+ ..(-2,-66)..controls(63,-68)
+ ..(80,-77)
+ ...(93,-59)
+ ...{curl 0.05}(100,-38){curl 0.05}
+ ...(67,-34)
+ ...(29,-31)..tension 1.5
+ ..(28,26){curl 0.4} .. tension 1.7
+ ..(92,27)
+ .. cycle;
+endchar;
+
+beginchar ("g",max_diametre#,max_rayon#,max_rayon#); "Lettre rouge/red guard";
+ BaseBlanche;
+ filldraw (121,24){curl 0.2}..controls(128,34)
+ ..(140,42) %2
+ ..(140,52) %3
+ ..(127,52) ..tension 1.4 %4
+ ..(100,53) ..tension 1.4 %5
+ ..(74,52) %6
+ ..(66,79) ..tension 1.3 %7
+ ..(42,94) ..tension 1.2 %8
+ ..(14,77) %9
+ ..(13,62) %10
+ ..(2,51) ..tension 2 %11
+ ..(-31,52) ..tension 0.8 %12
+ ..(-40,70)..controls (-42,86) %13
+ ..(-56,92) %14
+ ..(-84,96) %15
+ ..(-100,93) % 15.2
+ ..(-117,81) % 15.4
+ ..(-122,66) %16
+ ..(-112,62) %17
+ ..(-85,56) %18
+ ..(-80,39) ..tension 1.5 %19
+ ..(-81,-60) ..tension 1.5 %20
+ ..(-81,-76) ..tension 2 %21
+ ..{curl 0.1}(-62,-98){curl 0.1} %22 bas du cmax_rayon
+ ..{curl 0.5}(-48,-87){curl 0.5} %23
+ ..{curl 0.1}(-44,-65){curl 0.1} %24
+ ..{curl 0.3}(-32,-71){curl 0.5} %25
+ ..(0,-60) ..tension 2 %26
+ ..(67,-60) %27
+ ..{curl 0.1}(101,-68) %28 bas du pied droit
+ ..(113,-56)
+ ..(122,-38) %30
+ ..(103,-33)..tension 1.5
+ ..{left}(66,-39) %32
+ ..(59,-37) % 32.5
+ ..(60,-28)..tension 2 %33
+ ..(62,10) %34
+ ..(78,28)..tension 1.5
+ ..(112,29)
+ ..cycle;
+ unfilldraw (15,20)..tension 1.5
+ ..(16,28)..tension 1.5
+ ..(9,29)..tension 1.5
+ ..(-15,23)
+ ..(-32,16)
+ ..(-40,6)..tension 2
+ ..(-45,-37)
+ ..{curl 0.5}(-43,-47){curl 0.5}
+ ..{curl 0.5}(-33,-37){curl 0}
+ ..(-22,-38)..tension 1.5
+ ..(-1,-39)..tension 0.8
+ ..(14,-27)..tension 2
+ ..(13,0)..tension 2
+ ..cycle;
+endchar;
+
+beginchar ("T",max_diametre#,max_rayon#,max_rayon#); "Lettre noir/black guard sur fond blanc";
+ BaseNoireBlanche;
+ z1=(112,22);
+ filldraw z1{curl 0.1}..controls(115,41)
+ ..{curl 0.2}(127,60){curl 0.2}
+ ..(84,60){dir 182}
+ ..(27,63)
+ ...(17,121) % 3
+ ...(-20,121) ..tension 1.5
+ ..(-33,53) ..tension 1.5 %5
+ ..(-70,53) ..tension 2 %5.5
+ ..(-96,60) %6
+ ...(-112,42)..tension 2
+ ..(-133,10)..tension 2 %8
+ ..(-105,13)..tension 2 %8.5
+ ..(-80,20)..tension 2
+ ..(-33,17)..tension 2
+ ..(-30,-34)..tension 2
+ ..(-78,-37)
+ ...(-95,-40) ..tension 2
+ ..(-120,-60){curl0} ..controls (-107,-66)
+ ..{curl 0.3}(-96,-81){curl 0.3} .. controls (-63,-70) and (-40,-67)
+ ..(-2,-66)..controls(63,-68)
+ ..(80,-77)
+ ...(93,-59)
+ ...{curl 0.05}(100,-38){curl 0.05}
+ ...(67,-34)
+ ...(29,-31)..tension 1.5
+ ..(28,26){curl 0.4} .. tension 1.7
+ ..(92,27)
+ .. cycle;
+endchar;
+
+beginchar ("B",max_diametre#,max_rayon#,max_rayon#); "Elephant noir/black bishop";
+ BaseNoire;
+ unfilldraw (101,-61){curl 0.8}..tension 1.5..(128,-50)
+ ..(135,-42) % extremite de la grande queue de droite
+ ..(126,-32)..tension 1.5..(91,-28)..tension 1.5..(58,-20)
+ ..(51,-14){curl 0.7}..(60,-6)..(72,13)..{curl 3}(72,29)
+ --(61,28) % haut de la petite queue de droite
+ ..tension 1.5 ..(56,20)..(50,7)..(39,-8){curl 0.5}..tension 1.5
+ ..(27,8)..tension 1.5..(10,36)..tension 0.8..(13,39)
+ ---(66,40)..tension 0.8..(73,47)..tension 1.5
+ ..(73,65)..tension 1.5..(72,86)..tension 0.8
+ ..(68,89)---(30,92)
+ & (30,92){curl 0.8}..tension 1.5..(50,113)..tension 0.8
+ ..(48,122)..tension 1.5..(16,125)..tension 1.5..(-10,128)
+ ..(-25,126)..tension 1.5..(-51,110)---(-75,96)..(-88,88)
+ ..(-89,80)..tension 0.8 % extremite de la trompe
+ ..(-82,73)..{curl 0.8}(-68,78)
+ & (-68,78)..{curl 0.5}(-72,41){curl 2}..tension 1.2
+ ..(-60,36)..tension 2..(-40,37)..tension 2..(-12,39)
+ &(-12,39)..tension 2 % patte du haut
+ ..(-43,16)..controls(-51,13)..(-63,13)..controls(-70,12)
+ ..(-78,9)..(-80,-4)..tension 1.2..(-67,-8)..tension 1.2
+ ..(-40,-1)..tension 2..(-13,13)..tension 0.8
+ ..(-4,12)..tension 2..(13,-18)..tension 0.8
+ ..(13,-28)..tension 1.5..(0,-55)..(-26,-72)..(-46,-78)
+ ..(-67,-76)..tension 1.5..(-85,-70)..tension 0.8
+ ..(-88,-74)..tension 1.5..(-70,-98)..tension 1.2
+ ..(-44,-105)..(8,-92)..(26,-77)..(42,-32)
+ & (42,-32)..controls (75,-46)..cycle;
+ filldraw (53,63) % oeil droit
+ ..(52,69)..tension 0.8..(46,73)..tension 1.5
+ ..(33,73)..tension 1.5..(17,73)..tension 0.8
+ ..(14,69)..tension 1.5..(16,61)..tension 0.8
+ ..(23,56)..tension 1.5..(34,56)..tension 1.5
+ ..(48,56)..tension 0.8..cycle;
+ filldraw (-12,62) % oeil gauche
+ ..(-13,68)..(-21,72)..tension 1.5..(-40,70){curl 2}..tension 0.8
+ ..(-47,61)..tension 0.8..{curl 2}(-44,52)..tension 3
+ ..(-25,53)..tension 3..(-14,53)..tension 0.8..(-11,56)
+ ..cycle;
+ filldraw (7,93)..tension 1.5 % interieur de la trompe
+ ..(16,103)..tension 0.8..(16,109)..tension 2
+ ..(-4,111)..tension 1.5..(-16,110)..tension 1.5
+ ..(-20,108)..tension 1.5..(-28,103)..tension 1.5
+ ..{curl 0.8}(-50,90){curl 0.8}..tension 2
+ ..(-20,91)..tension 1.2..(0,91)..tension 0.8..cycle;
+ unfilldraw (-8,-10)..tension 0.8 % pattes de gauche
+ ..(-22,-8)..(-33,-12)..(-60,-18)..{curl 0.5}(-84,-18)..tension 2
+ ..(-90,-28) ..tension 1.5..(-83,-36)..controls(-72,-35)
+ ..(-61,-32)..tension 2..(-34,-25)..tension 2
+ ..(-17,-22)..tension 0.8..(-14,-28)..tension 1.5
+ ..(-36,-38)..tension 1.5..(-50,-43)..controls(-72,-48)
+ ..(-90,-47)..tension 1.5..{curl 0.5}(-113,-46)..tension 2
+ ..(-120,-57)..tension 0.76..(-118,-62)..tension 1.5
+ ..(-107,-68)..(-98,-70){curl 2}..tension 2
+ ..(-50,-55)..tension 2..(-5,-38)..tension 0.8
+ ..(1,-30)..tension 0.8..(-2,-20)..tension 1.5..cycle;
+endchar;
+
+beginchar ("b",max_diametre#,max_rayon#,max_rayon#); "Elephant rouge/red bishop";
+ BaseBlanche;
+ filldraw (108,-65)..tension 2..(121,-48)..tension 3
+ ..(122,50)..(128,77) &
+ (128,77)..tension 2..(110,95)..tension 0.8
+ ..(99,97)..controls (85,94)..(62,93)..tension 3
+ ..(15,91)..tension 3..(0,69)..controls(6,60)and(7,45)
+ ..(8,32){down}..tension 2..(7,-35)..(1,-57) &
+ (1,-57)..tension 2..(13,-71)..(25,-75)..tension 1.3
+ ..(48,-65)..tension 2..{curl 1}(88,-58)..tension 1
+ ..(86,-50)..(83,-44) &
+ (83,-44)..tension 3..(37,-43)..tension 0.8
+ ..(32,-37)..controls(34,15)..(32,68)..tension 0.8
+ ..(40,73)..tension 2..(94,74)..tension 0.8
+ ..(98,68)---(101,-20)..controls (100,-32) and (98,-40)
+ ..(94,-46)..tension 3..cycle;
+ filldraw (25,-18)---(80,-11)..tension 2
+ ..(85,-5)..tension 2..(75,4)..tension 3..(25,6)--cycle;
+ filldraw (25,28)---(74,32)..tension 1.5
+ ..{curl 1.5}(84,49)---(25,50)--cycle;
+
+ % partie de gauche:
+ filldraw (-43,-86)..tension 2..(-30,-68)..tension 3
+ ..(-27,80)..(-44,92){left} ..(-53,89){dir 220} ..(-63,78) &
+ (-63,78)..(-58,70)..(-57,48)---(-55,-67)..tension 3..cycle;
+ filldraw (-124,-47)..tension 3..(-113,-56)..tension 1.5
+ ..(-88,-43)..(-57,3)..(-39,35) &
+ (-39,35)..(-13,4)..(16,-20)--(16,0)..(-10,29)..(-41,71) &
+ (-41,71)..tension 1.2..(-78,10)..(-99,-16)
+ ..{curl 0.9}(-121,-27)..tension 3..cycle;
+ filldraw (-104,50)..tension 1.5..(-98,40)..(-92,38)..tension 2
+ ..(-40,47)..tension 2..(0,50)..tension 2..(10,67) &
+ (10,67)..tension 2..(-40,66)..tension 2..(-75,69)
+ ..(-84,73)..{curl 0.8}(-90,73)..tension 3..cycle;
+endchar;
+
+beginchar ("U",max_diametre#,max_rayon#,max_rayon#); "Elephant noir/black bishop sur fond blanc";
+ BaseNoireBlanche;
+ filldraw (101,-61){curl 0.8}..tension 1.5..(128,-50)
+ ..(135,-42) % extremite de la grande queue de droite
+ ..(126,-32)..tension 1.5..(91,-28)..tension 1.5..(58,-20)
+ ..(51,-14){curl 0.7}..(60,-6)..(72,13)..{curl 3}(72,29)
+ --(61,28) % haut de la petite queue de droite
+ ..tension 1.5 ..(56,20)..(50,7)..(39,-8){curl 0.5}..tension 1.5
+ ..(27,8)..tension 1.5..(10,36)..tension 0.8..(13,39)
+ ---(66,40)..tension 0.8..(73,47)..tension 1.5
+ ..(73,65)..tension 1.5..(72,86)..tension 0.8
+ ..(68,89)---(30,92)
+ & (30,92){curl 0.8}..tension 1.5..(50,113)..tension 0.8
+ ..(48,122)..tension 1.5..(16,125)..tension 1.5..(-10,128)
+ ..(-25,126)..tension 1.5..(-51,110)---(-75,96)..(-88,88)
+ ..(-89,80)..tension 0.8 % extremite de la trompe
+ ..(-82,73)..{curl 0.8}(-68,78)
+ & (-68,78)..{curl 0.5}(-72,41){curl 2}..tension 1.2
+ ..(-60,36)..tension 2..(-40,37)..tension 2..(-12,39)
+ &(-12,39)..tension 2 % patte du haut
+ ..(-43,16)..controls(-51,13)..(-63,13)..controls(-70,12)
+ ..(-78,9)..(-80,-4)..tension 1.2..(-67,-8)..tension 1.2
+ ..(-40,-1)..tension 2..(-13,13)..tension 0.8
+ ..(-4,12)..tension 2..(13,-18)..tension 0.8
+ ..(13,-28)..tension 1.5..(0,-55)..(-26,-72)..(-46,-78)
+ ..(-67,-76)..tension 1.5..(-85,-70)..tension 0.8
+ ..(-88,-74)..tension 1.5..(-70,-98)..tension 1.2
+ ..(-44,-105)..(8,-92)..(26,-77)..(42,-32)
+ & (42,-32)..controls (75,-46)..cycle;
+ unfilldraw (53,63) % oeil droit
+ ..(52,69)..tension 0.8..(46,73)..tension 1.5
+ ..(33,73)..tension 1.5..(17,73)..tension 0.8
+ ..(14,69)..tension 1.5..(16,61)..tension 0.8
+ ..(23,56)..tension 1.5..(34,56)..tension 1.5
+ ..(48,56)..tension 0.8..cycle;
+ unfilldraw (-12,62) % oeil gauche
+ ..(-13,68)..(-21,72)..tension 1.5..(-40,70){curl 2}..tension 0.8
+ ..(-47,61)..tension 0.8..{curl 2}(-44,52)..tension 3
+ ..(-25,53)..tension 3..(-14,53)..tension 0.8..(-11,56)
+ ..cycle;
+ unfilldraw (7,93)..tension 1.5 % interieur de la trompe
+ ..(16,103)..tension 0.8..(16,109)..tension 2
+ ..(-4,111)..tension 1.5..(-16,110)..tension 1.5
+ ..(-20,108)..tension 1.5..(-28,103)..tension 1.5
+ ..{curl 0.8}(-50,90){curl 0.8}..tension 2
+ ..(-20,91)..tension 1.2..(0,91)..tension 0.8..cycle;
+ filldraw (-8,-10)..tension 0.8 % pattes de gauche
+ ..(-22,-8)..(-33,-12)..(-60,-18)..{curl 0.5}(-84,-18)..tension 2
+ ..(-90,-28) ..tension 1.5..(-83,-36)..controls(-72,-35)
+ ..(-61,-32)..tension 2..(-34,-25)..tension 2
+ ..(-17,-22)..tension 0.8..(-14,-28)..tension 1.5
+ ..(-36,-38)..tension 1.5..(-50,-43)..controls(-72,-48)
+ ..(-90,-47)..tension 1.5..{curl 0.5}(-113,-46)..tension 2
+ ..(-120,-57)..tension 0.76..(-118,-62)..tension 1.5
+ ..(-107,-68)..(-98,-70){curl 2}..tension 2
+ ..(-50,-55)..tension 2..(-5,-38)..tension 0.8
+ ..(1,-30)..tension 0.8..(-2,-20)..tension 1.5..cycle;
+endchar;
+
+beginchar ("N",max_diametre#,max_rayon#,max_rayon#); "cavalier noir/black knight";
+ BaseNoire;
+ unfilldraw (92,123)..tension 1.5
+ ..{curl 0.5}(83,136){curl 0.5}..tension 1.2
+ ..(38,132){left}..tension 1.2..(-47,142)
+ ..(-68,138)..tension 1.2..{curl 1.2}(-83,126){curl 1.2}
+ ..(-80,112)..(-72,58){down} % milieu du cote gauche
+ ..(-73,22)..(-74,13)..tension 1.3
+ ..{curl 0.7}(-56,3){curl 0.7}..tension 1.2
+ ..(3,10){right}..tension 1.5..(62,6)..(77,-12)..(72,-37)
+ ..(53,-60)..(10,-70){left} % bas du "5"
+ ..(-26,-67)..(-38,-61)..{curl 0.9}(-50,-52){curl 0.9}
+ ..(-58,-56)--(-65,-62)..tension 0.8..(-65,-72)..tension 1.5
+ ..(-34,-86)..(0,-93){right}..(22,-92)..tension 2..(78,-83)
+ ..(96,-66)..tension 1.2..(102,-37)..tension 1.2..(118,-1)
+ ..(119,8)..tension 2..(111,28)..(100,32)..(66,28)..tension 2
+ ..(35,28)..tension 0.8..(29,36)..tension 0.8
+ ..(37,45) % dent de droite en bas
+ --(71,46){curl0} ..tension 1.1..(82,53){up}..tension 1.1
+ ..{curl0}(70,60) --(36,60)..tension 0.8..(28,67)..tension 0.8
+ ..(38,75)--(74,75){curl0}..tension 1.1..(85,81)..tension 1.1
+ ..{curl0}(75,90)--(37,91)..tension 0.8..(29,101)..tension 0.8
+ ..(40,108)..tension 1.5..(84,111){curl 0.2}
+ ..tension1.5..cycle;
+ filldraw (-15,112)..tension 2.5..(-42,112)..tension 0.8
+ ..(-49,104)..tension 0.8..(-43,98)..tension 2
+ ..(-13,97)..tension 0.8..(-9,104)..tension 0.8
+ ..cycle;
+ filldraw (-14,78)..tension 2..(-43,79)..tension 0.8
+ ..(-48,73){down}..tension 0.8..(-43,63)..tension 2
+ ..(-14,63)..tension 0.8..(-11,71)..tension 0.8
+ ..cycle;
+ filldraw (-14,44)..tension 2..(-42,46)..tension 0.8
+ ..(-49,38)..tension 0.8..(-42,29)..tension 2
+ ..(-15,30)..tension 0.8..(-10,37)..tension 0.8
+ ..cycle;
+ % premiere patte (de droite a gauche)
+ unfilldraw (66,-43){curl 0.95}..tension 1.5
+ ..(53,-13)..tension 1.5..(41,-6)..tension 0.9
+ ..(36,-7)..tension 1.5..(42,-27)..tension 1.5
+ ..{curl 0.95}cycle;
+ % deuxieme patte
+ unfilldraw (30,-40){curl 0.9}..tension 1.7
+ ..(28,-20) ..tension 0.8..(20,-10)..tension 1.4
+ ..{curl 0.9}(2,-7){curl 0.9}..(1,-20)..tension 1.7
+ ..{curl 0.9}cycle;
+ % troisieme patte
+ unfilldraw (-42,-46){curl 0.8}..tension 2..(-8,-21)
+ ..tension 1.7..(-10,-8)..tension 1.7..(-30,-7)..tension 2
+ ..{curl 0.8}cycle;
+ % quatrieme patte (a gauche)
+ unfilldraw (-54,-12){curl0.7}..tension 1.5..(-74,-8)
+ ..tension 1.6..(-102,-33)..tension 1.7..(-143,-60)
+ ..(-149,-70)..(-140,-72)..tension 2.3..(-57,-34)..tension 1.2
+ ..{curl0.9}cycle;
+endchar;
+
+beginchar ("n",max_diametre#,max_rayon#,max_rayon#); "cavalier rouge/red knight";
+ BaseBlanche;
+ filldraw (92,123)..tension 1.5
+ ..{curl 0.5}(83,136){curl 0.5}..tension 1.2
+ ..(38,132){left}..tension 1.2..(-47,142)
+ ..(-68,138)..tension 1.2..{curl 1.2}(-83,126){curl 1.2}
+ ..(-80,112)..(-72,58){down} % milieu du cote gauche
+ ..(-73,22)..(-74,13)..tension 1.3
+ ..{curl 0.7}(-56,3){curl 0.7}..tension 1.2
+ ..(3,10){right}..tension 1.5..(62,6)..(77,-12)..(72,-37)
+ ..(53,-60)..(10,-70){left} % bas du "5"
+ ..(-26,-67)..(-38,-61)..{curl 0.9}(-50,-52){curl 0.9}
+ ..(-58,-56)--(-65,-62)..tension 0.8..(-65,-72)..tension 1.5
+ ..(-34,-86)..(0,-93){right}..(22,-92)..tension 2..(78,-83)
+ ..(96,-66)..tension 1.2..(102,-37)..tension 1.2..(118,-1)
+ ..(119,8)..tension 2..(111,28)..(100,32)..(66,28)..tension 2
+ ..(35,28)..tension 0.8..(29,36)..tension 0.8
+ ..(37,45) % dent de droite en bas
+ --(71,46){curl0} ..tension 1.1..(82,53){up}..tension 1.1
+ ..{curl0}(70,60) --(36,60)..tension 0.8..(28,67)..tension 0.8
+ ..(38,75)--(74,75){curl0}..tension 1.1..(85,81)..tension 1.1
+ ..{curl0}(75,90)--(37,91)..tension 0.8..(29,101)..tension 0.8
+ ..(40,108)..tension 1.5..(84,111){curl 0.2}
+ ..tension1.5..cycle;
+ unfilldraw (-15,112)..tension 2.5..(-42,112)..tension 0.8
+ ..(-49,104)..tension 0.8..(-43,98)..tension 2
+ ..(-13,97)..tension 0.8..(-9,104)..tension 0.8
+ ..cycle;
+ unfilldraw (-14,78)..tension 2..(-43,79)..tension 0.8
+ ..(-48,73){down}..tension 0.8..(-43,63)..tension 2
+ ..(-14,63)..tension 0.8..(-11,71)..tension 0.8
+ ..cycle;
+ unfilldraw (-14,44)..tension 2..(-42,46)..tension 0.8
+ ..(-49,38)..tension 0.8..(-42,29)..tension 2
+ ..(-15,30)..tension 0.8..(-10,37)..tension 0.8
+ ..cycle;
+ % premiere patte (de droite a gauche)
+ filldraw (66,-43){curl 0.95}..tension 1.5
+ ..(53,-13)..tension 1.5..(41,-6)..tension 0.9
+ ..(36,-7)..tension 1.5..(42,-27)..tension 1.5
+ ..{curl 0.95}cycle;
+ % deuxieme patte
+ filldraw (30,-40){curl 0.9}..tension 1.7
+ ..(28,-20) ..tension 0.8..(20,-10)..tension 1.4
+ ..{curl 0.9}(2,-7){curl 0.9}..(1,-20)..tension 1.7
+ ..{curl 0.9}cycle;
+ % troisieme patte
+ filldraw (-42,-46){curl 0.8}..tension 2..(-8,-21)
+ ..tension 1.7..(-10,-8)..tension 1.7..(-30,-7)..tension 2
+ ..{curl 0.8}cycle;
+ % quatrieme patte (a gauche)
+ filldraw (-54,-12){curl0.7}..tension 1.5..(-74,-8)
+ ..tension 1.6..(-102,-33)..tension 1.7..(-143,-60)
+ ..(-149,-70)..(-140,-72)..tension 2.3..(-57,-34)..tension 1.2
+ ..{curl0.9}cycle;
+endchar;
+
+beginchar ("V",max_diametre#,max_rayon#,max_rayon#); "cavalier noir/black knight sur fond blanc";
+% Pour l'instant, pratiquement identique au cavalier blanc.
+% Seule la patte de gauche est un peu plus longue, pour differencier.
+ BaseNoireBlanche;
+ filldraw (92,123)..tension 1.5
+ ..{curl 0.5}(83,136){curl 0.5}..tension 1.2
+ ..(38,132){left}..tension 1.2..(-47,142)
+ ..(-68,138)..tension 1.2..{curl 1.2}(-83,126){curl 1.2}
+ ..(-80,112)..(-72,58){down} % milieu du cote gauche
+ ..(-73,22)..(-74,13)..tension 1.3
+ ..{curl 0.7}(-56,3){curl 0.7}..tension 1.2
+ ..(3,10){right}..tension 1.5..(62,6)..(77,-12)..(72,-37)
+ ..(53,-60)..(10,-70){left} % bas du "5"
+ ..(-26,-67)..(-38,-61)..{curl 0.9}(-50,-52){curl 0.9}
+ ..(-58,-56)--(-65,-62)..tension 0.8..(-65,-72)..tension 1.5
+ ..(-34,-86)..(0,-93){right}..(22,-92)..tension 2..(78,-83)
+ ..(96,-66)..tension 1.2..(102,-37)..tension 1.2..(118,-1)
+ ..(119,8)..tension 2..(111,28)..(100,32)..(66,28)..tension 2
+ ..(35,28)..tension 0.8..(29,36)..tension 0.8
+ ..(37,45) % dent de droite en bas
+ --(71,46){curl0} ..tension 1.1..(82,53){up}..tension 1.1
+ ..{curl0}(70,60) --(36,60)..tension 0.8..(28,67)..tension 0.8
+ ..(38,75)--(74,75){curl0}..tension 1.1..(85,81)..tension 1.1
+ ..{curl0}(75,90)--(37,91)..tension 0.8..(29,101)..tension 0.8
+ ..(40,108)..tension 1.5..(84,111){curl 0.2}
+ ..tension1.5..cycle;
+ unfilldraw (-15,112)..tension 2.5..(-42,112)..tension 0.8
+ ..(-49,104)..tension 0.8..(-43,98)..tension 2
+ ..(-13,97)..tension 0.8..(-9,104)..tension 0.8
+ ..cycle;
+ unfilldraw (-14,78)..tension 2..(-43,79)..tension 0.8
+ ..(-48,73){down}..tension 0.8..(-43,63)..tension 2
+ ..(-14,63)..tension 0.8..(-11,71)..tension 0.8
+ ..cycle;
+ unfilldraw (-14,44)..tension 2..(-42,46)..tension 0.8
+ ..(-49,38)..tension 0.8..(-42,29)..tension 2
+ ..(-15,30)..tension 0.8..(-10,37)..tension 0.8
+ ..cycle;
+ % premiere patte (de droite a gauche)
+ filldraw (66,-43){curl 0.95}..tension 1.5
+ ..(53,-13)..tension 1.5..(41,-6)..tension 0.9
+ ..(36,-7)..tension 1.5..(42,-27)..tension 1.5
+ ..{curl 0.95}cycle;
+ % deuxieme patte
+ filldraw (30,-40){curl 0.9}..tension 1.7
+ ..(28,-20) ..tension 0.8..(20,-10)..tension 1.4
+ ..{curl 0.9}(2,-7){curl 0.9}..(1,-20)..tension 1.7
+ ..{curl 0.9}cycle;
+ % troisieme patte
+ filldraw (-42,-46){curl 0.8}..tension 2..(-8,-21)
+ ..tension 1.7..(-10,-8)..tension 1.7..(-30,-7)..tension 2
+ ..{curl 0.8}cycle;
+ % quatrieme patte (a gauche)
+ filldraw (-54,-12){curl0.7}..tension 1.5..(-74,-8)
+ ..tension 1.6..(-102,-33)..tension 1.7..(-153,-60)
+ ..(-159,-70)..(-150,-72)..tension 2.3..(-57,-34)..tension 1.2
+ ..{curl0.9}cycle;
+endchar;
+
+beginchar ("R",max_diametre#,max_rayon#,max_rayon#); "char noir/black rook";
+ BaseNoire;
+ currenttransform := currenttransform shifted (4FS,0);
+ unfilldraw (4,-113)..tension 2..(12,-100)--(15,-70)
+ ..controls(13,-58) and (14,-55)
+ ..(25,-55)..(60,-55)..controls(80,-56)
+ ..(95,-59){curl0.5}..controls(102,-52)
+ ..(112,-47)..(115,-39){curl0.5} % right tip of lower hor-bar
+ ..(53,-40){left}..controls(13,-39)..(13,-22)..controls(13,-11)
+ ..(32,-11)..tension 1.5..(51,-12)..tension 1.5
+ ..(68,-12)..tension 0.8..(72,-8)..tension 1.5 % bot right of box
+ ..(71,-1)..tension 2..(72,43)..tension 3
+ ..(75,51)..tension 3 % top right of box
+ ..(60,70)..tension 3..(42,63)..tension 2..(21,61)..controls(15,61)
+ ..(15,75)..{curl 0.2}(16,83){curl 0.2}
+ ..(25,84)..(72,81){curl0.7}..tension 2..(86,100)..tension 1.5
+ ..(82,107){curl0.2}..tension 0.8..(78,108){curl0.2}..tension 2
+ ..(50,103)..{curl0}(20,101)..(15,102){curl0.3}..tension 0.8
+ ..(13,110)..(6,124)..(-4,127){left}..(-15,123)
+ ..(-19,111)..(-21,104){curl 0.8}..(-26,102)..tension 1.5
+ ..(-50,102)..tension 1.5..(-66,109)..tension 2.5
+ ..(-95,92)..tension 0.8..(-92,82)..controls(-50,83)
+ ..(-25,83)..tension 0.8 ..(-20,78)..tension 1.5
+ ..(-21,65)..tension 0.8..(-25,61)..tension 2
+ ..(-55,60)..tension 1.7..(-70,65)..tension 2 % top left of box
+ ..(-85,51)..tension 2..(-83,43)..tension 2
+ ..(-84,-1)..(-74,-15)..tension 1.5..(-46,-13)..tension 2
+ ..(-24,-13)..tension 0.8..(-20,-20)..tension 1.8
+ ..(-20,-36)..tension 0.8..(-25,-40)..tension 1.5
+ ..(-76,-38)..{curl 0.9}(-100,-30)..tension 0.8
+ ..(-102,-30)..tension 2..(-128,-57)..tension 0.8
+ ..(-127,-62){curl 0.8} % left lower bar
+ ..(-115,-65)..(-96,-60)..tension 2..(-56,-54)..tension 2
+ ..(-26,-54)..tension 0.8..(-20,-57)..tension 3
+ ..(-20,-82)--(-21,-100)..tension 3..(0,-111)..tension 2
+ ..cycle;
+ filldraw (47,41)..tension 0.8..(45,46)--(16,45)..tension 0.8
+ ..(14,40)..tension 0.8..(16,32)--(45,32)..tension 0.8..cycle;
+ filldraw (47,10)..tension 0.8..(45,18)--(16,18)..tension 0.8
+ ..(14,12)..tension 0.8..(16,2)--(46,2)..tension 0.8..cycle;
+ filldraw (-21,37)..tension 0.8..(-23,45)--(-54,46)..tension 0.8
+ ..(-58,38)..tension 0.8..(-56,31)--(-22,32)..tension 0.8..cycle;
+ filldraw (-22,13)..tension 0.8..(-24,18)--(-57,18)..tension 0.8
+ ..(-58,13)..tension 0.8..(-55,2)--(-23,3)..tension 0.8..cycle;
+endchar;
+
+beginchar ("r",max_diametre#,max_rayon#,max_rayon#); "char rouge/red rook";
+ BaseBlanche;
+ currenttransform := currenttransform shifted (4FS,0);
+ filldraw (4,-113)..tension 2..(12,-100)--(15,-70)
+ ..controls(13,-58) and (14,-55)
+ ..(25,-55)..(60,-55)..controls(80,-56)
+ ..(95,-59){curl0.5}..controls(102,-52)
+ ..(112,-47)..(115,-39){curl0.5} % right tip of lower hor-bar
+ ..(53,-40){left}..controls(13,-39)..(13,-22)..controls(13,-11)
+ ..(32,-11)..tension 1.5..(51,-12)..tension 1.5
+ ..(68,-12)..tension 0.8..(72,-8)..tension 1.5 % bot right of box
+ ..(71,-1)..tension 2..(72,43)..tension 3
+ ..(75,51)..tension 3 % top right of box
+ ..(60,70)..tension 3..(42,63)..tension 2..(21,61)..controls(15,61)
+ ..(15,75)..{curl 0.2}(16,83){curl 0.2}
+ ..(25,84)..(72,81){curl0.7}..tension 2..(86,100)..tension 1.5
+ ..(82,107){curl0.2}..tension 0.8..(78,108){curl0.2}..tension 2
+ ..(50,103)..{curl0}(20,101)..(15,102){curl0.3}..tension 0.8
+ ..(13,110)..(6,124)..(-4,127){left}..(-15,123)
+ ..(-19,111)..(-21,104){curl 0.8}..(-26,102)..tension 1.5
+ ..(-50,102)..tension 1.5..(-66,109)..tension 2.5
+ ..(-95,92)..tension 0.8..(-92,82)..controls(-50,83)
+ ..(-25,83)..tension 0.8 ..(-20,78)..tension 1.5
+ ..(-21,65)..tension 0.8..(-25,61)..tension 2
+ ..(-55,60)..tension 1.7..(-70,65)..tension 2 % top left of box
+ ..(-85,51)..tension 2..(-83,43)..tension 2
+ ..(-84,-1)..(-74,-15)..tension 1.5..(-46,-13)..tension 2
+ ..(-24,-13)..tension 0.8..(-20,-20)..tension 1.8
+ ..(-20,-36)..tension 0.8..(-25,-40)..tension 1.5
+ ..(-76,-38)..{curl 0.9}(-100,-30)..tension 0.8
+ ..(-102,-30)..tension 2..(-128,-57)..tension 0.8
+ ..(-127,-62){curl 0.8} % left lower bar
+ ..(-115,-65)..(-96,-60)..tension 2..(-56,-54)..tension 2
+ ..(-26,-54)..tension 0.8..(-20,-57)..tension 3
+ ..(-20,-82)--(-21,-100)..tension 3..(0,-111)..tension 2
+ ..cycle;
+ unfilldraw (47,41)..tension 0.8..(45,46)--(16,45)..tension 0.8
+ ..(14,40)..tension 0.8..(16,32)--(45,32)..tension 0.8..cycle;
+ unfilldraw (47,10)..tension 0.8..(45,18)--(16,18)..tension 0.8
+ ..(14,12)..tension 0.8..(16,2)--(46,2)..tension 0.8..cycle;
+ unfilldraw (-21,37)..tension 0.8..(-23,45)--(-54,46)..tension 0.8
+ ..(-58,38)..tension 0.8..(-56,31)--(-22,32)..tension 0.8..cycle;
+ unfilldraw (-22,13)..tension 0.8..(-24,18)--(-57,18)..tension 0.8
+ ..(-58,13)..tension 0.8..(-55,2)--(-23,3)..tension 0.8..cycle;
+endchar;
+
+beginchar ("W",max_diametre#,max_rayon#,max_rayon#); "char noir/black rook sur fond blanc";
+ BaseNoireBlanche;
+ currenttransform := currenttransform shifted (4FS,0);
+ filldraw (4,-113)..tension 2..(12,-100)--(15,-70)
+ ..controls(13,-58) and (14,-55)
+ ..(25,-55)..(60,-55)..controls(80,-56)
+ ..(95,-59){curl0.5}..controls(102,-52)
+ ..(112,-47)..(115,-39){curl0.5} % right tip of lower hor-bar
+ ..(53,-40){left}..controls(13,-39)..(13,-22)..controls(13,-11)
+ ..(32,-11)..tension 1.5..(51,-12)..tension 1.5
+ ..(68,-12)..tension 0.8..(72,-8)..tension 1.5 % bot right of box
+ ..(71,-1)..tension 2..(72,43)..tension 3
+ ..(75,51)..tension 3 % top right of box
+ ..(60,70)..tension 3..(42,63)..tension 2..(21,61)..controls(15,61)
+ ..(15,75)..{curl 0.2}(16,83){curl 0.2}
+ ..(25,84)..(72,81){curl0.7}..tension 2..(86,100)..tension 1.5
+ ..(82,107){curl0.2}..tension 0.8..(78,108){curl0.2}..tension 2
+ ..(50,103)..{curl0}(20,101)..(15,102){curl0.3}..tension 0.8
+ ..(13,110)..(6,124)..(-4,127){left}..(-15,123)
+ ..(-19,111)..(-21,104){curl 0.8}..(-26,102)..tension 1.5
+ ..(-50,102)..tension 1.5..(-66,109)..tension 2.5
+ ..(-95,92)..tension 0.8..(-92,82)..controls(-50,83)
+ ..(-25,83)..tension 0.8 ..(-20,78)..tension 1.5
+ ..(-21,65)..tension 0.8..(-25,61)..tension 2
+ ..(-55,60)..tension 1.7..(-70,65)..tension 2 % top left of box
+ ..(-85,51)..tension 2..(-83,43)..tension 2
+ ..(-84,-1)..(-74,-15)..tension 1.5..(-46,-13)..tension 2
+ ..(-24,-13)..tension 0.8..(-20,-20)..tension 1.8
+ ..(-20,-36)..tension 0.8..(-25,-40)..tension 1.5
+ ..(-76,-38)..{curl 0.9}(-100,-30)..tension 0.8
+ ..(-102,-30)..tension 2..(-128,-57)..tension 0.8
+ ..(-127,-62){curl 0.8} % left lower bar
+ ..(-115,-65)..(-96,-60)..tension 2..(-56,-54)..tension 2
+ ..(-26,-54)..tension 0.8..(-20,-57)..tension 3
+ ..(-20,-82)--(-21,-100)..tension 3..(0,-111)..tension 2
+ ..cycle;
+ unfilldraw (47,41)..tension 0.8..(45,46)--(16,45)..tension 0.8
+ ..(14,40)..tension 0.8..(16,32)--(45,32)..tension 0.8..cycle;
+ unfilldraw (47,10)..tension 0.8..(45,18)--(16,18)..tension 0.8
+ ..(14,12)..tension 0.8..(16,2)--(46,2)..tension 0.8..cycle;
+ unfilldraw (-21,37)..tension 0.8..(-23,45)--(-54,46)..tension 0.8
+ ..(-58,38)..tension 0.8..(-56,31)--(-22,32)..tension 0.8..cycle;
+ unfilldraw (-22,13)..tension 0.8..(-24,18)--(-57,18)..tension 0.8
+ ..(-58,13)..tension 0.8..(-55,2)--(-23,3)..tension 0.8..cycle;
+endchar;
+
+beginchar ("C",max_diametre#,max_rayon#,max_rayon#); "canon noir/black cannon";
+ BaseNoire;
+ unfilldraw (-16,-24){curl0.2}..(-12,-10)..tension 1.3 ..(-10,20)..tension 1.3
+ ..(-9,28)..tension 1.5..(0,45)..tension 1.5..(10,56)..tension 1.2
+ ..(19,60)..tension 1.2..(50,64)..tension 1.2..(72,63)..tension 0.8
+ ..(77,54)..tension 1.2..(79,30)..tension 1.2..{curl 0.1}(81,-16){curl 0.1}
+ ..{curl 0.1}(92,-19){curl 0.7}..tension 1.5..(105,-6)..(109,9)..tension 1.5
+ ..(110,50)..tension 1.2..{up}(112,70){curl 0.5}..tension 1.2
+ ..(105,94)..tension 0.8..(100,99){left}..tension 0.8..(92,96)
+ ..(77,87)..tension 1.2..(40,81){left}..tension 0.8..(30,90)
+ --(30,109)..tension 1.1..(25,125)..(16,129)..(2,122)..tension 1.1
+ ..(0,110)..(-3,84)..(-6,66)..tension 0.8..(-17,61)..(-26,63)..(-35,60)..tension 1.2
+ ..(-39,43){down}..(-37,36) ..(-33,20)..(-31,0)..(-32,-12){curl 0.2}..tension 1.5
+ ..{curl 0.7}cycle;
+ unfilldraw (138,-10)..tension 1.1..(100,-46)..(81,-57)..(70,-60)
+ ..(60,-58)..(33,-51)..(20,-40)..(17,-27){curl 0.8}..tension 1.5
+ ..(58,-18)..tension 0.8..(62,-15){curl 0.9}..tension 1.1
+ ..(62,14)..tension 1.5..(61,37)..tension 0.8..(56,43)..tension 1.6
+ ..(34,43)..tension 1.6..{curl 0.8}(12,38)..tension 1.5
+ ..{curl 0.8}(2,28)..tension 1.8..(-1,-40)..tension 1.1..(10,-66)..tension 1.1
+ ..(50,-87)..tension 1.1..(81,-90){right}..tension 1.1..(110,-86)..tension 0.8
+ ..(122,-76)..tension 1.1..(135,-50)..tension 0.8
+ ..{curl 0.9}cycle;
+ filldraw (18,-3)..tension 4..(43,2)..tension 4..(42,21)..tension 4..(20,18)..tension 4
+ ..cycle;
+ unfilldraw (-50,24){up}..(-48,56)..(-46,82)..(-44,98){up} ..(-49,114)..tension 0.9
+ ..(-56,123)..tension 0.8..(-64,122)..tension 1.5..(-75,112)..tension 1.5
+ ..(-81,98){down}..tension 1.3..(-77,88)..(-72,65)..(-69,21){down}
+ ..(-70,0)..(-75,-17)..tension 1.5..(-88,-40)..tension 1.5..(-112,-60)..tension 0.8
+ ..(-117,-73)..tension 0.8..(-106,-88)..(-87,-85)..tension 1.5
+ ..(-70,-70)..(-65,-58)..{curl 0.9}(-58,-36)..tension 2..(-44,-55)..tension 2
+ ..{curl 0.9}(-32,-76)--(-16,-72)..(-15,-61)..(-23,-44)..tension 1.5
+ ..(-43,-13)..(-49,4)
+ ..cycle;
+ unfilldraw (-85,34)..tension 1.7..(-95,65)..tension 0.8..(-106,65)..tension 1.8
+ ..(-114,55)..tension 0.8..(-113,46)..tension 1.5..(-106,20)..tension 1.5
+ ..(-109,-8)..tension 0.8..(-107,-16)..tension 1.5..(-101,-27)..tension 0.8
+ ..(-94,-26)..(-90,-16)..(-88,10)..(-85,23)..tension 0.8
+ ..cycle;
+endchar;
+
+beginchar ("c",max_diametre#,max_rayon#,max_rayon#); "canon rouge/red cannon";
+ BaseBlanche;
+ filldraw (-16,-24){curl0.2}..(-12,-10)..tension 1.3 ..(-10,20)..tension 1.3
+ ..(-9,28)..tension 1.5..(0,45)..tension 1.5..(10,56)..tension 1.2
+ ..(19,60)..tension 1.2..(50,64)..tension 1.2..(72,63)..tension 0.8
+ ..(77,54)..tension 1.2..(79,30)..tension 1.2..{curl 0.1}(81,-16){curl 0.1}
+ ..{curl 0.1}(92,-19){curl 0.7}..tension 1.5..(105,-6)..(109,9)..tension 1.5
+ ..(110,50)..tension 1.2..{up}(112,70){curl 0.5}..tension 1.2
+ ..(105,94)..tension 0.8..(100,99){left}..tension 0.8..(92,96)
+ ..(77,87)..tension 1.2..(40,81){left}..tension 0.8..(30,90)
+ --(30,109)..tension 1.1..(25,125)..(16,129)..(2,122)..tension 1.1
+ ..(0,110)..(-3,84)..(-6,66)..tension 0.8..(-17,61)..(-26,63)..(-35,60)..tension 1.2
+ ..(-39,43){down}..(-37,36) ..(-33,20)..(-31,0)..(-32,-12){curl 0.2}..tension 1.5
+ ..{curl 0.7}cycle;
+ filldraw (138,-10)..tension 1.1..(100,-46)..(81,-57)..(70,-60)
+ ..(60,-58)..(33,-51)..(20,-40)..(17,-27){curl 0.8}..tension 1.5
+ ..(58,-18)..tension 0.8..(62,-15){curl 0.9}..tension 1.1
+ ..(62,14)..tension 1.5..(61,37)..tension 0.8..(56,43)..tension 1.6
+ ..(34,43)..tension 1.6..{curl 0.8}(12,38)..tension 1.5
+ ..{curl 0.8}(2,28)..tension 1.8..(-1,-40)..tension 1.1..(10,-66)..tension 1.1
+ ..(50,-87)..tension 1.1..(81,-90){right}..tension 1.1..(110,-86)..tension 0.8
+ ..(122,-76)..tension 1.1..(135,-50)..tension 0.8
+ ..{curl 0.9}cycle;
+ unfilldraw (18,-3)..tension 4..(43,2)..tension 4..(42,21)..tension 4..(20,18)..tension 4
+ ..cycle;
+ filldraw (-50,24){up}..(-48,56)..(-46,82)..(-44,98){up} ..(-49,114)..tension 0.9
+ ..(-56,123)..tension 0.8..(-64,122)..tension 1.5..(-75,112)..tension 1.5
+ ..(-81,98){down}..tension 1.3..(-77,88)..(-72,65)..(-69,21){down}
+ ..(-70,0)..(-75,-17)..tension 1.5..(-88,-40)..tension 1.5..(-112,-60)..tension 0.8
+ ..(-117,-73)..tension 0.8..(-106,-88)..(-87,-85)..tension 1.5
+ ..(-70,-70)..(-65,-58)..{curl 0.9}(-58,-36)..tension 2..(-44,-55)..tension 2
+ ..{curl 0.9}(-32,-76)--(-16,-72)..(-15,-61)..(-23,-44)..tension 1.5
+ ..(-43,-13)..(-49,4)
+ ..cycle;
+ filldraw (-85,34)..tension 1.7..(-95,65)..tension 0.8..(-106,65)..tension 1.8
+ ..(-114,55)..tension 0.8..(-113,46)..tension 1.5..(-106,20)..tension 1.5
+ ..(-109,-8)..tension 0.8..(-107,-16)..tension 1.5..(-101,-27)..tension 0.8
+ ..(-94,-26)..(-90,-16)..(-88,10)..(-85,23)..tension 0.8
+ ..cycle;
+endchar;
+
+beginchar ("X",max_diametre#,max_rayon#,max_rayon#); "canon noir/black cannon sur fond blanc";
+ BaseNoireBlanche;
+ filldraw (-16,-24){curl0.2}..(-12,-10)..tension 1.3 ..(-10,20)..tension 1.3
+ ..(-9,28)..tension 1.5..(0,45)..tension 1.5..(10,56)..tension 1.2
+ ..(19,60)..tension 1.2..(50,64)..tension 1.2..(72,63)..tension 0.8
+ ..(77,54)..tension 1.2..(79,30)..tension 1.2..{curl 0.1}(81,-16){curl 0.1}
+ ..{curl 0.1}(92,-19){curl 0.7}..tension 1.5..(105,-6)..(109,9)..tension 1.5
+ ..(110,50)..tension 1.2..{up}(112,70){curl 0.5}..tension 1.2
+ ..(105,94)..tension 0.8..(100,99){left}..tension 0.8..(92,96)
+ ..(77,87)..tension 1.2..(40,81){left}..tension 0.8..(30,90)
+ --(30,109)..tension 1.1..(25,125)..(16,129)..(2,122)..tension 1.1
+ ..(0,110)..(-3,84)..(-6,66)..tension 0.8..(-17,61)..(-26,63)..(-35,60)..tension 1.2
+ ..(-39,43){down}..(-37,36) ..(-33,20)..(-31,0)..(-32,-12){curl 0.2}..tension 1.5
+ ..{curl 0.7}cycle;
+ filldraw (138,-10)..tension 1.1..(100,-46)..(81,-57)..(70,-60)
+ ..(60,-58)..(33,-51)..(20,-40)..(17,-27){curl 0.8}..tension 1.5
+ ..(58,-18)..tension 0.8..(62,-15){curl 0.9}..tension 1.1
+ ..(62,14)..tension 1.5..(61,37)..tension 0.8..(56,43)..tension 1.6
+ ..(34,43)..tension 1.6..{curl 0.8}(12,38)..tension 1.5
+ ..{curl 0.8}(2,28)..tension 1.8..(-1,-40)..tension 1.1..(10,-66)..tension 1.1
+ ..(50,-87)..tension 1.1..(81,-90){right}..tension 1.1..(110,-86)..tension 0.8
+ ..(122,-76)..tension 1.1..(135,-50)..tension 0.8
+ ..{curl 0.9}cycle;
+ unfilldraw (18,-3)..tension 4..(43,2)..tension 4..(42,21)..tension 4..(20,18)..tension 4
+ ..cycle;
+ filldraw (-50,24){up}..(-48,56)..(-46,82)..(-44,98){up} ..(-49,114)..tension 0.9
+ ..(-56,123)..tension 0.8..(-64,122)..tension 1.5..(-75,112)..tension 1.5
+ ..(-81,98){down}..tension 1.3..(-77,88)..(-72,65)..(-69,21){down}
+ ..(-70,0)..(-75,-17)..tension 1.5..(-88,-40)..tension 1.5..(-112,-60)..tension 0.8
+ ..(-117,-73)..tension 0.8..(-106,-88)..(-87,-85)..tension 1.5
+ ..(-70,-70)..(-65,-58)..{curl 0.9}(-58,-36)..tension 2..(-44,-55)..tension 2
+ ..{curl 0.9}(-32,-76)--(-16,-72)..(-15,-61)..(-23,-44)..tension 1.5
+ ..(-43,-13)..(-49,4)
+ ..cycle;
+ filldraw (-85,34)..tension 1.7..(-95,65)..tension 0.8..(-106,65)..tension 1.8
+ ..(-114,55)..tension 0.8..(-113,46)..tension 1.5..(-106,20)..tension 1.5
+ ..(-109,-8)..tension 0.8..(-107,-16)..tension 1.5..(-101,-27)..tension 0.8
+ ..(-94,-26)..(-90,-16)..(-88,10)..(-85,23)..tension 0.8
+ ..cycle;
+endchar;
+
+beginchar ("P",max_diametre#,max_rayon#,max_rayon#) "pion noir/black pawn";
+ BaseNoire;
+ unfilldraw (-12,-117)..tension 3
+ ..(10,-105)
+ ..(16,-96)
+ ..(21,-78)..tension 3
+ ..(23,-41)..tension 0.8
+ ..(40,-30)..tension 2
+ ..(85,-33)..tension 2
+ ..(112,-38)..tension 4
+ ..(139,-9)
+ ..{left}(115,-4)
+ ..(65,-7){left}..tension 2
+ ..(-50,-10)..tension 2
+ ..(-80,-9)..controls(-102,-7)
+ ..(-112,-2)..tension 10
+ ..(-131,-40){dir -5}%..tension 2
+ ..(-100,-35)..tension 2
+ ..(-37,-32)..tension 0.8
+ ..(-24,-43)..tension 2
+ ..(-24,-75)
+ ..{curl 2}cycle;
+ unfilldraw (-2,16){dir -125}
+ ..(-41,-17)
+ --(37,-17)
+ ..{curl 0}cycle;
+% fin de la croix du bas
+
+% debut du chapeau du haut
+ unfilldraw (90,70)
+ --(110,95)..tension0.8
+ ..(103,102)..tension 2
+ ..(87,92)..tension 2
+ ..(45,96)..tension0.8
+ ..(38,100)
+ ---(20,126)..controls(3,120.5)
+ ..(-10,118)
+ --(-18,102)..tension 2
+ ..(-35,99.5){left}..tension 2
+ ..(-74,103){curl 2}..tension 3
+ ..(-92,79)..tension 0.8
+ ..(-90,75)..tension 3
+ ..(-60,78)..tension 2
+ ..(-33,79)..tension 2
+ ..(25,78)
+ ..cycle; % fin du chapeau
+
+% petit morceau de droite
+ unfilldraw (93,10)
+ ---(111,12)
+ ---(113,30)
+ ---(80,48)
+ ---(50,65)
+ ---(42,63)
+ ---(42,61)..tension 10
+ ..(31,48)..tension 10
+ ..(5,24)
+ ---(17,18)
+ ..(28,19)
+ ---(52,42)..tension 3
+ ..(75,26)..tension 3
+ ..cycle;
+
+% petit morceau de gauche
+ unfilldraw (-5,33)
+ ---(-34,54)
+ ---(-46,66)..tension 2.5
+ ..flex((-68,64),(-57,50),(-28,26),(-20,19))
+ ..tension 3..cycle;
+ unfilldraw (-40,40)
+ ---(-55,53)---(-90,30)..tension 3
+ ..(-106,20)..tension 0.8
+ ..(-110,10)..controls(-97,5)
+ ..(-88,7)..controls(-64,24)
+ ..cycle;
+endchar;
+
+beginchar ("p",max_diametre#,max_rayon#,max_rayon#); "pion rouge/red pawn";
+ BaseBlanche;
+% Grande barre horizontale
+ filldraw (107,-17)..tension 2
+ ..(120,-3)..tension 1.1..(117,7)
+ &flex((117,7),(46,2),
+ (-1,10),(-67,8),(-103,14))
+ ..tension 0.8..(-112,13)
+ ---(-127,-8)..(-124,-17)..(-111,-22)
+ &flex((-111,-22),(-15,-11),
+ (95,-20))..tension 0.8
+ ..cycle;
+
+% Section gauche et du haut
+ filldraw (-50,0)..tension 1.5
+ ..(-45,43)..tension 1.5
+ ..(-43,76)..tension 0.9
+ ..(-37,83)..tension 1.8
+ ..(10,88)..tension 1.8
+ ..(53,87)%..controls(60,86)
+ ..(70,89)
+ ..(81,99)..tension 0.8
+ ..(81,104)..tension 1.1
+ ..(72,110)..tension 0.8
+ ..(64,110)%..tension 1.1
+ ..(37,106)
+ ..{left}(-6,104)
+ ..{curl 1.2}(-50,109)..tension 4
+ ..(-71,92)..tension 3
+ ..(-70,42){down}
+ ..(-78,0)
+ --cycle;
+
+% Petite barre horizontale centrale
+ filldraw (-60,40)..tension 1.5
+ ..{right}(-2,47)..tension 1.5
+ ..(52,42)..tension 0.9
+ ..(67,44)..tension 1.5
+ ..(82,62)..tension 0.8
+ ..(77,67)..tension 1.5
+ ..(42,64)..(0,64)
+ ..(-58,65)
+ --cycle;
+
+% Petite barre verticale centrale
+ filldraw (27,0)
+ --(25,54)--(-3,54)
+ ..controls(2,24)..(0,0)
+ --cycle;
+
+% patte de gauche
+ filldraw (-56,-28)..tension 3
+ ..(-80,-50)..tension 3
+ ..(-110,-72)..(-116,-84)
+ ..(-104,-86)..tension 2.5
+ ..(-37,-52)..(-31,-46)
+ ..(-28,-38)..tension 0.9
+ ..(-30,-30)..tension 1.6
+ ..(-46,-24)..tension 0.8
+ ..cycle;
+
+% patte de droite
+ filldraw (100,-66)
+ ..controls(92,-60)
+ ..(72,-46)..tension 3
+ ..(48,-29)
+ ..(35,-27)
+ ..(18,-31)
+ ..(15,-40)
+ ..(20,-51){curl 1}..tension 1.5
+ ..(62,-63)..tension 1.5
+ ..(93,-76)..tension 0.8
+ ..cycle;
+endchar;
+
+beginchar ("Y",max_diametre#,max_rayon#,max_rayon#); "pion noir/black pawn sur fond blanc";
+ BaseNoireBlanche;
+ filldraw (-12,-117)..tension 3
+ ..(10,-105)
+ ..(16,-96)
+ ..(21,-78)..tension 3
+ ..(23,-41)..tension 0.8
+ ..(40,-30)..tension 2
+ ..(85,-33)..tension 2
+ ..(112,-38)..tension 4
+ ..(139,-9)
+ ..{left}(115,-4)
+ ..(65,-7){left}..tension 2
+ ..(-50,-10)..tension 2
+ ..(-80,-9)..controls(-102,-7)
+ ..(-112,-2)..tension 10
+ ..(-131,-40){dir -5}%..tension 2
+ ..(-100,-35)..tension 2
+ ..(-37,-32)..tension 0.8
+ ..(-24,-43)..tension 2
+ ..(-24,-75)
+ ..{curl 2}cycle;
+ filldraw (-2,16){dir -125}
+ ..(-41,-17)
+ --(37,-17)
+ ..{curl 0}cycle;
+% fin de la croix du bas
+
+% debut du chapeau du haut
+ filldraw (90,70)
+ --(110,95)..tension0.8
+ ..(103,102)..tension 2
+ ..(87,92)..tension 2
+ ..(45,96)..tension0.8
+ ..(38,100)
+ ---(20,126)..controls(3,120.5)
+ ..(-10,118)
+ --(-18,102)..tension 2
+ ..(-35,99.5){left}..tension 2
+ ..(-74,103){curl 2}..tension 3
+ ..(-92,79)..tension 0.8
+ ..(-90,75)..tension 3
+ ..(-60,78)..tension 2
+ ..(-33,79)..tension 2
+ ..(25,78)
+ ..cycle; % fin du chapeau
+
+% petit morceau de droite
+ filldraw (93,10)
+ ---(111,12)
+ ---(113,30)
+ ---(80,48)
+ ---(50,65)
+ ---(42,63)
+ ---(42,61)..tension 10
+ ..(31,48)..tension 10
+ ..(5,24)
+ ---(17,18)
+ ..(28,19)
+ ---(52,42)..tension 3
+ ..(75,26)..tension 3
+ ..cycle;
+
+% petit morceau de gauche
+ filldraw (-5,33)
+ ---(-34,54)
+ ---(-46,66)..tension 2.5
+ ..flex((-68,64),(-57,50),(-28,26),(-20,19))
+ ..tension 3..cycle;
+ filldraw (-40,40)
+ ---(-55,53)---(-90,30)..tension 3
+ ..(-106,20)..tension 0.8
+ ..(-110,10)..controls(-97,5)
+ ..(-88,7)..controls(-64,24)
+ ..cycle;
+endchar;
+
+%----------------------------------------------------------
+designsize:=FontSize;
+font_coding_scheme:="Special graphics";
+font_size=FontSize;
+font_slant:=0.00;
+font_normal_space:=max_diametre#;
+font_quad:=max_diametre#;
+font_normal_stretch:=max_rayon#;
+font_normal_shrink:=0.7*max_rayon#;
+font_x_height max_rayon#; % l'usager pourra utiliser cette valeur
+ % pour positionner les caracteres.
+ % elle donne la position du centre par rapport au
+ % coin inferieur gauche.
+bye.