Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
floss:python:cairo-tutoriel [2012/03/05 16:09] – villersd | floss:python:cairo-tutoriel [2012/03/28 03:12] (Version actuelle) – [Installation de Pycairo sous Windows] villersd |
---|
Afin d'expliquer les opérations utilisées par Cairo, nous avons d'abord examiner de manière schématique la façon de dessiner de Cairo. Il y a seulement quelques concepts impliqués, qui sont ensuite appliqués à plusieurs reprises par les différentes méthodes. Je vais d'abord décrire les noms : destination, source, masque, chemin, et contexte. Ensuite je décrirai les [[http://www.tortall.net/mu/wiki/CairoTutorial#verbs|verbes]] qui offrent les moyens de manipuler les noms et d'en tirer les graphiques que vous souhaitez créer. Voici [[http://www.tortall.net/mu/wiki/CairoTutorial/diagram.py?raw|le code]] à l'origine de la confection de tous les diagrammes, mais je vous conseille de ne pas le lire maintenant. | Afin d'expliquer les opérations utilisées par Cairo, nous avons d'abord examiner de manière schématique la façon de dessiner de Cairo. Il y a seulement quelques concepts impliqués, qui sont ensuite appliqués à plusieurs reprises par les différentes méthodes. Je vais d'abord décrire les noms : destination, source, masque, chemin, et contexte. Ensuite je décrirai les [[http://www.tortall.net/mu/wiki/CairoTutorial#verbs|verbes]] qui offrent les moyens de manipuler les noms et d'en tirer les graphiques que vous souhaitez créer. Voici [[http://www.tortall.net/mu/wiki/CairoTutorial/diagram.py?raw|le code]] à l'origine de la confection de tous les diagrammes, mais je vous conseille de ne pas le lire maintenant. |
| |
Si vous trouvez les descriptions ci-dessous trop clairsemée, Donn Ingle a créé des diagrammes synoptiques en SVG qui tentent de lier le tout. Ils nécessitent [[http://inkscape.org/|Inkscape]] (ou un programme similaire) pour afficher, ainsi que deux polices spécifiques pour l'apparence correcte. Zoomez sur chaque «pages» au fur et à mesure de votre lecture. Comme Donn demande de télécharger et partager les diagrammes si on les trouve utiles, vous pourrez les télécharger en suivant ce lien. | Si vous trouvez les descriptions ci-dessous trop clairsemée, Donn Ingle a créé des diagrammes synoptiques en SVG qui tentent de relier le tout. Ils nécessitent [[http://inkscape.org/|Inkscape]] (ou un programme similaire) pour l'affichage, ainsi que deux polices spécifiques pour une apparence correcte. Zoomez sur chaques «pages» au fur et à mesure de votre lecture. Comme Donn demande de télécharger et partager les diagrammes si on les trouve utiles, vous pourrez les télécharger en suivant ce [[https://docs.google.com/leaf?id=0ByXVQD8awBcLYjc2ZWVmZmItMDlmMi00MWUzLThkMTUtMzNhNTU0YjI3M2M2&hl=en|lien]]. |
| |
==== Noms ==== | ==== Noms ==== |
=== Afficher du texte / glyphes (Show Text / Glyphs) === | === Afficher du texte / glyphes (Show Text / Glyphs) === |
| |
{{ :floss:python:cairo:showtext.png?direct&|}}L'opération [[http://www.cairographics.org/manual/cairo-text.html#cairo-show-text|//show_text()//]] forme le masque à partir d'un texte. On peut s'imaginer plus facilement //show_text()// comme un raccourci sur la création d'un chemin avec [[http://www.cairographics.org/manual/cairo-Paths.html#cairo-text-path|text_path()]] suivi du remplissage [[http://www.cairographics.org/manual/cairo-cairo-t.html#cairo-fill|//fill()//]] pour son transfert. Soyez conscients que show_text() enregistre temporairement les [[http://fr.wikipedia.org/wiki/Glyphes|glyphes]], ce qui est d'autant plus efficace si vous travaillez avec beaucoup de texte. | {{ :floss:python:cairo:showtext.png?direct&|}}L'opération [[http://www.cairographics.org/manual/cairo-text.html#cairo-show-text|show_text()]] forme le masque à partir d'un texte. On peut s'imaginer plus facilement //show_text()// comme un raccourci sur la création d'un chemin avec [[http://www.cairographics.org/manual/cairo-Paths.html#cairo-text-path|text_path()]] suivi du remplissage [[http://www.cairographics.org/manual/cairo-cairo-t.html#cairo-fill|//fill()//]] pour son transfert. Soyez conscients que show_text() enregistre temporairement les [[http://fr.wikipedia.org/wiki/Glyphes|glyphes]], ce qui est d'autant plus efficace si vous travaillez avec beaucoup de texte. |
| |
[[http://www.tortall.net/mu/wiki/CairoTutorial/diagram.py?raw|Tutoriel Cairo : Diagrams]] (section #text) | [[http://www.tortall.net/mu/wiki/CairoTutorial/diagram.py?raw|Tutoriel Cairo : Diagrams]] (section #text) |
=== Peindre (paint) === | === Peindre (paint) === |
| |
{{ :floss:python:cairo:paint.png?direct&|}}L'opération peindre [[http://www.cairographics.org/manual/cairo-cairo-t.html#cairo-paint|//paint()//]] utilise un masque qui transfère l'ensemble de la //source// vers la //destination//. Certaines personnes considèrent cela comme un masque infiniment grand, et d'autres considèrent cela comme une absence de masque; le résultat est le même. L'opération liée à [[http://www.cairographics.org/manual/cairo-cairo-t.html#cairo-paint-with-alpha|paint_with_alpha()]] permet semblablement le transfert de la totalité de la source sur la destination, mais il ne transfère que le pourcentage spécifié de la couleur. | {{ :floss:python:cairo:paint.png?direct&|}}L'opération peindre [[http://www.cairographics.org/manual/cairo-cairo-t.html#cairo-paint|paint()]] utilise un masque qui transfère l'ensemble de la //source// vers la //destination//. Certaines personnes considèrent cela comme un masque infiniment grand, et d'autres considèrent cela comme une absence de masque; le résultat est le même. L'opération liée à [[http://www.cairographics.org/manual/cairo-cairo-t.html#cairo-paint-with-alpha|paint_with_alpha()]] permet semblablement le transfert de la totalité de la source sur la destination, mais il ne transfère que le pourcentage spécifié de la couleur. |
| |
[[http://www.tortall.net/mu/wiki/CairoTutorial/diagram.py?raw|Tutoriel Cairo : Diagrams]] (section #paint) | [[http://www.tortall.net/mu/wiki/CairoTutorial/diagram.py?raw|Tutoriel Cairo : Diagrams]] (section #paint) |
* [[http://www.cairographics.org/pycairo/|pycairo]] | * [[http://www.cairographics.org/pycairo/|pycairo]] |
* [[http://savannah.nongnu.org/projects/things/|Things]] : animations, Python + Pycairo | * [[http://savannah.nongnu.org/projects/things/|Things]] : animations, Python + Pycairo |
| * [[https://github.com/tbaugis/hamster_experiments]] : animation GNOME Python Cairo GTK |
| |
| |
| ==== Installation de Pycairo sous Windows ==== |
| L'installation de Pycairo seul peut se faire via les "binary" des sites [[http://www.cairographics.org/pycairo/resources/]] (non testé) et [[http://www.lfd.uci.edu/~gohlke/pythonlibs/#pycairo]] (ce dernier lien a été testé sous win 7 32 bits pour python 2.7 avec une **installation pré-existante du logiciel [[http://www.gimp.org/|GIMP]]** qui inclut les dll nécessaires : **OK**). |
| |
| La [[http://www.cs.rhul.ac.uk/home/tamas/development/igraph/tutorial/install.html|procédure d'installation sous windows de igraph]] peut être suivie pour l'installation de PyCairo (avec des précisions sur les dll à installer manuellement; testé par des étudiants : **OK** ). |
| |
| Cependant Pycairo peut être installé en même temps que des programmes qui l'utilisent, notamment [[http://www.pygtk.org/downloads.html|PyGTK]] (non testé),... |
| |