4

1-1000を1-190にマップしたいのですが、マップ関数は次のとおりです。

f(x) = { x                     if 1<=x and x<=100,
         100 + (x-100)/10      if 100 < x <= 1000           }

どうすればいいですか?

4

2 に答える 2

4

最後に、ソースコードをトレースして解決策を得ました:

d3.scale.linear().domain([1, 100, 1000]).range([1, 100,190]) //poly-linear
于 2012-11-30T09:43:14.533 に答える
0

私は3d.jsに慣れていませんが、これは通常のJSで行う方法です

function toNewScale( x ) {

    return Math.round( x / 1000 * 190 );
}

これがあなたが求めていたものである場合。

于 2012-11-30T09:13:57.833 に答える