π
<-
Chat plein-écran
[^]

Python turtle : test compatibilité Casio NumWorks

Python turtle : test compatibilité Casio NumWorks

Unread postby critor » 06 Apr 2020, 13:36

Dans sa prochaine mise à jour gratuite désormais imminente pour
Graph 35+E II
et
Graph 90+E
,
Casio
va rajouter de formidables possibilités graphiques à son application
Python
sous la forme de deux modules importables :
  • matplotl
    (en fait un
    matplotlib.pyplot
    )
  • turtle
Nous allons traiter aujourd'hui de la compatibilité du module
turtle
, par rapport aux solutions concurrentes
(calculatrice
NumWorks
)
et au
Python
complet pour ordinateur.

11075Nous ne disposons certes pas d'une préversion de la mise à jour de
Casio
. Toutefois, ce dernier a déjà diffusé et illustré plusieurs exemples qui permettent déjà de se faire une petite idée.

On commence par une petite rosace; tout possesseur de
Graph 35+E II
sait que
Casio
adore ça : ;)
Casio
NumWorks
ordi
Code: Select all
from turtle import *

speed(0)
for i in range(12):
  left(30)
  for i in range(8):
    forward(30)
    left(45)

Le code d'exemple fourni par
Casio
passe ici sans problème sur
NumWorks
et sur ordi. :)



On poursuit maintenant avec le flocon de
Koch
:
Casio
NumWorks
ordi
Code: Select all
from turtle import *

def koch(n, l):
  if n==0:
    forward(l)
  else:
    koch(n-1, l/3)
    left(60)
    koch(n-1, l/3)
    right(120)
    koch(n-1, l/3)
    left(60)
    koch(n-1, l/3)

pencolor("blue")
penup()
goto(-180, -50)
pendown()
koch(4, 360)

Ici encore aucun problème, compatibilité totale ! :)



Nous arrivons maintenant à un soleil. Mais ici hélas, le code de
Casio
ne marche pas sur
NumWorks
:
Code: Select all
from math import exp
from turtle import *
for i in range(1,37):
  red=(exp(-0.5 * ((i-6)/12)**2))
  green=(exp(-0.5 * ((i-18)/12)**2))
  blue=(exp(-0.5 * ((i-30)/12)**2))
  pencolor([red, green, blue])
  for i in range(1, 5):
    forward(60)
    right(90)
    right(10)

Le problème semble ici être que la
Casio
et la
NumWorks
n'utilisent pas par défaut le même système de coordonnées pour les composantes couleurs en
turtle
:
  • nombre flottant de 0.0 à 1.0 sur
    Casio
  • nombre entier de 0 à 255 sur
    NumWorks
Qui a raison ? Il semble que ce soit
Casio
, l'ordinateur n'ayant aucun problème à exécuter ce code.

Notons que sur les implémentations
Python
complètes on peut régler le comportement souhaité à l'aide des appels respectifs turtle.colormode(1.0) et turtle.colormode(255).
Toutefois cette fonction n'est hélas pas incluse chez
NumWorks
.

En conséquence, nous proposons le code corrigé ci-dessous, avec une fonction intermédiaire
mypencolor()
qui corrigera les coordonnées si nécessaire, et qui à la différence marchera aussi sur
NumWorks
:
Casio
NumWorks
ordi
Code: Select all
from math import exp
from turtle import *

def mypencolor(t):
  cmax = 255
  try:
    pencolor((2, 2, 2))
  except:
    cmax = 1
  if(cmax == 1 and max(t)>1):
    t = tuple(u/255 for u in t)
  elif(cmax == 255 and any(isinstance(u, float) for u in t)):
    t=tuple(int(255*u) for u in t)
  pencolor(t)

for i in range(1,37):
  red=(exp(-0.5 * ((i-6)/12)**2))
  green=(exp(-0.5 * ((i-18)/12)**2))
  blue=(exp(-0.5 * ((i-30)/12)**2))
  mypencolor([red, green, blue])

  for i in range(1, 5):
    forward(60)
    right(90)
  right(10)

Si tu trouves une façon plus simple de rajouter la compatibilité
NumWorks
au code
Casio
, n'hésite pas à nous la partager. :)




Enfin nous terminons avec une coquille d'escargot et malheureusement même problème, le code de
Casio
marche partout sauf sur
NumWorks
:
Code: Select all
from turtle import *
from math import *

