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

m
<source> -> <syntaxhighlight> (phab:T237267)
m (<source> -> <syntaxhighlight> (phab:T237267))
 
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
 
from math import *
from gimpfu import *
</syntaxhighlight>
</source>
 
==Script==
#son premier calque:
 
<sourcesyntaxhighlight lang="python">
def python_lemniscate(img) :
largeur=img.width
hauteur=img.height
calque=img.layers[0]
</syntaxhighlight>
</source>
 
===Les sommets===
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====
C'est presque plus court à écrire en Python qu'à décrire:
 
<sourcesyntaxhighlight lang="python">
for i in range(ns):
t=2*pi/ns*i
P=(x,y)
sommets.extend(P)
</syntaxhighlight>
</source>
 
====Fin====
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===
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===
L'objet ''lemniscate'' est donc celui-ci:
 
<sourcesyntaxhighlight lang="python">
def python_lemniscate(img) :
largeur=img.width
sommets.extend(P)
pdb.gimp_paintbrush_default(calque,2*ns+2,sommets)
</syntaxhighlight>
</source>
 
==Enregistrement du filtre==
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",
 
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.
1 535

modifications