0

我在我的 java 书中处理这个例子,它应该绘制一个数学函数并且它确实有效,但我不明白最后两行,有人可以向我解释一下吗?假设这data是一个双精度数组并保存某个“范围”的函数值,在这种情况下,范围是 -pi 到 pi。

这本书对这段代码有一个注释,我知道它在做什么,但我想知道为什么我们在这个循环中做最后两行。

// Scale and translate data values
for (int i = 0; i < d.width; i++) {
        double value = data[i];
        double k = (value - min) / (max - min);
        data[i] = d.height * (1 - k);
    }

有人可以帮我吗?

4

1 回答 1

2

当然。为了绘制图形,需要对函数的 y 值进行缩放,以使其适合绘制区域的高度。k它的缩放版本也在 0 到 1 的范围内 - 也就是说,y最小值将映射到 0,最大值将映射到 1。最后,通过转换k为 0 和 之间的值来找到要绘制的数据点d.height

于 2012-07-14T05:10:01.353 回答