penup()
goto(0, -20)
pendown()
for i in range(1,37):
  red=(exp(-0.5 * ((i-6)/12)**2))
  green=(exp(-0.5 * ((i-18)/12)**2))
  blue=(exp(-0.5 * ((i-30)/12)**2))
  pencolor([red,green,blue])
  circle(50-i)
  right(10)

En conséquence, même correction en attendant mieux :
Casio
NumWorks
ordi
Code: Select all
from turtle import *
from math import *

def mypencolor(t):
  cmax = 255
  try:
    pencolor((2, 2, 2))
  except:
    cmax = 1
  if(cmax == 1 and max(t)>1):
    t = tuple(u/255 for u in t)
  elif(cmax == 255 and any(isinstance(u, float) for u in t)):
    t=tuple(int(255*u) for u in t)
  pencolor(t)

penup()
goto(0, -20)
pendown()
for i in range(1,37):
  red=(exp(-0.5 * ((i-6)/12)**2))
  green=(exp(-0.5 * ((i-18)/12)**2))
  blue=(exp(-0.5 * ((i-30)/12)**2))
  mypencolor([red,green,blue])
  circle(50-i)
  right(10)
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 5.2%
 
Posts: 35332
Images: 9406
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Python turtle : test compatibilité Casio NumWorks

Unread postby critor » 06 Apr 2020, 14:32

On voit quand même que certaines rares couleurs sont mauvaises sur NumWorks, ressortant de l'ensemble puisque n'ayant rien à voir avec les teintes voisines :


Il doit y avoir un cas particulier que
mypencolor()
ne détecte ou corrige pas.
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 5.2%
 
Posts: 35332
Images: 9406
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Python turtle : test compatibilité Casio NumWorks

Unread postby critor » 06 Apr 2020, 14:49

C'est bon, corrigé, c'était de ma faute : :)
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 5.2%
 
Posts: 35332
Images: 9406
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Python turtle : test compatibilité Casio NumWorks

Unread postby Bisam » 06 Apr 2020, 17:50

Hmm, syntaxic sugar...
Code: Select all
def mypencolor(t):
  cmax = 255
  try:
    pencolor((2, 2, 2))
  except:
    cmax = 1
  if cmax == 1 and max(t)>1:
    t = tuple(u/255 for u in t)
  elif cmax == 255 and any(isinstance(u, float) for u in t)):
    t = tuple(int(255*u) for u in t)
  pencolor(t)
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 48.2%
 
Posts: 5470
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):

Re: Python turtle : test compatibilité Casio NumWorks

Unread postby critor » 06 Apr 2020, 17:53

Ah merci, c'est sympa, justement j'adore le sucre. ;)
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 5.2%
 
Posts: 35332
Images: 9406
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Python turtle : test compatibilité Casio NumWorks

Unread postby redgl0w » 06 Apr 2020, 19:08

Yes je l'ai fait dans le mauvais sens :troll:

Image
User avatar
redgl0wGénéreux
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 31.6%
 
Posts: 60
Joined: 30 Oct 2019, 20:36
Gender: Male
Calculator(s):
Class: 2nde
GitHub: RedGl0w

Re: Python turtle : test compatibilité Casio NumWorks

Unread postby critor » 06 Apr 2020, 19:20

Ah, comment tu as fait ? :)
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 5.2%
 
Posts: 35332
Images: 9406
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
Class: Lycée
YouTube: critor3000
Twitter: critor2000
Facebook: critor.ti

Re: Python turtle : test compatibilité Casio NumWorks

Unread postby redgl0w » 07 Apr 2020, 07:55

critor wrote:Ah, comment tu as fait ? :)

J'ai codé :troll:

Image

J'ai corrigé :

Image
User avatar
redgl0wGénéreux
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 31.6%
 
Posts: 60
Joined: 30 Oct 2019, 20:36
Gender: Male
Calculator(s):
Class: 2nde
GitHub: RedGl0w


Return to News Divers

Who is online

Users browsing this forum: No registered users and 7 guests

-
Search
-
Featured topics
L'OS 5.5 de la TI-83 Premium CE / 84 Plus CE supprime l'assembleur - la plupart des jeux et certains programme ne fonctionneront plus
Omega, le fork étendant les capacités de ta NumWorks, même en mode examen !
Découvre les nouvelles fonctionnalités en Python de l'OS 5.5 pour la 83PCE/84+C-T Python Edition
Comparaisons des meilleurs prix pour acheter sa calculatrice !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...

Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety 
-
Stats.
532 utilisateurs:
>524 invités
>3 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)