Gérer des points du canevas

Vous pouvez ...

... ou encore ...

Techniques p5Visuel employées
création d'objets web avec leurs propriétés
réduction (et développement) de blocs
• utilisation du bloc expression p5 car on veut
   utiliser une fonction JavaScriot pour laquelle
   il n'existe pas de bloc correspondant

Description de la bibliothèque

Cette bibliothèque vous permet de gérer la création et la manipulation de points dans le canevas. Elle utilise les variables suivantes :
noPointDesigne qui contient le numéro du point qu'on est en train de déplacer ou de modifier
toucheActuelle qui contient la touche du clavier qui est enfoncée
   (ou un code numérique s'il s'agit d'une touche spéciale comme MAJUSCULE)
pointsX qui est la liste des coordonnées en x de nos points
pointsY qui est la liste des coordonnées en y de nos points
pointsVisibilite qui est la liste de visibilité de nos points (1 pour visible et 0 pour caché)
pointsCouleur qui est la liste des couleurs de nos points

Pour cela, la bibliothèque met à notre disposition les fonctions suivantes :
init gerer points qui initialise toutes les variables ci-dessus
ajouter un point (x, y) qui ajoute un point de coordonnées (x, y) à nos liste. Au départ, le point est visible et bleu.
obtenir le point designe qui retourne le numéro du premier point de la liste à moins de 5 pixels de la position de la souris
   (Note 1 : si on veut changer cette valeur 5, on devra modifier la fonction testerPoint)
   (Note 2 : cette fonction gère aussi les déplacements des points)
obtenir touche actuelle qui le retourne la touche appuyée au moment de l'appel (ou -1 si on n'appuie sur aucune touche)
distance (x1, y1, x2, y2) qui calcule la distance entre le point (x1,y1) et le point (x2, y2)
dansCanvas (x, y) qui vérifie si le point (x, y) est dans le canevas
testerPoint (no) qui est une fonction auxiliaire utilisée par les autres fonctions de la bibliothèque.
Notez que tous les blocs définissant les fonctions ci-dessus sont réduits car il n'est pas nécessaire de connaître leur fonctionnement interne.

Cette bibliothèque a été utilisée dans un programme permettant gérer des cercles, définis par leur centre et un point sur leur circonférence. Nous attirons votre attention plus spécifiquement sur la fonction gerer les points qui illustre cette application de notre bibliothèque.