Skip to main content

Like processing library with pygame

Project description

Structure du programme

Installation:

Dans pycharm :
CTRL+ALT+s, puis choisir project -> python interpreter et + puis likeprocessing

dans le terminal :
pip install likeprocessing

Les fonctions setup(), draw() et run(globals())

Le programme doit contenir deux fonctions, setup() et draw(), et l'exécution est lancée à l'aide de l'instruction run(globals()).

Lorsque l'on exécute l'instruction run(globals()), la fonction setup() est exécutée une fois :

from likeprocessing.processing import *
def setup():
    createCanvas(800,600)
    # instructions de paramétrage de l'affichage

Cette fonction permet de définir les dimensions de la fenêtre de tracé, et quelques paramètres initiaux. Les valeurs données aux paramètres de la fonction **createCanvas() ** sont affectées automatiquement à deux variables systèmes : width pour le premier paramètre et height pour le second. Un troisième paramètre resizable optionnel permet d'offrir la possibilité de redimensionner la fenêtre avec la souris On peut récupérer les valeurs de width et height grâce au fonction width() et height()

Puis la fonction draw() est ensuite exécutée en boucle, après l'exécution de setup():

def draw():
    # instructions de dessin

Elle contient des instructions qui seront exécutées avec une fréquence réglable, permettant de modifier le contenu de la fenêtre et de créer des contenus statiques ou des animations.

L'instruction stop() met fin à l'exécution de la boucle :

def compute():
    # instructions de calcul

Cette fonction n'est pas obligatoire. Elle permet d'éviter de trop surcharger la fonction draw() en réservant celle-ci aux instructions de dessins. La fonction compute() si elle existe est insérée dans la boucle et est exécutée avant la fonction draw()

Structure de base :

from likeprocessing.processing import *

def setup():
   createCanvas(400,200)
   background("grey")

def draw():
   pass

run(globals())

Fonctions système

Fonctions description
width(), height() Dimensions de la zone de dessin. Les valeurs de width et height sont définies par les paramètres de la fonction createCanvas().

Rafraîchissement

Fonctions description
frameCount() Nombre d'images affichées depuis le démarrage du programme.
frameRate() \ getFrameRate() Renvoie le nombre d'images affichées chaque seconde.
frameRate(valeur) \ setFrameRate(valeur) Spécifie le nombre d'images à afficher chaque seconde.
noLoop() Si cette instruction est présente dans la fonction setup la fonction draw sera exécutée une seule fois. Si cette instruction est présente dans la fonction draw, les instructions de la fonction draw en cours sont exécutées (il n'y a pas d'interruption) mais celle-ci ne sera pas appelée à nouveau.
loop() Relance l'exécution en boucle de draw().

Couleurs

Désigner une couleur

syntaxe description
'red' nom de couleur
120 niveau de gris : 0 - 255
(100, 125, 255) couleur r, v, b (décimal) : 0 - 255
'#2aff95' couleur r, v, b (hexadécimal) : 00 - ff

Dessiner en couleur

Fonctions description
background(couleur) Définit la couleur d'arrière-plan de la zone de dessin (255 par défaut).
fill(couleur=None) Définit la couleur de remplissage des formes (255 par défaut) et réactive le remplissage des formes. Sans paramètre seul le remplissage est activé (utile après un noFill()). Retourne la valeur précédente du remplissage.
get_fill() Retourne la couleur de fond actuelle
noFill() Désactive la couleur de remplissage.
stroke(couleur) Définit la couleur du tracé des bords des formes et des lignes("black" par défaut). Retourne la valeur précédente de la couleur.
get_stroke() retourne la couleur des bords actuelle
noStroke() Désactive le tracé du contour des figures. Retourne la valeur précédente de la couleur.
save_fill_stroke() Sauvegarde les paramètres fill et stroke
restore_fill_stroke() recharge les paramètres fill et stroke précédemment sauvegardé avec save_fill_stroke

