Libxy
Librairie graphique python
- Introduction / présentation
- Téléchargement / Installation
- Liste des fonctions et arguments/options
- InitGraph : initialisation de l'espace graphique
- SaveGraph : sauvegarde en une image du graphique
- Point et Points : fonction de base permettant de placer un (des) point(s)
- Line et Lines : pour tracer des segments de droites et lignes brisées
- Vector : pour représenter des … vecteurs
- Polygon : pour des polygones
- Circle : pour des cercles et disques
- Axes : axes, abscisse et ordonnée, du graphique
- Grid : grille / quadrillage sur le graphique
- Text : pour ajouter du texte
- Couleurs
- Exemples
- Historique de développement - Logs - Pérégrination
- Problème - bugs - Contact …
Introduction / présentation
Libxy
est une brève bibliothèque python
fournissant des outils et fonctions grahiques.
Cette bibliothèque a été écrite pour, au moins, deux raisons:
Pourquoi cette nouvelle bibliothèque ?
Si python est un langage de programmation, on ne peut plus moderne et largement multi-plateformes: linux, windows, mac, mais aussi les environnements "portables", principalement Android et Ios, ce n'est pas le cas de toutes les bibiliothèques. En particulier, les bibliothèques graphiques et de calcul mathématique telles que matplotlib, ne sont pas facilement installables sur tous les appareils, notamment les appareils mobiles/tablettes fonctionnant avec Android.De plus, ces librairies graphiques ne sont pas forcément souples et faciles à utiliser, du moins pour des personnes débutantes avec la programmation et avec python. À cette fin,
Libxy
fournit des fonctions plus simples à utiliser pour construire des éléments géométriques et graphiques.
Par exemple, on utilise assez "naturellement"
A=(2,5); Point(A)
pour placer un point,
ou encore
A=(2,5);B=(6,-3); Line(A,B,width=3)
pour tracer le segment [AB]
avec une trait de 3 pixels d'épaisseur.
On peut jeter un coup d'œil aux quelques exemples donnés plus bas dans lesquels les instructions graphiques sont colorées en rouge.
Téléchargement / Installation
Libxy est présent dans l'archive téléchargeable ici .Cette archive contient:
- le fichier python
Libxy.py
, bibliothèque de quelques fonctions graphiques - trois programmes python d'exemples:
blank.py
: un fichier vide, contenant juste l'import de la bibliothèque, son initialisation et sa fermeture; modèle à utiliser pour des premiers programmesExampleMini.py
: un exemple minimal, pour tester et avoir un premier aperçuPictureExamples.py
: un exemple assez complet, qui se veut démonstratif des capacités de la bibliothèque (combinée bien sûr avec de la programmation en python)
Le fichier python
Libxy.py
peut être téléchargé seul
là
.
Installation
Il n'y a pas d'installation à proprement parler, il suffit de créer un dossier, d'y décompresser l'archiveLibxy.zip
ou seulement d'y copier le fichier Libxy.py
.
Sous Android, avec qpython, il faut veiller à travailler dans le dossier
qpython
qui est directement accessible à l'explorateur et à l'éditeur de qpython
.
Utilisation / import
Dans chaque programme python où on souhaite utiliserLibxy
, il suffit d'importer l'ensemble des fonctions:
from Libxy import *
from Libxy import *
InitGraph ()
# Instructions python et graphiques
SaveGraph ()
InitGraph
initialise un nouveau graphique,
tandis que finalement SaveGraph
enregistre,
par défaut sous le nom Picture.bmp
dans le répertoire de travail, le graphique crée avec tous ses éléments.
Voir dans la liste des fonctions, pour un détail complet des arguments possibles pour les fonctions InitGraph et SaveGraph.
Voir aussi à ce propos, éventuellement préalablement, par exemple ce guide sur la définition et l'utilisation de fonctions en python.
Liste des fonctions et arguments/options
Ci-dessous la liste détaillée des fonctions disponibles dans la bibliothèqueLibxy
.
Pour chaque fonction, un appel minimal, c'est-à-dire avec le plus grand nombre de paramètres par défaut,
est donné; ensuite s'ensuit une description plus complète avec tous les arguments.
InitGraph
L'appel de la fonctionInitGraph
InitGraph ()
Libxy
.
Les paramètres optionnels sont:
Xmin,Xmax
: les valeurs minimales et maximales en abscisse.
Par défautXmin=-10
etXmax=10
.Ymin,Ymax
: les valeurs minimales et maximales en ordonnées.
Par défautYmin=-10
etYmax=10
.Size
: une image carré est produite;Size
est le nombre de pixels utilisés en largeur et en hauteur.
Par défautSize=400
, et une image de 400x400=160 000 pixels est générée.Linewidth
: la largeur, en pixels, des lignes qui seront tracées.Linewidth
spécifie la largeur qui sera utilisée par défaut; celle-ci peut ensuite être indiquée spécifiquement à chaque construction.
Par défaut,Linewidth=1
.PointSize
: la taille, en pixels, des points qui seront tracés.PointSize
spécifie la taille qui sera utilisée par défaut; celle-ci peut ensuite être indiquée spécifiquement à chaque construction.
Par défaut,PointSize=1
.
InitGraph()
est donc équivalent à
InitGraph(Xmin=-10,Xmax=10,Ymin=-10,Ymax=10,Size=400,PointSize=1,LineWidth=1)
.
SaveGraph
L'appel de la fonctionSaveGraph
SaveGraph()
SaveGraph()
enregistre l'image dans le fichier "Picture.bmp"
.
On peut spécifier un nom d'image différent, via l'option
SaveGraph(Name="file")
ou plus simplement
SaveGraph("file")
qui dirigera la sauvegarde vers le fichier image "file.bmp"
.
Point
L'instructionA=(x,y) Point(A)
A
de coordonnées x
et y
.
On peut utiliser les options:
fill="color"
, oùcolor=
blue, red, black, yellow… un nom d'une couleurPointSize=n
, où le nombre entiern
est la taille, en pixels, du point.
Point
est la fonction graphique de base.
Elle peut être utilisée avec diverses syntaxes, pour afficher le point de coordonnées (x,y)
,
Point(x,y)
,
ou encore
A=(x,y);Point(A)
,
ou encore
Point(x,y,3,"blue")
pour placer un point en (x,y)
de 3 pixels colorés en bleu.
Points
L'instructionPoints(A,B,C,…)
A,B,C
…
Les options,
fill
et PointSize
,
sont les même que pour
Point
.
Line
L'instructionA=(xA,yA) B=(xB,yB) Line(A,B)
[A;B]
.
On peut utiliser optionnellement
fill="color"
, oùcolor=
blue, red, black, yellow… un nom d'une couleurwidth=n
, où le nombre entiern
est l'épaisseur, en pixels, du segment.
Lines
L'instructionLines(A,B,C,…)
A,B,C…
Les options,
fill
et width
,
sont les même que pour
Line
.
Vecteur
L'instructionA=(xA,yA) B=(xB,yB) Vector(A,B)
A
et d'extrémité B
.
La syntaxe complète
Vector (A,B,fill="color",width=w,ArrowLength=a,ArrowWidth=b)
Par défaut,
Vecteur(A,B)
utlise
fill="red",width=1,ArrowLength=0.5,ArrowWidth=0.3
.
Voir les explications géométriques correspondantes.
Polygone
L'instructionPolygon(A,B,C,…)
A,B,C…
.
On peut spécifier optionnellement
outline="color"
etwidth=w
: la couleur et l'épaisseur des traits formant la bordure du polygonefill="color"
: la couleur de l'intérieur du polygone
Circle
L'instructionCircle(A,R)
A
et de rayon R
.
On peut spécifier optionnellement, comme pour les polygones,
outline="color"
etwidth=w
: la couleur et l'épaisseur des traits formant la bordure du polygonefill="color"
: la couleur de l'intérieur du polygone
Axes
L'instructionAxes(xtick,ytick)
xtick
et ytick
étant les pas des graduations utilisées sur chaque axe.
Par défaut, 10 graduations parcourent chaque axe.
Grille
L'instructionGrid(Dx,Dy)
Dx
et Dy
étant le pas en abscisse et ordonnée.
Par défaut, si des axes ont déjà étaient tracés avec
Axes(), le quadrillage suit leur graduation,
sinon, le quadrillage repose sur 10 graduations selon chaque axe.
Text
L'instructionText (A,txt,fill="color")
txt
au point A
. Le texte est écrit de la couleur "color"
,
par défaut fill="black"
.
Couleurs
L'optionfill
permet d'indiquer la couleur de l'élément géométrique correspondant.
On peut utiliser certaines couleurs par leur nom:
black, white, red, blue, green, gray, chocolate, brown, yellow, orange, cyan indigo, pink, purple, darkred, darkblue, darkgreen
ou encore pour les plus usuelles par leur initiale:
k (black), w (white), r (red), b (blue), g (green), y (yellow), o (orange), c (chocolate), i (indigo), p (pink).
Les couleurs peuvent aussi être définies directement en RGB: un triplet
(r,g,b)
de nombres entiers compris 0 et 255,
r
représentant l'intensité du rouge, b
du bleu et g
du vert.
Par exemple,
A=(-1,-1);B=(2,3);C=(-4,5) Polygon(A,B,C,outline="i",width=4,fill="c")
Exemples
Exemples de représentations géométriques
Tracer de la courbe représentative d'une fonction
On peut simplement utiliser la fonctionPoint
pour
représenter graphiquement un ensemble de points
appartenant à la courbe représentative d'une fonction.
from Libxy import * InitGraph () def f(x): return x**3+3*x**2 n=1000 for i in range (n): x=-10+i*20.0/n M=(x,f (x)) Point (M) Axes ();Grid () SaveGraph ()
Intégration - Méthode des rectangles
Méthode des rectangles pour l'approximation de l'intégrale de la fonction carré sur l'intervalle [-1;2]; voir pour d'autres méthodes numériques.Bien sûr, le calcul de l'approxmation numérique ne nécessite pas en lui-même de représentation graphique, mais celle-ci permet de visualiser et de comprendre la méthode.
from Libxy import * a=-1.0 b=2.0 n=50 # nbre de rectangles Xmin=-2.0;Xmax=3.0 Ymin=-1.0;Ymax=4.0 InitGraph (Xmin,Xmax,Ymin,Ymax) def f(x): return x*x N=1000 for i in range (N): x=Xmin+i*(Xmax-Xmin)/N Point ((x,f (x)),fill="red") Axes ();Grid () dx=(b-a)/n s=0 for i in range (n): x=a+i*dx s=s+dx*f(x) A=(x,0);B=(x+dx,0) C=(x+dx,f(x));D=(x,f(x)) Polygon([A,B,C,D],outline="black",fill="green") print("Int f ~ "+str(s)) SaveGraph ()
Fractale de Serpinski
from random import random from LibPlot import * InitGraph (0,1,0,1) A=(0,0);B=(1,0);C=(0,1) n=30000 M=(.5,.5) Points ([A,B,C,M]) def milieux (A,B): x=(A[0]+B[0])/2.0 y=(A[1]+B[1])/2.0 return (x,y) for i in range (n): r=random () if r <1/3.0: M=milieux (A,M) elif r <2/3.0: M=milieux (B,M) else: M=milieux (C,M) Point (M) SaveGraph ()
Fractale de Sierpinski, programmation et animation en
javascript
avec canvas
,
Historique de dévelopement - Logs - Pérégrinations
Le développement de cette bibiliothèque est bien sûr jalonné d'idées, encombres, difficultés informatiques de programmation et mathématiques. Cette page relate cet historique.Problèmes - Bugs - Contact
N'hésitez pas à me signaler tout problème, bugs, ou idée(s) de développement.Voir aussi: