Skip to content

Instantly share code, notes, and snippets.

{"v":"5.6.4","fr":30,"ip":0,"op":91,"w":256,"h":256,"nm":"bitmoji-idle-01-lottie","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":9,"nm":"bitmoji-idle-01","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[128,128,0],"ix":2},"a":{"a":0,"k":[128,128,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"ip":0,"op":91,"st":0,"bm":0}],"markers":[]}
export default function interpolate({
inputRange: [minX, maxX],
outputRange: [minY, maxY],
clamp,
fn = linearStep
}: Props): (number) => mixed {
const slope = (maxY - minY) / (maxX - minX);
function makeInterpolationFunc(x: number) {
const res = (x - minX) * (slope + minY);
return fn(minY, maxY, res, clamp);