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