THREE.Math.mapLinear 到底做什么?

dis*_*ple 2 javascript three.js

我看过一个示例程序,为了放置球体的位置,他们正在做一些数学计算。我所看到的THREE.Math.mapLinear()就是被使用的。如果我将参数传递为:

var x = THREE.Math.mapLinear(-70.16, -150, 150, 0, 1366);
Run Code Online (Sandbox Code Playgroud)

那么 的值x显示为 363.51。

请问谁能解释一下究竟发生了什么?

Jam*_*rpe 6

mapLinear函数采用两个数字范围(a1-a2b1- b2)和一个偏移量(x):

mapLinear: function ( x, a1, a2, b1, b2 ) {
    return b1 + ( x - a1 ) * ( b2 - b1 ) / ( a2 - a1 );
}
Run Code Online (Sandbox Code Playgroud)

a它计算出该范围有多远x,并计算等效位置b并返回它。

根据您的输入,-70.16大约为 的范围的四分之一( 23.387%) 。该函数返回,这大约相当于到范围的四分之一(23.387%) 。-150150363.5101366