Modèle:Lo vers rvb/algo1/Documentation

Cette page est chronoogiquement le premier essai réalisé pour Modèle:Lo vers rvb.

wikicode modifier

<!-- * Premier essai en essayer d’approximer l’œil: -->{{#if: {{{1|}}}| {{Hexadécimal_sans_span|{{#expr: 255/(1+({{{1|0}}}-{{{2|654}}})*({{{1|0}}}-{{{2|654}}})/1000) }}|no}} <!--rouge--> | {{#expr: {{{1|0}}}/{{{2|1}}} round {{{3|0}}} }} }}<!-- -->{{#if: {{{1|}}}| {{Hexadécimal_sans_span|{{#expr: 255/(1+({{{1|0}}}-{{{2|533}}})*({{{1|0}}}-{{{2|533}}})/1000) }}|no}} <!--vert--> | {{#expr: {{{1|0}}}/{{{2|1}}} round {{{3|0}}} }} }}<!-- -->{{#if: {{{1|}}}| {{Hexadécimal_sans_span|{{#expr: 255/(1+({{{1|0}}}-{{{2|437}}})*({{{1|0}}}-{{{2|437}}})/1000) }}|no}} <!--bleu--> | {{#expr: {{{1|0}}}/{{{2|1}}} round {{{3|0}}} }} }}<!-- -->

Sujet modifier

Les cônes de l’œil humain sont axés sur les trois longueurs d'ondes, ce qui a conduit a créer des écrans avec les trois couleurs RVB, pour l'oeil:

  • 437 nm: bleu
  • 533 nm: vert
  • 564 nm: rouge

Il s'agit donc, pour chaque longueur d'onde, de procéder en trois étapes:

  1. De convertir la longueur d'onde en valeur RVB correspondant aux longueurs d'ondes de référence des écrans/de l'oeil
  2. De convertir en hexadécimal : (fait)
  3. De s'assurer que le code hexadécimal est utilisable dans un tableau (à faire)

Principe essayé dans ce modèle modifier

Trouver une luminosité correspondant en appliquant une courbe en cloche : à faire?

Calcul de l'écart modifier

implémenté Par soustraction mathématique. Valeurs de référence

  • 437 nm: bleu
  • 533 nm: vert
  • 564 nm: rouge

Courbe en cloche modifier

Le but est d'appliquer une courbe en cloche, mais comment?

Peut-être qu'il faudrait approcher la Fonction de Voigt?

Le plus simple est sans doute d'implémenter une fonction lonrentzienne.

Les modèles suivants existent:

  • Modèle:Interpolation: Risque de ne pas convenir pour le zéro.
  • Modèle:Quel intervalle: On peut approcher une courbe en cloche avec deux sections constantes et une section linéaire de chaque côté de l'axe de la cloche.

Conversion en hexadécimal modifier

La conversion en hexadécimal s'appuie à partir du modèle Modèle:Hexadécimal_sans_span

Implémentation modifier

  1. Découper la longueur d'onde en tranches
  2. Pour chaque tranche, appliquer une approximation linéaire.
λ Description Rouge Vert Bleu
380 < λ < 380 Ultra violets invisibles 00 00 00
380 < λ < 420 Mélange rouge/bleu en guise d'UV...! 255*(440-λ )/(440-380)*γ*(0.3+0.7*(λ-380))/(420-380) 00 255*(0.3+0.7*(λ-380))/(420-380)* γ
420 < λ < 440 Rouge décroissant 255*(440-λ)/(440-380)*γ 00 255*γ
440 < λ < 490 Vert croissant 00 255*(λ-440)/(490-440)*γ 255*γ
490 < λ < 510 Bleu décroissant 00 255*γ 255*(510-λ)/(510-490)*γ
510 < λ < 580 Rouge croissant 255*(λ-510)/(580-510)*γ 255*γ 00
580 < λ < 645 Vert décroissant 255*γ 255*(645-λ)/(645-580)*γ 00
645 < λ < 700 Rouge constant 255*γ 00 00
700 < λ < 780 Rouge décroissant 255*(0.3+0.7*(780-λ))/(780-700)*γ 00 00
780 < λ Infra rouges invisibles 00 00 00

Exemple modifier

Description Wikicode Résultat
Longueur d'onde de 437nm {{000#000000|437}} Résultat : 010101#0C00FF