π
<-
Chat plein-écran
[^]

Spectres d'émission et d'absorption dans ta NumWorks

Spectres d'émission et d'absorption dans ta NumWorks

Message non lude Admin » 24 Mai 2019, 19:34

A la rentrée 2019 en Seconde, le programme de Physique-Chimie fait en effet appel aux scripts Python afin d'illustrer graphiquement divers phénomènes physiques. La NumWorks est à ce jour la seule calculatrice venant avec un langage Python qui intègre des possibilités graphiques. :bj:

Dans un article précédent, nous traitions déjà de mettre le spectre continu de la lumière visible dans ta NumWorks.

11278Voici aujourd'hui un script Python toujours dans le cadre de la partie Vision et image du programme de Seconde, mais qui va ici un petit peu plus loin en te juxtaposant les spectres de raies d'émission et d'absorption d'un élément chimique au choix. En prime il tient même compte de l'intensité pour chaque affichage de raie ! :D

Une belle illustration des formidables capacités graphiques du Python sur calculatrice NumWorks, sans comparaison possible à ce jour ! :bj:

Les données sont extraites du catalogue Line Spectra of the Elements de 1981 par Reader J. et Corliss Ch.H..

Toutefois, seules les données concernant les 8 premiers éléments chimiques sont actuellement incluses dans le script, soit tout de même déjà 443 raies, transcodées dans un format binaire afin de minimiser la place occupée en mémoire.

Malheureusement, le facteur limitant nous empêchant d'intégrer davantage d'éléments dans ce script est la capacité de la mémoire de travail Python NumWorks, avec seulement dans les 16Kio, actuellement la pire capacité parmi toutes les solutions concurrentes.

Téléchargement : archives_voir.php?id=2119058

Sources données :
 
Ce compte ne reçoit pas de MP / This account does not receive PMs.
Avatar de l’utilisateur
AdminAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 0.5%
 
Messages: 458
Images: 28
Inscription: 30 Aoû 2011, 11:00
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Spectres d'émission et d'absorption dans ta NumWorks

Message non lude critor » 24 Mai 2019, 19:41

Pour ceux qui voudraient tenter d'intégrer davantage d'éléments, ou remplacer les 8 éléments intégrés par défaut, je joins la feuille de calcul qui intègre les 17016 raies visibles, et les transcode au format binaire minimisé choisi pour le script.
Fichiers joints
catalog.ods
(807.73 Kio) Téléchargé 91 fois
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.4%
 
Messages: 41455
Images: 14353
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Spectres d'émission et d'absorption dans ta NumWorks

Message non lude parisse » 25 Mai 2019, 09:38

J'ai un portage pour KhiCAS, mais il y a encore des problemes:
https://www-fourier.ujf-grenoble.fr/~parisse/casio/sessions/spect.xw
Ca vient du fait que je ne comprends pas comment fonctionne le script qui est en tout cas pour moi opaque. J'ai d'abord modifie les entiers en flottants pour les divisions / (sinon les modulos % font de l'arithmetique entiere avec les fractions), j'ai aussi modifie les appels a color en rgb. J'ai repris le return de c2hsv car il utilise des and et des or avec une interpretation specifique a python3 qui fait que par exemple 1.2 and 2.5 renvoie 2.5 (et non True) ou 1.2 or 2.5 renvoie 1.2, ce que je n'ai pas l'intention de modifier dans Xcas (c'est surement plus efficace, mais ca rend les formules illisibles).
Sauf erreur, la variable t ne sert a rien dans spectrum
Si m est nul dans spectrum, j'utilise ce,ca=0,c. Si je ne fais pas le test alors la bande d'absorption a des couleurs bizarres, hsv2c n'etant pas inverse de c2hsv en Xcas, peut-etre a cause d'erreurs d'arrondi, ce serait a analyser.
Il reste quand meme quelques couleurs un peu etranges avec la formule hsv2c(h,s,g+q*v),hsv2c(h,s,v-q*(v-g)).
Il y a une reference quelque part qui explique comment fonctionnent hsv2c et c2hsv?
Mes versions actuelles sont:
Code: Tout sélectionner
def c2hsv(c):
  b,g,r=((c&31)<<3)/255.0,((((c>>5)&63)<<2)&255)/255.0,((((c>>11)&31)<<3)%255)/255.0
  cs=max(r,g,b)
  d=cs-min(r,g,b)
  if cs==r:
      return (((g-b)/d)%6)/3.0,d/cs,cs
  if cs==g:
      return ((b-r)/d+2)/3.0,d/cs,cs
  return ((r-g)/d+4)/3.0,d/cs,cs

