From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/cchess/cchess.sty | 163 ++++ macros/latex/contrib/cchess/cchess46.mf | 3 + macros/latex/contrib/cchess/cchess46.tfm | Bin 0 -> 416 bytes macros/latex/contrib/cchess/cchessboard.tex | 257 ++++++ macros/latex/contrib/cchess/ccpieces.mf | 1173 +++++++++++++++++++++++++++ 5 files changed, 1596 insertions(+) create mode 100644 macros/latex/contrib/cchess/cchess.sty create mode 100644 macros/latex/contrib/cchess/cchess46.mf create mode 100644 macros/latex/contrib/cchess/cchess46.tfm create mode 100644 macros/latex/contrib/cchess/cchessboard.tex create mode 100644 macros/latex/contrib/cchess/ccpieces.mf (limited to 'macros/latex/contrib/cchess') diff --git a/macros/latex/contrib/cchess/cchess.sty b/macros/latex/contrib/cchess/cchess.sty new file mode 100644 index 0000000000..e36c2be3dc --- /dev/null +++ b/macros/latex/contrib/cchess/cchess.sty @@ -0,0 +1,163 @@ +% +% Most of the code in this package was literally copied from the example +% file cchessboard.tex provided with the cchess46.mf font designed by +% Jacques Richer (see cchessboard.tex for details) +% +% i only added the following: +% +% position environment +% +% \smallboard \normalboard \largeboard +% +% \textpiece (for setting a piece in running text) +% +% in addition i changed the \piece command so that the first arg takes letters +% eg a position on the board is described by +% +% \piece{a}{1}{r} rather than \piece{1}{1}{r} +% +% (this is like the notation of chess and that's the way i know chinese chess +% notation) +% +% enjoy +% +% Frank Mittelbach 96/12/28 +% +% below is an example ... +% +% \smallboard +% \begin{position} +% \piece{a}{1}{r} \piece{i}{1}{r} +% \piece{b}{1}{n} \piece{h}{1}{n} +% \piece{c}{1}{b} \piece{g}{1}{b} +% \piece{d}{1}{g} \piece{f}{1}{g} +% \piece{e}{5}{c} \piece{e}{7}{c} +% \piece{a}{4}{p} \piece{c}{4}{p} +% \piece{e}{4}{p} \piece{g}{4}{p} +% \piece{i}{4}{p} \piece{e}{1}{k} +% \piece{a}{9}{R} \piece{i}{10}{R} +% \piece{a}{8}{N} \piece{g}{8}{N} +% \piece{c}{10}{B} \piece{g}{10}{B} +% \piece{d}{10}{G} \piece{f}{10}{G} +% \piece{b}{8}{C} \piece{h}{8}{C} +% \piece{a}{7}{P} \piece{c}{7}{P} +% \piece{g}{7}{P} +% \piece{i}{7}{P} \piece{e}{10}{K} +% \end{position} +% +% ---------------------------------------------------------- +% +\ProvidesPackage{cchess} + [1996/12/28 v1.0b chinese chess support (FMi/SPQR)] +% +% + +\newcounter{piecex}\newcounter{piecey} + + +\newcommand\largeboard{% +% The 3 dimensions in this command must be proportionnal to each other +% \cchessunit is the edge size of individual squares on the board, +% in centimeters. + \def\cchessunit{2.2}% + \font\EchecsChinois cchess46\relax +} +\newcommand\normalboard{% +% The 3 dimensions in this command must be proportionnal to each other + \def\cchessunit{1.1}% + \font\EchecsChinois cchess46 at 23pt\relax +} +\newcommand\smallboard{% +% The 3 dimensions in this command must be proportionnal to each other + \def\cchessunit{0.55}% + \font\EchecsChinois cchess46 at 12pt\relax +} +% It would be preferable to replace the set \largeboard, \normalboard, \smallboard +% by a single command with one argument, the edge size of the board, say. + + +\normalboard + +\newcommand{\piece}[3]{% macro pour afficher une piece +%FMi dirty trick + \setcounter{piecex}{\expandafter`\csname#1\endcsname}% + \addtocounter{piecex}{-97}% ascii value of `a' + \setcounter{piecey}{#2}\addtocounter{piecey}{-1}% + \setbox0=\hbox{\EchecsChinois #3}% +% work out a masking circle by getting the width of the piece and +% drawing a white circle of that diameter; the units here are +% plain PS but if we convert to bp, we get the right result. + \@tempdima\wd0\@tempdimc1bp\divide\@tempdima\@tempdimc + \put(\value{piecex},\value{piecey}){\special{" + [] 0 setdash 0 setlinejoin 0 setlinecap + 0.95 setgray + newpath 0. 0. \number\@tempdima\space 2 div 0 360. arc closepath fill}}% + \put(\value{piecex},\value{piecey})% + {\kern-0.5\wd0\box0}% +} + +% font for stones in text (this is rather experimental) + +\font\CCH=cchess46 scaled 300\relax +\newcommand\textpiece[1]{\raisebox{3pt}[16pt]{\makebox[30pt][c]{\CCH #1}}} + + +\newsavebox{\Something}% +\newsavebox{\SW}\newsavebox{\SE}\newsavebox{\NE}\newsavebox{\NW}% + +\newenvironment{position} + {% + \setlength{\unitlength}{\cchessunit cm}% + \begin{picture}(9.1,10.1)(-0.6,-0.5)% + \put(0,0){\framebox(8,9){}}% + \put(-0.05,-0.05){\framebox(8.1,9.1){}}% + % + \savebox{\Something}(8,1)[bl]{% + \multiput(0,0)(1,0){8}{\framebox(1,1){}}}% + % + \multiput(0,0)(0,1){4}{\usebox{\Something}}% + \multiput(0,5)(0,1){4}{\usebox{\Something}}% + % + \savebox{\SW}(1,1)[bl]{% + \put(0.1,0.1){\line(1,0){0.2}}\put(0.1,0.1){\line(0,1){0.2}}}% + \savebox{\SE}(1,1)[bl]{% + \put(0.9,0.1){\line(-1,0){0.2}}\put(0.9,0.1){\line(0,1){0.2}}}% + \savebox{\NE}(1,1)[bl]{% + \put(0.9,0.9){\line(-1,0){0.2}}\put(0.9,0.9){\line(0,-1){0.2}}}% + \savebox{\NW}(1,1)[bl]{% + \put(0.1,0.9){\line(1,0){0.2}}\put(0.1,0.9){\line(0,-1){0.2}}}% + % On va commencer par faire les "croix" completes + \savebox{\Something}(2,2)[bl]{% + \put(0,0){\usebox{\NE}}\put(1,0){\usebox{\NW}}\put(1,1){\usebox{\SW}}\put(0,1){\usebox{\SE}}}% + % + \put(0,1){\usebox{\Something}}% + \put(6,1){\usebox{\Something}}% + \put(1,2){\usebox{\Something}}% + \put(3,2){\usebox{\Something}}% + \put(5,2){\usebox{\Something}}% + % + \put(0,6){\usebox{\Something}}% + \put(6,6){\usebox{\Something}}% + \put(1,5){\usebox{\Something}}% + \put(3,5){\usebox{\Something}}% + \put(5,5){\usebox{\Something}}% + % Maintenant les demi-croix gauches + \savebox{\Something}(1,2)[bl]{% + \put(0,0){\usebox{\NW}}\put(0,1){\usebox{\SW}}}% + \put(0,2){\usebox{\Something}}% + \put(0,5){\usebox{\Something}}% + % ...les demi-croix droites + \savebox{\Something}(1,2)[bl]{% + \put(0,0){\usebox{\NE}}\put(0,1){\usebox{\SE}}}% + \put(7,2){\usebox{\Something}}% + \put(7,5){\usebox{\Something}}% + % + % et pour finir, les camps des generaux: + \savebox{\Something}(2,2)[bl]{% + \put(0,0){\line(1,1){2}}% La "longueur" a fournir est celle de la projection horizontale + \put(2,0){\line(-1,1){2}}}% + \put(3,0){\usebox{\Something}}% + \put(3,7){\usebox{\Something}}% +}{\end{picture}} + +\endinput diff --git a/macros/latex/contrib/cchess/cchess46.mf b/macros/latex/contrib/cchess/cchess46.mf new file mode 100644 index 0000000000..e974fe0231 --- /dev/null +++ b/macros/latex/contrib/cchess/cchess46.mf @@ -0,0 +1,3 @@ +FontSize := 46pt#; +font_identifier:="cchess46"; +input ccpieces; end. diff --git a/macros/latex/contrib/cchess/cchess46.tfm b/macros/latex/contrib/cchess/cchess46.tfm new file mode 100644 index 0000000000..1494eb33c8 Binary files /dev/null and b/macros/latex/contrib/cchess/cchess46.tfm differ diff --git a/macros/latex/contrib/cchess/cchessboard.tex b/macros/latex/contrib/cchess/cchessboard.tex new file mode 100644 index 0000000000..539fc2e923 --- /dev/null +++ b/macros/latex/contrib/cchess/cchessboard.tex @@ -0,0 +1,257 @@ +\documentstyle{article} +% cchessboard.tex +% +% papier 8.5in x 11in = 21.59cm x 27.94cm +% dessin 17.6cm x 19.8cm +%\hoffset=-0.545cm% devrait etre la bonne valeur, mais...!?? +\hoffset=-1.545cm + +\setlength{\textwidth}{20cm}\setlength{\textheight}{22cm} +\setlength{\oddsidemargin}{0cm}\setlength{\evensidemargin}{0cm} +\setlength{\topmargin}{0cm}\setlength{\headheight}{0cm} + +% If the font size is changed, the macro WhiteMask must also be changed +\newfont{\EchecsChinois}{cchess46} +\newcounter{piecex}\newcounter{piecey} + +\special{! /WhiteMask + { + gsave + [] 0 setdash 0 setlinejoin 0 setlinecap +% the gray level could be changed to 0.95, for light gray pieces that stand out +% better on a white board. Here, it is set to full white (0.0 is full black). + 1.0 setgray +% Here, the 102 was determined by trial and error. Must find an algebraic way to fix it! +% that's the radius of the masking circle. + 102 dup scale + currentpoint translate newpath 0. 0. 1. 0. 360. arc closepath fill + grestore + } def } + +\newcommand{\piece}[3]{% macro pour afficher une piece +\setcounter{piecex}{#1}\addtocounter{piecex}{-1}% +\setcounter{piecey}{#2}\addtocounter{piecey}{-1}% +\put(\value{piecex},\value{piecey}){\special{" grestore WhiteMask gsave}}% +\put(\value{piecex},\value{piecey})% +{\setbox0=\hbox{\EchecsChinois #3}\kern-0.5\wd0\box0}% +} + +\begin{document} +\thispagestyle{empty} +\begin{center} +\setlength{\unitlength}{2.2cm}% +\begin{picture}(8.1,9.1)% +\put(0,0){\framebox(8,9){}}% +\put(-0.05,-0.05){\framebox(8.1,9.1){}}% +% +\newsavebox{\Something}% +\savebox{\Something}(8,1)[bl]{% +\multiput(0,0)(1,0){8}{\framebox(1,1){}}}% +% +\multiput(0,0)(0,1){4}{\usebox{\Something}}% +\multiput(0,5)(0,1){4}{\usebox{\Something}}% +% +\newsavebox{\SW}\newsavebox{\SE}\newsavebox{\NE}\newsavebox{\NW}% +\savebox{\SW}(1,1)[bl]{% +\put(0.1,0.1){\line(1,0){0.2}}\put(0.1,0.1){\line(0,1){0.2}}}% +\savebox{\SE}(1,1)[bl]{% +\put(0.9,0.1){\line(-1,0){0.2}}\put(0.9,0.1){\line(0,1){0.2}}}% +\savebox{\NE}(1,1)[bl]{% +\put(0.9,0.9){\line(-1,0){0.2}}\put(0.9,0.9){\line(0,-1){0.2}}}% +\savebox{\NW}(1,1)[bl]{% +\put(0.1,0.9){\line(1,0){0.2}}\put(0.1,0.9){\line(0,-1){0.2}}}% +% On va commencer par faire les "croix" completes +\savebox{\Something}(2,2)[bl]{% +\put(0,0){\usebox{\NE}}\put(1,0){\usebox{\NW}}\put(1,1){\usebox{\SW}}\put(0,1){\usebox{\SE}}}% +% +\put(0,1){\usebox{\Something}}% +\put(6,1){\usebox{\Something}}% +\put(1,2){\usebox{\Something}}% +\put(3,2){\usebox{\Something}}% +\put(5,2){\usebox{\Something}}% +% +\put(0,6){\usebox{\Something}}% +\put(6,6){\usebox{\Something}}% +\put(1,5){\usebox{\Something}}% +\put(3,5){\usebox{\Something}}% +\put(5,5){\usebox{\Something}}% +% Maintenant les demi-croix gauches +\savebox{\Something}(1,2)[bl]{% +\put(0,0){\usebox{\NW}}\put(0,1){\usebox{\SW}}}% +\put(0,2){\usebox{\Something}}% +\put(0,5){\usebox{\Something}}% +% ...les demi-croix droites +\savebox{\Something}(1,2)[bl]{% +\put(0,0){\usebox{\NE}}\put(0,1){\usebox{\SE}}}% +\put(7,2){\usebox{\Something}}% +\put(7,5){\usebox{\Something}}% +% +% et pour finir, les camps des generaux: +\savebox{\Something}(2,2)[bl]{% +\put(0,0){\line(1,1){2}}% La "longueur" a fournir est celle de la projection horizontale +\put(2,0){\line(-1,1){2}}}% +\put(3,0){\usebox{\Something}}% +\put(3,7){\usebox{\Something}}% +% +\piece{1}{1}{r}\piece{9}{1}{r}% +\piece{2}{1}{n}\piece{8}{1}{n}% +\piece{3}{1}{b}\piece{7}{1}{b}% +\piece{4}{1}{g}\piece{6}{1}{g}% +\piece{2}{3}{c}\piece{8}{3}{c}% +\piece{1}{4}{p}\piece{3}{4}{p}\piece{5}{4}{p}\piece{7}{4}{p}\piece{9}{4}{p}% +\piece{5}{1}{k}% +\piece{1}{10}{R}\piece{9}{10}{R}% +\piece{2}{10}{N}\piece{8}{10}{N}% +\piece{3}{10}{B}\piece{7}{10}{B}% +\piece{4}{10}{G}\piece{6}{10}{G}% +\piece{2}{8}{C}\piece{8}{8}{C}% +\piece{1}{7}{P}\piece{3}{7}{P}\piece{5}{7}{P}\piece{7}{7}{P}\piece{9}{7}{P}% +\piece{5}{10}{K}% +%\piece{4}{5}{0}\put(3.3,4.4){\large Masque}% +\end{picture} +\end{center} +\end{document} +cut here------8<---- cchess46.mf ----8<----------------------- +cut here------8<-----ccpieces.mf-----8<----------------------- +cut here------8<----------------------8<----------------------- +Over the last few months, I have spent several nights coding a Chinese +chess (xiangqi) font. I had a cheap chess set I bought in Montreal's +Chinatown a long time ago; +in spite of the fact that I only paid 1US$ for it, its pieces have a +nice pleasing look. So I have undertaken to reproduce it as faithfully as I +could. The set was made in (communist) China, and bears no copyright +mark of any kind; in the true communist spirit, I now distribute this font +to you, and hope no one will try to sue me for it! + +I tried to be true to the original design, although no two pieces of the same +kind really looked the same under close examination. I had to guess the +intent of the designer. The model pieces were made of pale wood, about 3/4" +in diameter, with etched characters painted red and dark green. + +This was my first serious METAFONT experience, and my lack of +experience can be seen transpiring throughout the code. The style of my +coding evolved slightly as I progressed but I could not afford to redo the +first pieces; so the code suffers from some inconsistency in style. I also +got a little tired in the end, and decided to cut short some +descriptions; for example, all corners of the earlier pieces are rounded to +various degrees. This was intentional: I wanted the font to look like +painted characters (on the real pieces, paint always produced rounded +corners, in spite of the etching). In the last pieces I coded, I used a few +overlapping paths, which produce sharper corners at intersection points. I +kept those to a minimum, using them only for brush strokes that are +clearly intersecting ones. + +I called the pieces RED and BLACK. The red pieces are generated as black +on a white background, inside a thin black circle. The black pieces are +generated as white on a black circular background, with a thin white +circle near the edge; these look like negatives of the original green pieces. + +For those who might prefer the look of pieces painted on a white +background (like in the original set), I added a modified copy of the black +pieces, in which they are generated as black on a white background, +surrounded by TWO circles; this gives the edge a much darker look, and +makes clear the distinction between black and red. These could be used to +produce colored pieces on a white background, and still be recognizable if +printed only in black and white. I recommend printing the whole font with +one of the =fonttable.tex= utilities. + +I also added two filled pieces that might be useful as masks. + +The encoding is a simple and natural one for the regular pieces, +using capital letters for BLACK, lowercase for RED; for the third set of +pieces (let's call it "alternate-black"), I had to use the remaining letters +of the alphabet; I opted for consecutive ones. Here they are, with some of +their common names: + + + K,k,S : king, general, + G,g,T : guard, assistant + B,b,U : bishop, elephant + N,n,V : knight,horse + R,r,W : rook, chariot, car + C,c,X : cannon, gun, gunner + P,p,Y : pawn, foot-soldier + + [J,0: masks (not part of the game)] + + + +BOARD DRAWING CODE: + +If used as ordinary letters in text, the circular pieces will be nearly +tangent to the baseline. I defined a macro to place them CENTERED at the +current point in a picture environment. With the unit length properly +chosen, one can then easily draw a Chinese chess board, and place any +piece at any board position by simply =\putting= the piece letter (the +macro will change the font) at the desired (x,y) integer valued coordinates +(x=1..9, y=1..10) (it should be easy to change this to the usual +numerical/alphabetical notation). + + Example: \piece{8}{10}{N} places a black knight in file 8, rank 10. + +I have included a LaTeX file to draw such a board, with each piece in its +starting position. Only the last lines need changing (in an obvious way) to +draw an arbitrary game situation (the board could do with a little decoration +in the river!). + +Printer fonts normally behave like dark characters on a ***transparent*** +background. When placing a piece on the chessboard, one has to ERASE ANY +UNDERLYING LINES FIRST. I could not think of a way of doing this using only +TeX and/or METAFONT. So my piece placing macro uses a little bit of +PostScript code to do this. For that reason, it will only work with DVI -> +PS converters that support dvips=s raw-PS code insertion command +(\special{! ...} and \special{! ...}). + +Unfortunately, the font size (46pt) is presently hardcoded into this LaTeX +file. To print smaller boards, one would have to change a small number of +dimension parameters (margins, picture unitlength, PS mask size) as well as +the font size. I have not had time to implement and test automatic scaling +relations at the LaTeX level. + +I have set the font normal and quad spaces to the diameter of the pieces, +and the font x height to half that diameter. These can be used for kerning, +instead of using the width/height/depth of character boxes. All characters +have the same box dimensions. + + +THE PACKAGE: + +It consists in 3 files, appended at the end of this text, in this order +(look for the "cut here" lines): + +1) the LaTeX file cchessboard.tex for drawing a starting board + (or any other game position) + +2) the METAFONT driver file cchess46.mf for generating the 46pt cchess + font used by cchessboard.tex + +3) the main METAFONT character definition file, ccpieces.mf + +Some comments are in English, some are in French (I like to believe that +my native and favorite language is not dead yet). They are not important +since the whole thing is very simple. + +Before I end, I would like to thank Barry Smith, of Blue Sky Research, for +helping me during my early attempts at generating fonts on a Macintosh +(MacPlus!), using their METAFONT implementation. + + + Jacques Richer, Ph.D. (Physics) + Centre de Recherche en Calcul Applique + 5160, boul. Decarie, bureau 434, + Montreal, PQ, CANADA H3X 2H9 + + TEL: (514) 369-5234 + FAX: (514) 343-3880 + INTERNET: richer@cerca.umontreal.ca + +(my address at work could change very soon) + + Home address: + 7029, rue Marquette + Montreal, Quebec, + CANADA H2E 2C6 + + +cut here------8<------- cchessboard.tex ------8<------------------ + 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. -- cgit v1.2.3