Scaling between two number ranges

后端 未结 5 887
独厮守ぢ
独厮守ぢ 2020-12-25 15:19

I remember using an equation to do this at some point – how do you do this in Javascript?

Plugin two number ranges:

rangeX = 1 (through) 10;
rangeY =         


        
5条回答
  •  佛祖请我去吃肉
    2020-12-25 15:52

    I turned @Foggzie's answer into a TypeScript function and ES2016 function.

    TypeScript:

    const scale = (inputY: number, yRange: Array, xRange: Array): number => {
      const [xMin, xMax] = xRange;
      const [yMin, yMax] = yRange;
    
      const percent = (inputY - yMin) / (yMax - yMin);
      const outputX = percent * (xMax - xMin) + xMin;
    
      return outputX;
    };
    

    ES2016:

    const scale = (inputY, yRange, xRange) => {
      const [xMin, xMax] = xRange;
      const [yMin, yMax] = yRange;
    
      const percent = (inputY - yMin) / (yMax - yMin);
      const outputX = percent * (xMax - xMin) + xMin;
    
      return outputX;
    };
    

提交回复
热议问题