Remappage de valeur
De traitement a une grande fonction que j'utilise tout le temps:
map(value, low1, high1, low2, high2)
http://processing.org/reference/map_.html
Il reconfigure value
(qui a une plage de low1
à high1
) dans une fourchette cible de low2
à high2
).
Je veux comprendre les mathématiques derrière elle pour que je puisse l'utiliser dans d'autres langues.
Quelqu'un veut me jeter un os et m'aider à désosser? Je comprends que c'est un lerp qui a été re-mise à l'échelle et re-décalage... sentiment de mort cérébrale ce matin.
source d'informationauteur ack
Vous devez vous connecter pour publier un commentaire.
À partir de votre description, il devrait le faire, non?
Trouver dans quelle mesure vous êtes dans la première plage, à l'échelle de distance par le rapport des tailles des plages, et à ce jour, vous devriez être dans la deuxième plage.
Je voudrais ajouter que c'est parfois utile pour trouver le facteur entre les low1 et high1 de sorte que vous pouvez moduler avec une courbe avant d'utiliser le facteur de LERP t.
Donc, t = (valeur low1)/(high1-low1) pour obtenir la position relative de la valeur dans la ligne low1 à high1.
Ensuite, vous pouvez moduler t avec certains de la courbe de filtre par exemple, gamma, les préjugés, gain, etc, Comme aussi de serrage de la t entre 0 et 1 si vous restreindre les valeurs qui vont au-dessus de l'ensemble les hauts et les bas.
Et ensuite utiliser le t pour la LERP entre low2 et de hauteur2 comme: finalvalue = low2*(1-t) + hauteur2*t
Traitement est open-source. Vous pouvez afficher les
map()
fonction ici.Plus précisément, vous êtes à la recherche pour cette ligne de code:
En plus des autres réponses que vous pouvez utiliser
que si vous savez que la gamme d'origine et la cible ont une des formes suivantes
où a, b, c et d représentent un nombre != 0
j'.e
et ne fonctionnent pas pour les autres cas comme
etc.