Le 22-07-2013, capfree nous expliquait dans fr.comp.applications.libres :
> Voilᅵ la maquette, une fenᅵtre dans le disque ᅵ 22 secteurs laisse
> apparaᅵtre une sᅵrie de dates du mois, mais je penserai plutᅵt ᅵ les
> intervertir en plaᅵant les dates au centre.
> Chiffres ᅵ inscrire avec Gimp, photocopie puis collage sur bristol.
Pour les inscriptions je te conseille Inkscape qui sera probablement
plus adaptᅵ que Gimp.
Nᅵanmoins la remarque de Nicolas Georges reste valable, un outil en
ligne de commande est probablement bien plus adaptᅵ par contre je laisse
la migraine ᅵ nos amis matheux pour les calculs des positions et
orientations.
Nicolas, si tu as quelques minutes, c'est l'occasion de nous faire un
cours magistral :-) Perso ᅵa dᅵpasse mes maigres connaissances en
mathᅵmatiques.
> Le plus grand cercle pour le dᅵcoupage, ᅵ 120 mm, 90 mm et le petit 70 mm
>
>
http://cjoint.com/data3/3GwpoGdVr1R_calend-perpet.jpg
>
> * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~
>
> C'est une mnᅵmonique en vue de la mᅵditation quotidienne sur une saison
> des 150 versets du psaume 119
'Pas ma tasse de thᅵ mais chacun fait ce qu'il veut de sa conscience ;-)
Voici donc le script modifiᅵ qui devrait convenir ᅵ ton usage :
############################################################################
#!/bin/bash
FILE=~/test/asterisk.png # L'image
TMP=$FILE.bak # Fichier de travail temporaire
IMAGE_WIDTH=1024 # Largeur de l'image
IMAGE_HEIGHT=1024 # Hauteur de l'image
NUM_ARMS=31 # Nombre de branches
R=400 # Longueur du rayon des branches de l'ᅵtoile
LINE_WIDTH=5 # Largeur des branches de l'ᅵtoile
LINE_COLOR=#000 # Couleur des lignes (format HTML)
DEG=$(echo "scale=15;(360/$NUM_ARMS)" | bc) # Angle entre rayons
PI=$(echo "scale=10; 4*a(1)" | bc -l) # Pi
OX=$(echo "scale=10;$IMAGE_WIDTH/2" | bc) # Abscisse X du centre de l'image
OY=$(echo "scale=10;$IMAGE_HEIGHT/2" | bc) # Ordonnᅵe Y du centre de l'image
FILL_COLOR=white # Couleur de remplissage des disques
CELL_HEIGHT=50 # Hauteur des cellules
############################################################################
# Ne rien modifier au delᅵ de cette ligne
############################################################################
RC1=$(echo "scale=2;$OX+$R" | bc -l) # Rayon du cercle 1 (le plus grand)
RC2=$(echo "scale=2;$OX+$R-$CELL_HEIGHT" | bc -l) # Rayon du cercle 2
RC3=$(echo "scale=2;$RC2-$CELL_HEIGHT" | bc -l) # Rayon du cercle 3
RC4=$(echo "scale=2;$RC3-$CELL_HEIGHT" | bc -l) # Rayon du cercle 4 (le plus petit)
rm $FILE $TMP 2>/dev/null
convert -size $IMAGE_WIDTH"x"$IMAGE_HEIGHT xc:transparent -fill transparent $FILE
echo "Cercle 1 : $OX,$OY $RC1,$OY "
convert -stroke $LINE_COLOR -fill $FILL_COLOR -strokewidth $LINE_WIDTH -draw "circle $OX,$OY $RC1,$OY" $FILE $TMP
echo "Cercle 2 : $OX,$OY $RC2,$OY "
convert -stroke $LINE_COLOR -fill $FILL_COLOR -strokewidth $LINE_WIDTH -draw "circle $OX,$OY $RC2,$OY" $TMP $FILE
echo "Cercle 3 : $OX,$OY $RC3,$OY "
convert -stroke $LINE_COLOR -fill $FILL_COLOR -strokewidth $LINE_WIDTH -draw "circle $OX,$OY $RC3,$OY" $FILE $TMP
mv $TMP $FILE
for I in $(seq 1 $NUM_ARMS)
do
ANGLE=$(echo "scale=10;$I*$DEG" | bc)
PX=$(echo "scale=10;$R*c($PI*$ANGLE/180)+$OX" | bc -l)
PY=$(echo "scale=10;$R*s($PI*$ANGLE/180)+$OY" | bc -l)
echo "Ligne nᅵ $I ($OX, $OY | $PX,$PY |ᅵ$ANGLE | $LINE_COLOR)"
convert -stroke $LINE_COLOR -strokewidth $LINE_WIDTH -draw "line $OX,$OY $PX,$PY" $FILE $TMP
mv $TMP $FILE
done
echo "Cercle 4 : $OX,$OY $RC4,$OY "
# Le disque qui masque le coeur de l'ᅵtoile
convert -stroke $LINE_COLOR -fill $FILL_COLOR -strokewidth $LINE_WIDTH -draw "circle $OX,$OY $RC4,$OY" $FILE $TMP
mv $TMP $FILE
############################################################################