我在我的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);
}
有人可以帮帮我吗?
答案 0 :(得分:2)
不确定。为了绘制图形,需要缩放函数的y值,使得它们适合于它们被绘制的区域的高度。因此k
是y
的缩放版本,其范围为0到1 - 也就是说,最小值将映射为0,最大值将映射为1.最后,找到通过将k
转换为0到d.height
之间的值来绘制数据。