question sdk graph 90+e/ portage CAS
Re: question sdk graph 90+e/ portage CAS
Nouvelle mise a jour, https://www-fourier.ujf-grenoble.fr/~parisse/casio/test.g3a.
Les variables sont dorenavant automatiquement sauvegardees quand on quitte la session, pour les restaurer il suffit de faire shift-Menu, Load script et charger le script lastvar.py.
La syntaxe Python devrait fonctionner. Je n'ai teste qu'un script tout simple, j'espere que ca marche. Il n'y a sans doute pas d'editeur Python pour la calc, mais on peut editer un script sur PC et l'envoyer a la calc, puis charger le script (shift-Menu Load script).
Si quelqu'un m'indique comment on allume un pixel sur la Casio et comment on peut lire sa valeur, je pourrais aussi activer set_pixel et get_pixel.
[Edit] ca semble etre GetVRAMAddress()
P.S: le repertoire https://www-fourier.ujf-grenoble.fr/~parisse/casio/ contient des archives de la toolchain (gcc 7.3 compile pour debian 9, ustl, tommath, libfxcg avec plusieurs bugs en moins et une ou deux fonctions manquantes en plus), ainsi que le source modifie de giac khicas.tgz.
Les variables sont dorenavant automatiquement sauvegardees quand on quitte la session, pour les restaurer il suffit de faire shift-Menu, Load script et charger le script lastvar.py.
La syntaxe Python devrait fonctionner. Je n'ai teste qu'un script tout simple, j'espere que ca marche. Il n'y a sans doute pas d'editeur Python pour la calc, mais on peut editer un script sur PC et l'envoyer a la calc, puis charger le script (shift-Menu Load script).
Si quelqu'un m'indique comment on allume un pixel sur la Casio et comment on peut lire sa valeur, je pourrais aussi activer set_pixel et get_pixel.
[Edit] ca semble etre GetVRAMAddress()
P.S: le repertoire https://www-fourier.ujf-grenoble.fr/~parisse/casio/ contient des archives de la toolchain (gcc 7.3 compile pour debian 9, ustl, tommath, libfxcg avec plusieurs bugs en moins et une ou deux fonctions manquantes en plus), ainsi que le source modifie de giac khicas.tgz.
-
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)- Posts: 3699
- Joined: 13 Dec 2013, 16:35
- Gender:
- Calculator(s):→ MyCalcs profile
Re: question sdk graph 90+e/ portage CAS
Voila, get_pixel/set_pixel et draw_string sont disponibles. Par exemple, le mandelbrot en syntaxe Python :
Puis fra1(200,200,10) donne ca:
C'est tres lent sur l'emulateur. Je serais curieux de savoir combien de temps ca prend sur la calculatrice (il sera prudent de commencer par essayer fra1(50,50,10)).
- Code: Select all
def fra1(X,Y,Nmax):
w=2.7/X
h=-1.87/Y
Y=Y-1
for y in range(ceiling(Y/2)+1):
c = -2.1+i*(h*y+0.935)
for x in range(X):
z = 0
for j in range(Nmax):
if abs(z=z**2+c)>2:
break
set_pixel(x,y,5100*j+512)
set_pixel(x,Y-y,5100*j+512)
c = c+w;
Puis fra1(200,200,10) donne ca:
C'est tres lent sur l'emulateur. Je serais curieux de savoir combien de temps ca prend sur la calculatrice (il sera prudent de commencer par essayer fra1(50,50,10)).
-
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)- Posts: 3699
- Joined: 13 Dec 2013, 16:35
- Gender:
- Calculator(s):→ MyCalcs profile
Re: question sdk graph 90+e/ portage CAS
J'ai testé la version donnée dans le post avant les images de fractales, en tout cas c'est propre et ça m'a l'air plutôt stable (par rapport aux quelques tests, certes pas très intenses encore, que j'ai pu faire jusque là… ). C'est du super boulot ! Merci pour ça !
Au niveau de quelques "bugs" repérés pour l'instant, qui sont plutôt quelques soucis d'interface (et donc ne relevant peut être pas directement de ce que vous avez fait), et assez peu génants dans l'ensemble :
- Le "vidage de l'écran" fonctionne, mais le curseur semble partir un peu n'importe où : parfois au milieu de l'écran un peu dans le vide, parfois hors de la zone visible et on ne voit alors pas ce que l'on tape (mais presser [Exe] lors de la saisie en cours remet les choses en ordre).
- Quelques affichages un peu étonnant des messages d'erreur :
Hélas ça ne semble pas déterministiquement reproductible, et encore une fois, ce n'est pas vraiment très problématique. ^^
Pour la suite, et grapiller un peu d'espace encore, il devrait être possible de passer le catalogue en fichier "auxiliaire" contenant du texte, et de le charger en RAM en le lisant depuis la flash lorsque nécessaire par exemple. Je ne suis pas sûr que le gain soit particulièrement important, mais bon.
(Je vais essayer le script que tu proposes dans le post précédent, et chronométrer pour voir ce que ça donne… !)
Le support de la syntaxe Python avec de quoi faire des graphismes est prometteur également ! Ça va faire «monter la machine en gamme» tout ça ! ^^
Au niveau de quelques "bugs" repérés pour l'instant, qui sont plutôt quelques soucis d'interface (et donc ne relevant peut être pas directement de ce que vous avez fait), et assez peu génants dans l'ensemble :
- Le "vidage de l'écran" fonctionne, mais le curseur semble partir un peu n'importe où : parfois au milieu de l'écran un peu dans le vide, parfois hors de la zone visible et on ne voit alors pas ce que l'on tape (mais presser [Exe] lors de la saisie en cours remet les choses en ordre).
- Quelques affichages un peu étonnant des messages d'erreur :
Hélas ça ne semble pas déterministiquement reproductible, et encore une fois, ce n'est pas vraiment très problématique. ^^
Pour la suite, et grapiller un peu d'espace encore, il devrait être possible de passer le catalogue en fichier "auxiliaire" contenant du texte, et de le charger en RAM en le lisant depuis la flash lorsque nécessaire par exemple. Je ne suis pas sûr que le gain soit particulièrement important, mais bon.
(Je vais essayer le script que tu proposes dans le post précédent, et chronométrer pour voir ce que ça donne… !)
Le support de la syntaxe Python avec de quoi faire des graphismes est prometteur également ! Ça va faire «monter la machine en gamme» tout ça ! ^^
Last edited by Nemhardy on 19 Jun 2018, 20:06, edited 1 time in total.
Je maintiens le portage d'Eigenmath pour les Casio monochromes, n'hésitez pas à y jeter un œil si ça vous intéresse !
-
NemhardyPremium
Niveau 8: ER (Espèce Rare: nerd)- Posts: 45
- Joined: 28 Dec 2014, 22:06
- Gender:
- Calculator(s):→ MyCalcs profile
Re: question sdk graph 90+e/ portage CAS
Oui, il y a des bugs dans le traitement des chaines de caracteres, ustl::string n'est pas completement compatible avec string, et la concatenation de caracteres/chaines C avec des ustl::string ne fonctionne pas correctement. Je me demande si le plus simple ne serait pas de reecrire une classe string.
-
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)- Posts: 3699
- Joined: 13 Dec 2013, 16:35
- Gender:
- Calculator(s):→ MyCalcs profile
Re: question sdk graph 90+e/ portage CAS
Alors quelques tests de vitesse d'affichage de la fractale :
Quand on se rappelle que la cp400 met je ne sais pas combien de fois plus de temps pour juste faire tourner un algorithme de seuil de suite, ça reste raisonnable, même si loin du "temps réel"… ^^
Ceci dit, j'ai aussi remarqué la chose suivant : lorsque l'on quitte l'addin pour aller dans une autre application après avoir lancé le script Python pour afficher la fractale de Mandelbrot, à cause de la sauvegarde des variables, il se passe un certain temps (~15s) où la calculatrice mouline, sûrement pour écrire le fichier : ça n'est pas excessif, mais ça peut peut-être être gênant dans certains cas (examens, etc) : ça vaudrait peut être le coup de désactiver la sauvegarde par défaut des variables, en laissant la possibilité de l'activer lorsqu'on en a besoin. Enfin, les variables induites par le script sont peut être bien plus "grosses" que ce qu'une session "normale" d'utilisation engendre, donc à voir… ^^
fra1(50,50,10)
prend ~ 6sfra1(100,100,10)
prend ~ 22sfra1(200,200,10)
prend ~ 1min28sQuand on se rappelle que la cp400 met je ne sais pas combien de fois plus de temps pour juste faire tourner un algorithme de seuil de suite, ça reste raisonnable, même si loin du "temps réel"… ^^
Ceci dit, j'ai aussi remarqué la chose suivant : lorsque l'on quitte l'addin pour aller dans une autre application après avoir lancé le script Python pour afficher la fractale de Mandelbrot, à cause de la sauvegarde des variables, il se passe un certain temps (~15s) où la calculatrice mouline, sûrement pour écrire le fichier : ça n'est pas excessif, mais ça peut peut-être être gênant dans certains cas (examens, etc) : ça vaudrait peut être le coup de désactiver la sauvegarde par défaut des variables, en laissant la possibilité de l'activer lorsqu'on en a besoin. Enfin, les variables induites par le script sont peut être bien plus "grosses" que ce qu'une session "normale" d'utilisation engendre, donc à voir… ^^
Je maintiens le portage d'Eigenmath pour les Casio monochromes, n'hésitez pas à y jeter un œil si ça vous intéresse !
-
NemhardyPremium
Niveau 8: ER (Espèce Rare: nerd)- Posts: 45
- Joined: 28 Dec 2014, 22:06
- Gender:
- Calculator(s):→ MyCalcs profile
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 42137
- Images: 16453
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: question sdk graph 90+e/ portage CAS
La sauvegarde des variables occupe peu de place, mais je soupconne que le bug des strings cree ce laps de temps. On va essayer de corriger ca...
-
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)- Posts: 3699
- Joined: 13 Dec 2013, 16:35
- Gender:
- Calculator(s):→ MyCalcs profile
Re: question sdk graph 90+e/ portage CAS
J'arrive peut-être un peu tard, mais je n'ai pas tout suivi sur les fonctions de dessin. Est-ce une extension du module Python de la Graph 90+E (pourtant pas encore publiquement disponible) ou un port de Python complètement indépendant ?
En tous cas c'est très fort, bien joué. ^^
En tous cas c'est très fort, bien joué. ^^
-
LephePartenaire
Niveau 11: LV (Légende Vivante)- Posts: 387
- Images: 42
- Joined: 15 Jun 2018, 19:53
- Gender:
- Calculator(s):→ MyCalcs profile
Re: question sdk graph 90+e/ portage CAS
Ni l'un ni l'autre C'est la compatibilite de syntaxe Python dans Xcas, ou plutot dans KhiCAS ici. J'ai adopte les memes noms de commande que Numworks, si on a du Python compatible a plusieurs endroits, autant qu'il soit compatible aussi pour les graphiques. Je rajouterai peut-etre des fonctions de trace (draw_line par exemple).
-
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)- Posts: 3699
- Joined: 13 Dec 2013, 16:35
- Gender:
- Calculator(s):→ MyCalcs profile
Re: question sdk graph 90+e/ portage CAS
Et donc on peut écrire des programmes dans une syntaxe compatible Python avec des fonctions formelles à disposition ?
-
LephePartenaire
Niveau 11: LV (Légende Vivante)- Posts: 387
- Images: 42
- Joined: 15 Jun 2018, 19:53
- Gender:
- Calculator(s):→ MyCalcs profile
Who is online
Users browsing this forum: ClaudeBot [spider] and 5 guests