Repere

A propos

Cette bibliothèque facilite l’affichage d’une fenêtre munie d’un repère interactif (zoom, déplacement). Des fonctions sont disponibles pour tracer des objets géométriques simples.

C’est une Version légèrement modifiée de cette librairie écrite par Olivier Brebant en 2011 et publié par l’académie d’Aix-Marseille en 2012, sous licence MIT depuis novembre 2018.

A quoi ca sert?

A tracer un graphique non dynamique muni (ou non) d’un repère. On peut par exemple construire facilement un traceur de courbes.

Par non dynamique, j’entends qu’on ne peut pas facilement utiliser cette librairie pour interagir directement avec les objets. Par exemple cette librairie n’est pas adaptée au codage d’un jeu de type pong ou même d’un objet en mouvement.

Comment l’utiliser

# On importe la librairie
from pydiderotlibs.repere import *

# On initialise la fenetre
creer_fenetre()

# On créé des objects geométriques
point(5, 3)
segment(-10, -4, 8, 7, couleur='rouge', taille=2)
rectangle(1, 1, 8, 4, couleur='noir', taille=4, remplissage='jaune')
point(5, 5, couleur='bleu', taille=5)
point(6, 7, couleur='bleu', taille=5, forme='croix')
texte(-3, 3, "Un texte", couleur='bleu')
../_images/repere.png

On peut agir sur le repère grâce à la souris:

  • La roulette de la souris:
    • Si le curseur est proche d’un axe, modifie l’échelle uniquement pour cet axe.
    • Sinon zoome/dézoome par rapport à la position courante du curseur
  • Un Cliquer-glisser:
    • Si le curseur est proche d’un axe, translate le repère suivant cet axe.
    • Sinon déplace le repère suivant le mouvement libre de la souris.
  • Un double clic rend le repère orthonormé en se basant sur l’axe des abscisses.

Couleurs

../_images/couleurs.png

Les formats de couleurs acceptés sont:

  • Une chaîne de caractères (str) en francais dans la liste ci-contre ('rouge' par exemple).
  • Une chaîne de caractères représentant la couleur sous forme hexadécimale. Par exemple la couleur rouge est '#FF0000'.
  • Un tuple RVB (r, v, b)r, v, b sont des entiers entre O et 255 . Par exemple la couleur rouge est (255, 0, 0).
  • Une chaîne de caractère en anglais dans la liste suivante: 'black', 'white','grey', 'red', 'green', 'blue', 'yellow', 'pink', 'purple'.

Techniquement

Le coté non dynamique mentionné plus haut vient de l’utilisation de Tkinter. C’est techniquement possible avec la méthode after mais pas réaliste dans un cadre pédagogique.

La principale modification par rapport à la version de Olivier Brebant est de créer une variable globale fenetre. Cela simplifie l’utilisation pour les élèves auquel on cache le coté méthodes et attributs de la programmation orientée objet. Concrètement, on passe d’une utilisation:

fen = creer_fenetre()
fen.trace_point(5, 5, couleur='blue', taille=5)
fen.loop()

à

creer_fenetre()
trace_point(5, 5, couleur='blue', taille=5)

Documentation

Ce module a ete ecrit par Olivier Brebant en aout 2011.

On peut l’utiliser librement sous licence MIT

point(x, y, couleur='noir', taille=1, forme='rond')[source]

Ajoute un point dans la fenetre graphique aux coordonees (x, y).

Alias disponible: trace_point()

Paramètres:
  • x (float) – abscisse du point
  • y (float) – ordonnée du point
  • couleur (couleur, optionnel) – couleur du point (noir par défaut)
  • taille (int, optionnel) – taille du point (1 par défaut)
  • forme (str, optionnel) – forme du point: rond/croix ('rond' par défaut)
cercle(x, y, couleur='noir', taille=5)[source]

Trace un disque dont le centre a pour coordonnées (x, y) et dont le rayon est 2 fois taille (en pixels).

Alias: trace_cercle(), circle()

Paramètres:
  • x,y (float) – Coordonnées du centre.
  • couleur – Couleur du disque (noir par défaut).
  • taille (int, optionl) – demi rayon (2 par défaut).
texte(x, y, message, couleur='noir')[source]

Trace un texte dans la fenêtre graphique au coordonnées x, y.

Alias : “trace_texte()” et “text()”

Paramètres:
  • x (float) – abscisse du point
  • y (float) – ordonnée du point
  • message (str) – Texte à placer dans la fenêtre graphique
  • couleur – Couleur du texte (noir par défaut)
segment(x1, y1, x2, y2, couleur='noir', taille=2)[source]

Trace un segment entre les points de coordonnées (x1, y1) et (x2, y2).

Alias: trace_segment()

Paramètres:
  • x1,y1,x2,y2 (float) – Coordonnées des extrémités du segment.
  • couleur – Couleur du segment (noir par défaut).
  • taille (int, optionl) – Epaisseur du segment (2 par défaut).
rectangle(x1, y1, largeur, hauteur, couleur='noir', taille=2, remplissage='jaune')[source]

Trace un rectangle dont le sommet en bas à gauche a pour coordonnées (x1, y1).

Alias: trace_rectangle()

Paramètres:
  • x1,y1 (float) – Coordonnées du sommet en bas à gauche du rectangle.
  • largeur,hauteur (float) – Largeur et hauteur du rectangle
  • couleur – Couleur des cotés du rectangle (noir par défaut).
  • taille (int, optionnel) – épaisseur des cotés du rectangle. ( 2 par défaut).
  • remplissage (str, optionnel) – Couleur de l’intérieur du rectangle (yellow par default)
fenetre(xmin=-10, xmax=10, ymin=-10, ymax=10, fond='blanc', titre='Repère mathematique', axes=True)[source]

Initialise l’object fenetre graphique sans l’afficher.

Alias: creer_fenetre() et window()

Paramètres:
  • titre (str) – Titre de la fenêtre. La valeur par défaut est Repère mathematique.
  • xmin,xmax,ymin,ymax (float) – Dimensions du repère. Les valeurs par défaut sont -10, 10, -10, 10
  • fond – Couleur de fond de la fenêtre (blanc par défaut).
  • axes (bool, optionnel) – Affiche les axes du repère si True (True par défaut).
courbe(valeurs=[(1, 1), (2, 2)], couleur='noir', type='courbe', taille=2, forme='rond')[source]

Crée automatiquement une courbe en fonction des points donnés.

Paramètres:
  • valeurs (list) – Les points par lesquelles passe la courbe. La valeur par défaut est [(1,1), (2,2)].
  • couleur – Couleur des cotés du rectangle (noir par défaut).
  • type (str, optionnel) – Le type de courbe à creer (double, courbe ou points)
  • taile (int, optionel) – La taille de la courbe (``2``par default)
  • forme (str, requis pour points) – La forme des points (rond par défault)