Page 1 of 2

Firmware 1.8 tiers améliorant Python (turtle/time/kandinsky)

Unread postPosted: 10 Nov 2018, 14:39
by Admin
Pour la rentrée 2019, selon le nouveau programme de Physique-Chimie de la Seconde Générale et Technologique, il faudra programmer des tracés en langage Python :
  • mouvement plan d'un objet ponctuel
  • nuage de points
  • vecteurs vitesse et variations

9889Afin de mieux répondre à la problématique du tracé de vecteurs dans la continuité des acquis de collège,
jean-baptiste boric a sorti un module Python turtle pour ta calculatrice.

jean-baptiste boric diffuse aujourd'hui une deuxième version de son module Python turtle pour calculatrice NumWorks.

Dans la première version, le module avait été implémenté en C++. Cette fois-ci, Jean-Baptise implémente la tortue directement en Python.

98949893Amélioration fort appréciable, cette nouvelle version permet à la différence d'interrompre à tout moment le tracé avec la touche d'annulation. Finis les resets te faisant perdre le contenu mémoire face à une boucle qui ne se terminait pas ! :bj:

Mais ce qu'il y a de bien avec cette nouvelle version, c'est que les améliorations ne se limitent pas à la sphère turtle. ;)
Cette dernière fonctionnalité justement a nécessité l'inclusion du module time par zardam, et que tu es donc parfaitement libre de réutiliser pour autre chose ! :bj:

9895Enfin, notons également une amélioration du module graphique kandinsky, avec l'ajout des fonctions draw_line(x1,y1,x2,y2,color) et fill_rect(x,y,w,h,color) pour faciliter grandement les tracés de lignes surtout dans les cas non horizontaux/verticaux et tracés de rectangles pleins sans avoir à se taper de boucles à chaque fois ! :bj:

Attention au fait que le firmware diffusé par Jean-Baptiste dans ce contexte est basé sur l'état actuel du code source public de la calculatrice NumWorks, et que celui-ci est actuellement en phase bêta de la future version 1.8.0. Des problèmes peuvent donc apparaître même en dehors des points évoqués; il t'est déconseillé de l'installer si tu as de prochains rendez-vous importants (DS, examens, concours...). :#non#:


Téléchargement : firmware 1.8.0 bêta précompilé avec ces améliorations (installable facilement via web-dfu-util )

Re: Firmware 1.8 tiers améliorant Python (turtle/time/kandin

Unread postPosted: 10 Nov 2018, 16:09
by parisse
Un peu dommage de ne pas avoir la meme commande pour le rectangle que dans KhiCAS sur Graph 90+e, a savoir draw_rectangle(x,y,w,h,c) avec c=couleur ou c=couleur+filled si on veut remplir le rectangle (ca peut aussi etre utile de tracer des rectangles non remplis!).

Re: Firmware 1.8 tiers améliorant Python (turtle/time/kandin

Unread postPosted: 10 Nov 2018, 16:42
by jean-baptiste boric
parisse wrote:Un peu dommage de ne pas avoir la meme commande pour le rectangle que dans KhiCAS sur Graph 90+e, a savoir draw_rectangle(x,y,w,h,c) avec c=couleur ou c=couleur+filled si on veut remplir le rectangle (ca peut aussi etre utile de tracer des rectangles non remplis!).

Je m'étais référé à ce qui s'était dit là, même si ça commence à dater : https://github.com/numworks/epsilon/iss ... -387158097. On peut ajuster si besoin est, mais faudrait faire une passe sur les primitives graphiques afin de se mettre d'accord sur tous les points.

Re: Firmware 1.8 tiers améliorant Python (turtle/time/kandin

Unread postPosted: 10 Nov 2018, 18:48
by parisse
Je peux aussi changer sur la Casio, mais ce serait bien de se mettre d'accord. J'ai choisi de nommer toutes les commandes avec le prefixe draw_ ce qui les groupe dans le(s) catalogue(s):
draw_arc(x1,y1,rx,ry,theta1,theta2,c)
draw_circle(x1,y1,r,c)
draw_line(x1,y1,x2,y2,c)
draw_polygon([[x1,y1],...],c)
draw_rectangle(x,y,w,h,c)
draw_string(s,x,y,c)
La couleur c est facultative, elle est stockee sur 16 bits, en y ajoutant +filled on remplit les formes fermees, filled vaut 2^30.

Re: Firmware 1.8 tiers améliorant Python (turtle/time/kandin

Unread postPosted: 11 Nov 2018, 13:52
by matheod2
Je préfère x1,y1,x2,y2 à x1,y1,w,h

Re: Firmware 1.8 tiers améliorant Python (turtle/time/kandin

Unread postPosted: 11 Nov 2018, 14:21
by Adriweb
On pourrait s’inspirer de https://wiki.inspired-lua.org/Category:gc

D’ailleurs je préfère w et h :p

Re: Firmware 1.8 tiers améliorant Python (turtle/time/kandin

Unread postPosted: 11 Nov 2018, 15:36
by jean-baptiste boric
Ça va être vite tranché : je ne suis pas fan des x2/y2 pour le rectangle, l'API Lua des Nspire n'est pas stateless contrairement à celle existante de NumWorks, accoler 2^30 à un paramètre désignant une couleur 16 bits c'est quand même un peu moche et fill_rect c'est plus court que fill_rectangle. 0:]

Re: Firmware 1.8 tiers améliorant Python (turtle/time/kandin

Unread postPosted: 11 Nov 2018, 15:39
by Adriweb
Pour l'inspiration, je parlais des fonctions disponibles et de leurs arguments - mais en effet, toutes ne s'appliquent pas :P

Re: Firmware 1.8 tiers améliorant Python (turtle/time/kandin

Unread postPosted: 11 Nov 2018, 17:34
by parisse
2^30 n'est pas rentre tel quel, mais sous forme de la constante symbolique filled (par exemple draw_rectangle(100,100,50,30,red+filled). Ceci existe dans Xcas depuis tres longtemps pour toutes les commandes graphiques reperees (par opposition aux commandes graphiques pixelisees) donc aussi dans KhiCAS, par exemple circle(0,1,display=red+filled), je ne peux pas changer tout ca, d'abord parce que ca demanderait beaucoup plus de travail que pour quelqu'un qui fait du nouveau code, mais surtout parce que ca casserait du code existant.
Je suis pret a faire quelques modifications, par exemple je n'ai rien contre ajouter une commande fill_rect en plus de draw_rectangle, mais si on veut converger vers une base interoperable, ce serait agreable que les modifications ne soient pas a sens unique (j'ai un peu l'impression de subir un certain imperialisme la, deja que depuis 1 an je me tape de la compatibilite avec Python, ca commence a bien faire).

Re: Firmware 1.8 tiers améliorant Python (turtle/time/kandin

Unread postPosted: 12 Nov 2018, 14:33
by parisse
Les commandes actuelles vues depuis Xcas pour Firefox
session Xcas
clear() et show_pixels() ne s'utilisent que dans Xcas pour Firefox, pas sur la Casio Graph 90+e.