Simulation LED tricolore (RGB) [Résolu]

Messages postés
2
Date d'inscription
dimanche 5 juin 2005
Dernière intervention
22 juillet 2007
- - Dernière réponse : Nei_Mad
Messages postés
2
Date d'inscription
dimanche 5 juin 2005
Dernière intervention
22 juillet 2007
- 22 juil. 2007 à 00:10
Bonjour.
Je suis actuellement en train de développer un logiciel et j'ai besoin qu'il puisse simuler l'allumage d'une LED tricolor (en fait 3 LEDs : une rouge, une verte et une bleue). Pour cela, je cherche à coder une fonction qui a pour paramètres :

en entrée :
- taux d'allumage de la led rouge (8 bits)
- taux d'allumage de la led verte (8 bits)
- taux d'allumage de la led bleue (8 bits)

sortie : la couleur 32 bits crée par la LED (c a d la couleur + la composante de transparence)

J ai bien évidemment imaginé "copier coller" les 3 niveaux d'entrée dans la couleur de sortie mais je me suis vite rendu compte que ca ne marcherait pas.
Exemple
Si les 3 canaux sont allumés à 100%, on obtient en pratique du blanc (éblouissant, au passage). Si on copie-colle les niveaux dans la couleur (R:255, V:255, B:255), on obtient du blanc... OK
Si les 3 canaux sont allumés à 50%, on obtient en pratique du blanc, moins lumineux que pour le cas précédent. Par contre, si on copie colle les niveaux dans la couleur (R:127, V:127, B:127), on n'obtient plus du blanc mais du gris. Le but de la fonction que je cherche à coder serait de donner la couleur (ici : blanc) et la transparence (ici, 50% a peu pres), or je ne vois pas du tout comment effectuer la conversion.

Merci de votre aide.
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
968
Date d'inscription
samedi 3 avril 2004
Dernière intervention
4 mars 2010
3
Merci
Voici quelque chose qui devrait marcher pour le blanc, je sais pas ce que ca donnera pour le reste :

entrée tr, tg ,tb;
k=255/max(tr,tg,tb)
sortie red=tr*k, green=tg*k, blue=tb*k, alpha=255-k

attention k flottant donc faire les conversions int-float nécessaires

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 105 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_juju12
Messages postés
2
Date d'inscription
dimanche 5 juin 2005
Dernière intervention
22 juillet 2007
3
Merci
Bonsoir
Je viens de faire des tests de cet algo pour mon application : le rendu des couleurs correspond parfaitement à ce dont j ai besoin. Par contre, j'ai du retoucher le canal alpha :
j'ai remplacé par
alpha=max(tr,tg,tb)
et c est nickel.

Un grand merci !

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 105 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Nei_Mad

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.