Modèle:Lo vers rvb/algo1
Ceci est la documentation du modèle {{Lo vers rvb/algo1}}.
Ce modèle est destiné à être appelé par le modèle {{Lo vers rvb}}, il ne devrait pas être utilisé directement.
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
modifierLes 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:
- De convertir la longueur d'onde en valeur RVB correspondant aux longueurs d'ondes de référence des écrans/de l'oeil
- De convertir en hexadécimal : (fait)
- De s'assurer que le code hexadécimal est utilisable dans un tableau (à faire)
Principe essayé dans ce modèle
modifierTrouver une luminosité correspondant en appliquant une courbe en cloche : à faire?
Calcul de l'écart
modifierimplémenté Par soustraction mathématique. Valeurs de référence
- 437 nm: bleu
- 533 nm: vert
- 564 nm: rouge
Courbe en cloche
modifierLe 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
modifierLa conversion en hexadécimal s'appuie à partir du modèle Modèle:Hexadécimal_sans_span
Implémentation
modifier- Découper la longueur d'onde en tranches
- 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
modifierDescription | Wikicode | Résultat |
---|---|---|
Longueur d'onde de 437nm | {{000#000000|437}} | Résultat : 010101#0C00FF |
La documentation de ce modèle est générée par le modèle {{Documentation d'une sous-page de modèle}}.
Elle est incluse depuis sa sous-page de documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer) et la page de test (créer).
Voir les statistiques d'utilisation du modèle sur l'outil wstat.