def hsv2c(h,s,v):
  c=v*s
  x,m,k=c*(1-abs((h%(2/3.0))*3-1)),v-c,(h*3)//1
  return rgb((m+x*(k%3==1)+c(m+x*(k%3==1)+c*(k%5==0))),(m+c*(k==1 or k==2)+x*(k%3==0)),(m+x*(k%3==2)+c*(k==3 or k==4)))
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 77.1%
 
Messages: 3497
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Spectres d'émission et d'absorption dans ta NumWorks

Message non lude critor » 25 Mai 2019, 09:57

Merci.

J'ai supprimé la variable t du code.

Pour les couleurs, c2hsv(c) est basé sur cet algorithme :
https://www.rapidtables.com/convert/col ... o-hsv.html
Image
Avatar de l’utilisateur
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Prochain niv.: 41.4%
 
Messages: 41455
Images: 14353
Inscription: 25 Oct 2008, 00:00
Localisation: Montpellier
Genre: Homme
Calculatrice(s):
MyCalcs profile
YouTube: critor3000
Twitter/X: critor2000
GitHub: critor

Re: Spectres d'émission et d'absorption dans ta NumWorks

Message non lude parisse » 25 Mai 2019, 10:32

J'ai aussi trouve sur wikipedia https://fr.wikipedia.org/wiki/Teinte_Saturation_Valeur, et en utilisant leur methode pour hsv2c (avec h dans [0,2] pour nous contre t entre 0 et 360 degres pour eux), les aberrations de couleur disparaissent.
Code: Tout sélectionner
def hsv2c(h,s,v):
  c=v*s
  k=floor(3*h)
  f=3*h-k
  l=v*(1-s)
  m=v*(1-f*s)
  n=v*(1-(1-f)*s)
  if k==0: return rgb(v,n,l)
  if k==1: return rgb(m,v,l)
  if k==2: return rgb(l,v,n)
  if k==3: return rgb(l,m,v)
  if k==4: return rgb(n,l,v)
  if k==5: return rgb(v,l,m)

Comme hsv2c n'est pas appele tres souvent, ce n'est pas grave s'il est moins efficace, du moment que ca marche, du coup j'ai mis a jour la version KhiCAS, elle fonctionne a ceci pres qu'il faut interpreter le code apres avoir charge la session en faisant EXIT EXE EXIT. Je pense que c'est du a la taille des donnees qui pose probleme pour la restauration directe de la session sur la graph 90 (ray n'est pas restaure correctement).
Sinon, que pensez-vous de ma simplification lorsque m==0?
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 77.1%
 
Messages: 3497
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Spectres d'émission et d'absorption dans ta NumWorks

Message non lude parisse » 25 Mai 2019, 10:41

Version en ligne session Xcas
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 77.1%
 
Messages: 3497
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: Spectres d'émission et d'absorption dans ta NumWorks

Message non lude Adriweb » 25 Mai 2019, 10:48

Je suppose que c'est normal que j'obtiens "GIAC_ERROR: rgb(r,g,b) in l2c(420.731070496) instruction #7 error, try debug(l2c(420.731070496)) Error: Bad Argument Value" sur mon fork, il faut une mise à jour du moteur pour avoir les dernières fonctionnalités ? (J'ai vu un commit il n'y a pas si longtemps, mais ça ne doit pas être encore ça)
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80%
 
Messages: 14599
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: Spectres d'émission et d'absorption dans ta NumWorks

Message non lude parisse » 25 Mai 2019, 10:59

Depuis mon site (donc avec le lien donne dans le post), il faut peut-etre vider le cache de Firefox.
Depuis le fork sur github, ca ne marchera pas comme ca, il faut mettre a jour le moteur emscripten mais aussi xcas.js. Je pensais en faire ca plus tard lorsque toutes les modifs auront ete faites, car c'est toujours aussi peu intuitif pour moi d'utiliser git.
Avatar de l’utilisateur
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Prochain niv.: 77.1%
 
Messages: 3497
Inscription: 13 Déc 2013, 16:35
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile


Retourner vers News NumWorks

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 6 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
736 utilisateurs:
>708 invités
>23 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)