Si noFill() et **noStroke() **sont exécutées en même temps, rien n'est tracé dans la zone de dessin.

Formes

Primitives 2d

L'origine du repère est située en haut à gauche. Les abscisses augmentent de gauche à droite, les ordonnées augmentent de haut en bas.

fonctions description
point(x, y) Trace un point de coordonnées (x, y). carré de 2x2 pixels
line(x1, y1, x2, y2) Trace un segment reliant les deux points de coordonnées (x1, y1) et (x2, y2).
ellipse(x, y, largeur, hauteur) Tracer une ellipse dont le centre a pour coordonnées (x, y) et dont la largeur et la hauteur prennent les valeurs fixées.
circle(x, y, diametre) Trace un cercle dont le centre a pour coordonnées (x, y) et dont le diamètre prend la valeur fixée. Idem ellipse((x, y, diametre, diametre)
arc(x,y,largeur,hauteur,,angleDebut, angleFin) Créer une portion d'ellipse type part de tarte qui pourra être rempli entre les points repérés par les angles angleDébut et angleFin (unité courante). x et y sont les coordonnées du centre du cercle.
circle_arc(x,y,rayon,angleDebut, angleFin) idem arc mais à partir d'un disque
ellipseMode(corners_center: str) Définie la position des points x et y des fonctions basées sur ellipse. par défaut : "corners" x et y sont les coordonnées du point en haut à gauche du rectangle dans lequel est inscrit l'ellipse. si les paramètre est "center" x et y représente le centre du rectangle. Retourne la valeur précédente du mode.
rect(x, y, largeur, hauteur) Créer un rectangle aux coordonnées x,y de largeur largeur et de hauteur. Sii rectMode('center') x et y sont les coordonnées du centre du rectangle. Si rectMode('corners') x,y sont les coordonnées du coin haut gauche. Le rectangle est rempli par la couleur définie par fill(couleur). Si le paramètre image est renseigné le fond du rectangle sera occupé pas l'image retaillée aux dimensions du rectangle sauf si largeur et/ou hauteur sont nulles (ou non renseignées). largeur et/ou hauteur seront alors celles de l'image. Les paramètres allign_h (left, center et right) et allign_v (top,center et bottom) permettent d'aligner l'image dans un cadre plus grand qu'elle.
square(x, y, cote) Trace un carré dont le sommet en haut à gauche a pour coordonnées (x, y) et dont le côté prend la valeur fixée. fonctionnement idem rectangle
rectMode(corners_center: str) Définie la position des points x et y des fonctions basées sur rect. par défaut : "corners" x et y sont les coordonnées du point en haut à gauche du rectangle. si les paramètre est "center" x et y représente le centre du rectangle. Retourne la valeur précédente du mode.
triangle(x1, y1, x2, y2, x3, y3) Trace un triangle dont les trois sommets ont pour coordonnées (x1, y1), (x2, y2), et (x3, y3).
quad(x1, y1, x2, y2, x3, y3, x4, y4) Trace un quadrilatère dont les quatre sommets ont pour coordonnées (x1, y1), (x2, y2), (x3, y3) et (x4, y4).
k_line(points) trace un ligne brisée à partir d'une liste de points [[1,2],[5,6],[8,3],.....]. (nb_point = nb_segments + 1)

Tracés

fonctions description
strokeWeight(epaisseur) Définit l'épaisseur du tracé en pixels (par défaut : 1 pixel). Retourne la valeur précédente de la largeur du trait
noStroke() Désactive le tracé du contour des figures en mettant la largeur du bord à 0. Retourne la valeur précédente de la largeur.
stroke(couleur) Définit la couleur du tracé des bords des formes et des lignes ("black" par défaut). Si aucune valeur n'est passée, celle-ci retourne la couleur actuelle. Retourne la valeur précédente de la couleur.

Paramètres optionnels:

Les paramètres optionnels sont passés directement dans la fonction et ne concernent que celle-ci:

fill, no_fill, fill_mouse_on, stroke, stroke_weight.

exemple :

triangle(20, 10, 50, 15, 40, 70, fill = "green", fill_mouse_on="yellow", stroke_weight=3)

l'ajout de command = ma_fonction au paramètre fill_mouse_on="couleur" permet d'exécuter la fonction ma_fonction(). Si l'on veut attribuer ma_fonction à plusieurs formes il est possible d'ajouter le paramètre name = valeur. Dans ce cas, la fonction ma_fonction(name) sera exécutée . Il faudra créer impérativement soit :

def ma_fonction():

pass

ou

def ma_fonction(nom):

pass

Textes

fonctions description
text(chaine, x, y) Affiche la chaîne à la position (x, y) dans une boite ajustée. couleur, largeur bord et couleur bord de la boite idem formes. Accepte les paramètres optionnels
text(chaine, x, y, largeur, hauteur) Affiche la chaîne à la position (x, y) dans une boite de dimensions largeur x hauteur. couleur, largeur bord et couleur bord de la boite idem formes. largeur et hauteur sont optionnels
textAlign(alignement_horizontal)

textAlign(alignement_horizontal, alignement_vertical)

Spécifie l'alignement horizontal parmi LEFT, CENTER, et RIGHT et l'alignement vertical parmi TOP, BOTTOM, CENTER, et BASELINE
textFont(police)

textFont(police, taille)

Spécifie la police de caractères et éventuellement sa taille. Retourne la police et la taille précédente
textSize(taille) Spécifie la taille de la police de caractères. Retourne la taille précédente de la police
textStyle(style) Spécifie le style parmi NORMAL, ITALIC, BOLD et BOLDITALIC
textWidth(chaine) Largeur en pixels de l'affichage de chaîne, dans la police et taille actuelles

Paramètres optionnels spécifique à text:

Les paramètres optionnels sont passés directement dans la fonction et ne concernent que celle-ci:

la fonction text possèdes elle aussi des paramètres optionnels qui ne concernent que la fonction en cours :
font, font_size, font_color qui permettent de définir la police, la taille des caractères ainsi que la couleur de ceux-ci.

allign_h et allign_v permettent de positionner le texte dans la boîte de texte comme textAllign().

padx et pady permettent de créer une marge autour du texte (valeur en pixels)
exemple :

text("salut les amis",20,30,300,allign_h="center",font="arial",font_size=48,fontTools="green",pady=10)

Ce code va afficher "salut les amis" dans un cadre de longueur 300 à la position x=20 et y=30. La hauteur du cadre est calculée en fonction de la hauteur du texte (font_size). pady=10 ajoute 10 pixels au dessus et en dessous du texte. Si la hauteur du cadre est donnée, si celle-ci est trop petite le texte sortira du cadre.

Événements

Touches du clavier

fonctions description
key() état des touches du clavier (list)
keyCode() Code de la dernière touche appuyée.
keyIsPressed()

isKeyPressed()

Vaut True lorsqu'une touche du clavier est appuyée et False sinon.
keyIsDown(code)

keyIsDown(touche)

Vaut True si la touche concernée est appuyée et False sinon.

Souris

fonctions description
mouseX(), mouseY() Coordonnées du pointeur de la souris
mouseXY() Coordonnées du pointeur de la souris sous forme de tuple
mouseIsPressed() Vaut True si la souris est cliquée, et False sinon.
fill_mouse_on(couleur:str) Change la couleur des formes quand on passe la souris dessus. Non actif par défaut.
noFill_mouse_on() annule l'effet de fill_mouse_on()
mouse_click_down() renvoie True lors du passage de relâché à appuyé du bouton de la souris.
mouse_click_up() renvoie True lors du passage de appuyé à relâché du bouton de la souris.
mouse_click() idem mouseIsPressed()
mouse_wheel_state() retourne 1 si la roulette de la souris est tournée vers l'avant, -1 vers l'arrière et 0 si elle est immobile.

Mathématiques

Angles

fonctions description
angleMode(mode_angle:str) Définit l'unité de mesure des angles. \ 'rad' les angles des fonctions trigonométriques seront pris comme des radians (défaut) \ 'deg' les angles des fonctions trigonométriques seront pris comme des degrés \ 'grd' les angles des fonctions trigonométriques seront pris comme des grades \ Une exception est levée en cas d'erreur de paramètre

si mode_angle == "" la valeur de mode est retournée (str)

cos(), sin(), tan(), acos(),asin(),atan(),atan2() Fonctions trigonométriques usuelles l'unité considérée sera celle choisie avec angleMode(). atan2 : même fonctionnement que la fonction math.atan2 mais l'unité de l'angle retourné dépend de angleMode()
degrees(mesure) \ radians(mesure) \ grades(mesure) Convertit une mesure d'angle en degrés, en radians ou en grades. l'unité de mesure dépend de angleMode().
HALF_PI, PI, QUARTER_PI, TWO_PI Constantes permettant respectivement d'approcher les valeurs de π/2, π, π/4, 2π

Géométrie

fonctions description
dist(x1,y1,x2,y2) retourne la distance entre deux points
midPoint(x1, y1, x2, y2) retourne le milieu d'un segment défini par deux points

Images

fonctions description
loadImage(chemin) Charge une image à partir d'un chemin et crée un objet Image. Si nécessaire, l'image peut être préchargée en plaçant l'appel à la fonction loadImage dans la fonction preload.
background(Image) Affiche une Image en fond d'écran
image(image, x, y) Affiche une Image en plaçant le pixel en haut à gauche au point de coordonnées (x, y) dans la zone de dessin.
copy_image(picture: Image, rect=None) -> Image retourne une copie de picture ou une partie de picture au dimensions de rect
get_pixel_color(picture: Image, pos: tuple) -> tuple retourne la valeur de la couleur d'un pixel d'une image (picture)

sous la forme d'un tuple

resize_image(picture:Image,size : tuple retourne une image redimensionné en fonction de size : (largeur,hauteur)

Transformations

fonctions description
translate(x,y) applique une translation à toutes les fonctions de dessin et d'image. x et y sont des valeurs relatives qui s'ajoutent aux translations précédentes.

La translation est remise à zéro avant chaque exécution de la fonction draw().

get_translate() retourne la valeur de la translation sous la forme d'un tuple (x,y)
init_translate() Force la remise à zéro de la translation. (A utiliser dans la fonction draw() en cas de besoin
rotate(angle,axis) applique une rotation <angle> par rapport à <axis>. à toutes les fonctions de dessin et d'image. angle est une valeur absolue. Par défaut axis vaut (0,0). Cette fonction retourne la valeur précédente prise par la fonction sous la forme d'un tuple.
flip_h(axe_h) entraîne une symétrie horizontale par rapport à la droite y = axe_h
flip_v(axe_v) entraîne une symétrie verticale par rapport à la droite x = axe_v

Temporisations

fonctions description
t=Tempo(duree_ms) t=Tempo(500) créer un objet de temporisation t de durée 500 ms qui se relance indéfiniment.
t.fin() renvoie True lorsque la temporisation est terminée. Pour notre exemple au bout de 500 ms.
t.is_on() renvoie True si la temporisation est à on.
t.is_off() renvoie True si la temporisation est à off.
t.set_tempo(duree_ms) permet de réinitialiser la temporisation avec une nouvelle valeur.
t.reset() force le redémarrage de la temporisation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

likeprocessing-0.1.6.9.2.tar.gz (64.2 kB view hashes)

Uploaded Source

Built Distribution

likeprocessing-0.1.6.9.2-py3-none-any.whl (65.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page