Cours de programmation (Jan-Mai 2014)

Ce cours est oriente vers la creation d'images fixes et d'animations. Il utilise un logiciel du CERN appele ``Physics Analysis Workstation'' (PAW) similaire a MATLAB.

Les deux images ci-contre reproduisent les couvertures avant et arriere (avec la photo des 4 createurs de PAW) du manuel PAW dans son edition de 1989 qui etait une des premieres versions. La version la plus recente est accessible en ligne sur le site Internet du CERN. Elle est egalement disponible ci-dessous a la rubrique:
``PAW: Manuel de l'utilisateur''.

  • Presentation du projet d'animation.
    Ces quelques mots presentent le langage de programmation PAW et expliquent comment nous comptons nous en servir pour creer une animation retracant un episode de l'histoire de Beaulieu-sur-Dordogne.

  • Fichier paw.zip (2.9 MB)
    Ceci est le fichier qu'il convient de telecharger pour pouvoir utiliser PAW. C'est une version pour les systemes Windows. Il existe bien sur aussi une version pour LINUX. Quand le fichier a ete telecharge et ouvert, lancer l'executable pawNT.exe. Cela devrait ouvrir deux fenetres: une fenetre de commande et une fenetre graphique. Une fois que la fenetre de commande s'est ouverte on peut, a titre de test, y taper la commande suivante: NULL 0 10 0 10. Normalement, cette commande cree un repere (0,10)x(0,10).

  • Fichier pawlx.tar.gz (55 MB)
    Ce fichier contient une version LINUX de PAW. Pour l'instant cette version n'a pas ete testee.

  • PAW, manuel de l'utilisateur (480 pages, en anglais).
    PAW (Physics Analysis Workstation=Poste de travail pour la recherche en physique) est un logiciel graphique et de calcul mis au point au CERN (Conseil Europeen pour la Recherche Nucleaire situe pres de Geneve) entre 1986 et 2004. Bien que concu en premier lieu pour l'analyse des donnees experimentales produites par les accelerateurs du CERN, PAW constitue aussi un logiciel multi-fonctions semblable a MATLAB (Matrix Laboratory). La syntaxe de PAW est assez similaire a celle de Unix (par ex. dans sa version ''bash'') si bien qu'apprendre a se servir de PAW permet par la meme occasion de se familiariser avec ces langages.

  • PAW: Presentation en francais (2014)
    Ce texte donne une introduction a PAW centree sur la realisation de graphiques et d'animations. Le code des macros expliquees dans ce fascicule se trouve dans le fichier anim2.kumac ci-dessous.

  • Fichier anim2.kumac
    Cette macro-tiroir contient toutes les macros qui sont expliquees dans le texte ci-dessus ``PAW: Presentation en francais''. Au fil du semestre elle sera augmentee de toutes les autres macros au fur et a mesure de leur creation.

  • Difference entre image matricielle et vectorielle

  • FILM 1: Film net.gif
    Ce film est en fait une succession de 5 images avec un intervalle de temps de 2 secondes entre les images. On voit un reseau qui s'agrandit a chaque pas. Ce film a ete fabrique par MAPI#NW2. Il est repete 3 fois. Le cadre a ete trace avec la commande: PAVE [X1] [X2] [Y1] [Y2] ! 0 1006.

  • FILM 2: Film ellipse.gif
    Ce film montre un disque bleu decrivant une ellipse autour d'un disque rouge. Il peut s'agir de la rotation de la Terre autour du Soleil. Ce film a ete fabrique par la macro PAW intitulee MAPI#FILM2. Il comporte 250 images. Chaque image jpg fait 5 KB et le film ellipse.gif fait 1,100 KB. la transformation des images ps en images jpg a ete faite par la commande suivante de ImageMagick: mogrify -format jpg frames/paw*.ps Le film gif a ete genere par la commande suivante de ImageMagick: convert -delay 4 frames/paw*.jpg -loop 3 frames/ellipse.gif L'intervalle entre images successives est de 4 centiemes de seconde et le film est repete 3 fois.

  • FILM 3: Film disk.gif
    Ce film est en fait une succession de 10 images avec un intervalle de temps de 3 secondes entre les images. On voit un disque dont la couleur passe du rouge au bleu a mesure que les proportions de ces deux couleurs sont modifiees. Ce film a ete fabrique par MAPI#FILM1. Chaque image fait 10 KB et le film disk.gif fait 100 KB. la transformation des images ps en images jpg a ete faite par la commande suivante de ImageMagick: mogrify -format jpg frames/paw*.ps Le film gif a ete genere par la commande suivante de ImageMagick: convert -delay 300 frames/paw*.jpg -loop 3 frames/disk.gif Le film est repete 3 fois.

  • Fichier motif.zip contenant les fichiers generes par VLOCATE et representant un ou plusieurs motifs. Un fichier ``.zip'' est en fait plutot une ``boite'' contenant de nombreux fichiers. Une fois cette ``boite'' telechargee dans votre ordinateur (dans le repertoire ou se trouve PAW), il faudra l'ouvrir (sous Linux avec ``unzip'' et il y a une commande equivalente sous Windows) pour recuperer tous les fichiers qu'elle contient.
    Ces fichiers seront necessaires a chaque fois que vous voudrez faire le dessin du motif en question. Notez que ces fichiers ne definissent que les lignes. Il faudra ensuite rajouter les couleurs que vous souhaitez.

  • FILM 4: Film mathieu.gif
    Ce film presente Mathieu, un personnage que nous utiliserons pour egayer nos animations historiques. Grand merci pour leur aide a Madame Catherine Le Norcy et aux eleves de son cours de dessin. Mathieu est une version simplifiee du personnage cree dans ce cours. Ce film est fait a l'aide des macros ANIM2#TEXTE et ANIM2#TESTMATHIEU. Chacune de ces macros a cree un film et ils furent ensuite mis bout a bout a l'aide de la commande suivante de ImageMagick: concert film1.gif film2.gif mathieu.gif.

  • FILM 4S: Film mathieus.mov
    C'est le meme film que ci-dessus auquel on a rajoute une bande son a l'aide d'une commande du logiciel ffmpeg, a savoir: ffmpeg -i son1.mp3 -i mathieu1.mov mathieus1.mov. Comme la version de ffmpeg que nous avons ne reconnait pas le format gif (contrairement aux versions plus recentes) il a d'abord fallu convertir le format gif en format mov. Cette conversion peut se faire sur le site Internet:
    http://image.online-convert.com/fr

  • FILM 5: Film ariane5.gif
    Ce film de 30s illustre les 20 premieres secondes du vol de la fusee europeenne Ariane 5. Il a ete realise par la macro ANIM2#ARIANEC, plus les macros utilisees dans ARIANEC.

  • FILM 5S: Film ariane5s.mov
    Le meme film avec une bande-son due a notre camarade Kenol Laguerre.

  • Les Vikings dans la region de la Dordogne (50 p., en anglais) Ce memoire de maitrise d'histoire soutenu a l'universite d'Oslo decrit les principales sources permettant de retracer les incursions vikings en Dordogne. Ces sources mentionne la prise de Bordeaux et de Perigueux en 849 mais ne mentionne pas la bataille d'Estresses en 889.

  • Methodes de base pour la realisation d'un diaporama.
    Pour fabriquer des images composites comme celles ci-dessous on propose 3 methodes differentes.

    La plus simple est d'utiliser un logiciel de dessin manuel (par opposition a un logiciel programmable comme PAW). Dans le cas present on a utilise un logiciel appele xfig qui existe sur la plupart des livraisons Linux (sur Window on pourra utiliser PowerPoint par exemple). Dans xfig on peut importer des images en specifiant le nom du fichier. Cela permet de les accoler ou de les superposer. C'est ainsi qu'a ete realisee l'image montrant la bataille d'Estresse.

    Le second procede est similaire mais utilise une commande du logiciel ImageMagick:
    convert -size 700x700 xc:skyblue \
    francefl.jpg -geometry +100+10 -composite \
    mathieu1.jpg -geometry 250x250+5+300 -composite \
    dia1.gif
    -size 700x700 -> taille en pixel xc:skyblue -> fond bleu ciel francefl.jpg -geometry +100+10 -composite -> insertion de la carte de France de telle facon que son coin superieur gauche soit place a x=100,y=10 a partir du coin superieur gauche de l'image initiale.
    La ligne qui commence par mathieu.jpg a la meme fonction mais en plus on precise la largeur et la hauteur (250x250) de l'image a inserer.
    Enfin la ligne dia1.gif donne le nom du fichier dans lequel le resultat de la commande doit etre place.
    Ce second procede a l'air bien plus complique que le premier mais comme cette commande peut etre inseree dans un script bash on peut grace a une simple boucle DO inserer autant d'images qu'on le souhaite.

    La 3e methode utilise la macro ANIM2#PHOTO de PAW. L'instruction-cle est:
    XP=5 ; YP=9 ; PICTURE/LOAD [XP] [YP] fanto1b.gif
    Elle insere l'image fanto1b.gif dans le repere defini par la commande NULL de la ligne precedente. et a l'emplacement defini par les coordonnees XP,YP.
    Helas, pour fonctionner cette commande a besoin de ce qu'on appelle une ``X11 window''. Ce type de fenetre graphique existe de facon standard sous LINUX mais sous Windows il faut l'implementer specialement.

    Quelle methode faut-il preferer?
    En combinant des images pre-existantes comme dans les methodes 1 et 2 tout personnage sera inclu dans une ``boite'' rectangulaire. Pour rajouter un personnage sans boite il faut pouvoir le dessiner sur la toile de fond. C'est ce que permet la methode 3 comme on le voit dans l'image ou les deux guides se presentent. Certes, dans la methode 1 on peut aussi dessiner un personnage mais sans avoir la ressource de modifier l'attitude du personnage comme on peut le faire avec Mathieu a l'aide la macro ANIM2#MATHIEU

  • Quelques images du DIAPORAMA 1

  • Quelques images du DIAPORAMA 2

  • DIAPORAMA 1: Le mystere de la bataille d'Estresses (duree: 3mn, sans son, fichier: diara.gif de 1.7MB)
    Ce diaporama est une succession de 20 images qui explorent l'enigme de la bataille qui aurait oppose les Vikings au roi de France devant le chateau d'Estresses pres de Beaulieu-sur-Dordogne a la limite de la Correze et du Lot.
    L'intervalle de temps entre images successives est de 10s. A partir des images individuelles, le film du diaporama fut realise par la commande suivante du logiciel ImageMagick:
    convert -delay 1000 diaA0?.jpg diaB0?.jpg diaC??.jpg -loop 1 diara.gif
    Le point d'interrogation (qu'on appelle un caractere ``jocker'') represente tout caractere; ainsi diaA0?.jpg represente les fichiers diaA01.jpg, diaA02.jpg, diaA03.jpg, diaA04.jpg. Dans le cas de diaC on a mis ?? car l'enumeration va de 01 a 10.
    -delay 1000 donne le temps entre images successives en 1/100 de seconde.
    -loop 1 dit que le film doit defiler une seule fois.

  • DIAPORAMA 1S: Le mystere de la bataille d'Estresses (duree: 10mn, avec son, fichier: diara1s.mov de 6.1MB)
    C'est le meme diaporama que ci-dessus mais auquel on a rajoute une bande-son realisee par les etudiantes et etudiants presents au cours du 15 mai 2014 qui fut le dernier du semestre.
    Cette bande-son fut enregistree sur un Mac par le logiciel QuickTime. Le fichier-son, viking1.m4a, fut rajoute au fichier image, diara1b.mov, par la commande suivante de la bibliotheque ffmpeg:
    ffmpeg -i viking1.m4a -i diara1b.mov diara1s.mov
    Ce diaporama dure environ 10mn.

  • Texte de la bande-son du DIAPORAMA 1S

  • DIAPORAMA 2S: Plongee dans les noms de famille vikings (duree: 2mn30, avec son, fichier: diara2s.mov de 1.7MB)
    Ce diaporama est une succession de 6 images qui explorent la survivance de noms de famille de consonance viking depuis leurs invasions au 9e et 10e siecle.
    On trouve de tels noms nordiques dans les regions autour de Bordeaux et de la Dordogne alors que des departements du centre comme le Creuse ou la Vienne n'en ont pas.
    Les profils de Fanto qui illustrent ces vues ont ete obtenus par decoupage de la sihouette en utilisant le logiciel gimp. Par ce decoupage le fond hors sihouette devient transparent. Cette propriete de transparence porte le nom de ``couleur alpha''.
    C'est le meme diaporama que ci-dessus mais auquel on a rajoute une bande-son realisee par l'ensemble des etudiantes et etudiants presents au cours du 15 mai 2014 qui fut le dernier du semestre.
    La bande-son fut enregistree sur un Mac par le logiciel QuickTime. Le fichier-son, viking2.m4a, fut realisee le 15 mai 2014 par l'ensemble des eleves du cours. Il fut rajoute au fichier image, diara2b.mov, par la commande suivante de la bibliotheque ffmpeg:
    ffmpeg -i viking2.m4a -i diara2b.mov diara2s.mov
    Ce diaporama dure environ 2mn30s.