Bonjour,
Après mes premiers tests pour faire varier progressivement l'intensité lumineuse des bandes de LED, je trouve que la progession n'est pas linéaire... elle s'allume fort "trop" rapidement.
Pour remédier à ça, avec mon background de modéliste, je me dis : "Faut mettre de l'expo"... mais de l'expo pour les modélistes ça ressemble à ça :

C'est une courbe "quart de cercle, je me suis un peu battu pour trouver comment tracer la fonction, mais j'y suis arrivé (merci Monsieur Pythagore !)
Au niveau code, j'ai appelé la bleu (f(x)):
sqlog() (parce qu'elle me rappelait une fonction logarithme) et la rouge (g(x))
sqexp() (parce qu'elle me rappelait une exponentielle).
La verte h(x) est la droite y=x standard.
int sqlog (long xval,long xmax) {
if (xval<0){
if (xval<-xmax) xval=-xmax;
return -(sqrt(sq(xmax)-sq(xmax+xval)));
}
else {
if (xval>xmax) xval=xmax;
return (sqrt(sq(xmax)-sq(xmax-xval)));
}
}
int sqexp (long xval,long xmax) {
if (xval<0) {
if (xval<-xmax) xval=-xmax;
return -(xmax-sqrt(sq(xmax)-sq(-xval)));
}
else {
if (xval>xmax) xval=xmax;
return (xmax-sqrt(sq(xmax)-sq(xval)));
}
}
Mais vous allez me dire : "Mais ou est la question ?"... j'y viens :
J'aimerai pouvoir utiliser les courbes "intermédiaires" entre la bleue et la verte, avec une courbure plus faible (moins d'expo diront les modélistes)... mais mon niveau en math me fait coincer.
