12
« on: May 27, 2023, 07:26:45 »
Voila le type de code généré à la volée dans le ocde Java :
/fan{ %Fan Template
gsave
%begin gender specific shading of boxes
/c 1 def %flag for the alternating colours
1 indicentre sub 1 maxlevel {%shade the boxes if necessary
/i exch def
/delta_ang 360.0 2 i exp div def %set the angle stepsize
/r1 i radius def /r2 i 1 sub radius def %find the inner and outer radius for the box
.7 radfactor div
setlinewidth %if level is beyond 7 make lines thinnest possible
90.0 delta_ang 449.99 { %step through all angles from 90deg to 90deg+360deg (450deg)
/ang1 exch def /ang2 ang1 delta_ang add def %find the beginning and ending angle for each box
newpath
i 0 gt{%draw the box
ang1 r1 polar m 0 0 r1 ang1 ang2 arc ang2 r2 polar l 0 0 r2 ang2 ang1 arcn
}{
0 0 1 radius 0 0 1 radius 0 360 arc
}ifelse
closepath
i 0 gt { %fill in box if necessary
c 1 eq {/c1 0 def rf gf bf setrgbcolor} {/c1 1 def rm gm bm setrgbcolor} ifelse
}{
centrepersonsex 0 eq {rm gm bm setrgbcolor} {rf gf bf setrgbcolor} ifelse
}ifelse
gsave fill grestore
i 0 gt{/c c1 def}if %exchange color for next box
rl gl bl setrgbcolor
}for
}for %end gender specific shading of boxes
%begin draw boxes around husband and wife
rl gl bl setrgbcolor
2 indicentre sub 1 maxlevel { %step through the levels
/i exch def
.7 radfactor div
setlinewidth
/delta_ang 360.0 2 i 1 sub exp div def %set the angle stepsize
90.0 delta_ang 449.99 {
/ang1 exch def /ang2 ang1 delta_ang add def
/r1 i radius def /r2 i 1 sub radius def
%draw tic marks around marriage date
/delta_r r1 r2 sub 15 div def
/angave ang1 delta_ang 2 div add def
/r_inner r2 delta_r add def
/r_outer r1 delta_r sub def
newpath angave r_outer polar m angave r1 polar l stroke
r2 0 gt{
newpath angave r2 polar m angave r_inner polar l stroke
}if
rm gm bm setrgbcolor %erase small gap between male and female
.5 setlinewidth
newpath angave r_outer polar m angave r_inner polar l stroke
rl gl bl setrgbcolor
.7 radfactor div
setlinewidth
%finish tic marks
newpath %draw box around parents
ang1 r1 polar m 0 0 r1 ang1 ang2 arc
ang2 r2 polar l 0 0 r2 ang2 ang1 arcn closepath
stroke
}for
}for %end draw boxes around husband and wife
grestore
} def
Et j'avoue que j'ai du mal à convertir cela autrement.
A part que les commentaires commencent par %, je ne comprends pas vraiment la façon dont les choses sont faites.
S'il y a des spécialistes du Postscript, je suis preneur.
Zurga