代码之家  ›  专栏  ›  技术社区  ›  Onyx

创建一个基于mouseX位置从0到1920之间返回-10到10的函数?

  •  -1
  • Onyx  · 技术社区  · 5 年前

    我记得很久以前看到过一个函数,但现在我需要它,我找不到它。本质上,我试图建立一个函数,根据鼠标在0到1920之间的位置返回一个从-10到10的数字。这个数字可以是4.3这样的浮点数。一些例子:

    • 如果mouseX为0,函数将返回-10
    • 如果mouseX是480,函数将返回-5
    • 如果mouseX是960,函数将返回0
    • 如果mouseX是1920,函数将返回10
    • 如果mouseX是1638,函数会进行计算并返回5到10范围内的一个数字(我不确定是哪一个,可能是7.5到8.7)

    不幸的是,我在想怎么做这样一个函数时遇到了一些困难。我真的很感谢你给我的建议和指点,从那里我可以开始思考如何做到这一点。

    1 回复  |  直到 5 年前
        1
  •  1
  •   Nina Scholz    5 年前

    您可以使用一个计算新值的函数。

    const
        takeRange = (smin, smax, tmin, tmax) => x => ((x - smin) * (tmax - tmin) / (smax - smin)) + tmin;
        fn = takeRange(0, 1920, -10, 10);
    
    console.log(fn(0));    // -10
    console.log(fn(480));  //  -5
    console.log(fn(960));  //   0
    console.log(fn(1920)); //  10
    console.log(fn(1638)); //   7.0625