« Programmation objet et géométrie/Objets en Python sous Gimp/Tracé de polygones en Python sous Gimp » : différence entre les versions

Contenu supprimé Contenu ajouté
Boehm (discussion | contributions)
DannyS712 (discussion | contributions)
m <source> -> <syntaxhighlight> (phab:T237267)
 
Ligne 24 :
Comme d'habitude, on importe les fonctions utiles pour que le script fonctionne (ici on a besoin des fonctions trigonométriques):
 
<sourcesyntaxhighlight lang="python">
#!/usr/bin/env python
 
Ligne 31 :
from math import *
from gimpfu import *
</syntaxhighlight>
</source>
 
==Script==
Ligne 43 :
#son premier calque:
 
<sourcesyntaxhighlight lang="python">
def python_lemniscate(img) :
largeur=img.width
hauteur=img.height
calque=img.layers[0]
</syntaxhighlight>
</source>
 
===Les sommets===
Ligne 58 :
En phase de test, il est plus prudent de choisir une valeur faible pour ''ns'': Ici on prend 6 sommets, ce qui aura pour effet de faire ressembler la lemniscate à une figure composée de deux carrés ayant un sommet commun. Donc ''ns'' est initialisé à 6. Et le tableau ''sommets'' est initialement vide:
 
<sourcesyntaxhighlight lang="python">
ns=6
sommets=[]
</syntaxhighlight>
</source>
 
====Boucle====
Ligne 75 :
C'est presque plus court à écrire en Python qu'à décrire:
 
<sourcesyntaxhighlight lang="python">
for i in range(ns):
t=2*pi/ns*i
Ligne 82 :
P=(x,y)
sommets.extend(P)
</syntaxhighlight>
</source>
 
====Fin====
Ligne 88 :
Pour refermer le polygone, on remet ça une dernière fois: On crée le point initial à nouveau, et on le rajoute dans le tableau. Ainsi le tableau contiendra ''ns+1'' points, donc ''2ns+2'' nombres entiers:
 
<sourcesyntaxhighlight lang="python">
x=int(largeur/2+largeur/4)
y=int(hauteur/2)
P=(x,y)
sommets.extend(P)
</syntaxhighlight>
</source>
 
===Tracé au pinceau===
Ligne 105 :
Le pinceau est appelé dans la base de donnée des procédures (''pdb'') de Gimp:
 
<sourcesyntaxhighlight lang="python">
pdb.gimp_paintbrush_default(calque,2*ns+2,sommets)
</syntaxhighlight>
</source>
 
===Récapitulatif===
Ligne 113 :
L'objet ''lemniscate'' est donc celui-ci:
 
<sourcesyntaxhighlight lang="python">
def python_lemniscate(img) :
largeur=img.width
Ligne 131 :
sommets.extend(P)
pdb.gimp_paintbrush_default(calque,2*ns+2,sommets)
</syntaxhighlight>
</source>
 
==Enregistrement du filtre==
Ligne 137 :
Pour que le filtre soit accessible depuis le Gimp, on doit ajouter quelque chose comme ceci en bas du script:
 
<sourcesyntaxhighlight lang="python">
register(
"lemniscate",
Ligne 155 :
 
main()
</syntaxhighlight>
</source>
 
Après ça il suffit d'enregistrer le fichier texte dans le dossier des scripts de Gimp, et de le rendre exécutable, pour avoir le script dans le Gimp, sous la forme d'un filtre de rendu.