Module turtle python, récupérer la valeur d'un pixel
Fermémamiemando Messages postés 33372 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 22 novembre 2024 - 23 nov. 2022 à 15:51
- Canvas get pixel
- Canvas gratuit - Télécharger - Divers Photo & Graphisme
- Get data back - Télécharger - Récupération de données
- Dead pixel - Télécharger - Divers Utilitaires
- "Wmic path softwarelicensingservice get oa3xoriginalproductkey" - Forum Windows
- Wmic path softwarelicensingservice get oa3xoriginalproductkey - Forum Windows Vista
2 réponses
23 nov. 2022 à 13:45
bonjour,
si cela n'existe pas, peut-être en vérifiant que la tortue ne se trouve pas trop proche d'aucun mur?
Modifié le 23 nov. 2022 à 16:02
Bonjour,
Tu ne peux pas le faire directement.
- Comme expliqué dans cette discussion turtle.getcanvas() permet de récupérer canvas. Or un canvas est un objet qui stocke un ensemble d'objet (des formes, des images) et n'expose pas de méthodes permettant de récupérer la valeur d'un pixel particulier.
- Tu peux éventuellement convertir le canvas en fichier eps avec canvas.postscript(file"fichier.eps") (voir ce lien), puis le charger dans PIL, et à partir de là, le convertir dans un format d'image qui permet de récupérer la valeur d'un pixel avec la méthode getpixel.
import turtle t = turtle.Turtle() s = turtle.Screen() s.setup(20, 20) t.setpos(5, 5) for _ in range(4): t.forward(10) t.left(90) canvas = turtle.getcanvas() canvas.postscript(file="fichier.eps") from PIL import Image image = Image.open("fichier.eps") (xmax, ymax) = image.size pixels = [ image.getpixel((x, y)) for x in range(xmax) for y in range(ymax) ] from pprint import pprint pprint(pixels)
Mais bon, ce n'est pas vraiment une bonne manière de procéder, car exporter le canvas est assez "coûteux", car cela force à créer un fichier temporaire à chaque fois.
Selon la manière dont le dessin a été réalisé, tu peux peut-être aussi jouer sur la fonction canvas.find_overlapping() mais encore faut-il que le pixel ait été coloré par un objet (par exemple un rectangle). C'est ce que ce propose ce lien. Pas dit que ça marche dans ton cas.
Bref, tu devrais plutôt regarder du côté de pygame, ce sera bien plus propre. Regarde par exemple ce lien.
Après, si ton dessin turtle est généré à partir d'une structure de donnée qui indique pour chaque case du labyrinthe sa nature, c'est plus là dessus que tu devrais faire tes tests. Voir par exemple cette discussion.
Bonne chance