【发布时间】:2018-04-06 15:54:22
【问题描述】:
我有一个近似尺寸为 3000x1 的浮点数组。该数组包含范围在 -10^(-3) 到 10^(-3) 之间的值。我想使用这些值使用 setColor 方法为 Android 手机显示屏上的图像着色,该方法接受 RGB 值作为 int。
我想要最小值,例如-10^-3 出现蓝色,当你接近 0 时变得更绿色。从 0 到最大值,颜色应该从绿色变为黄色/橙色/红色。我相当有信心这是一个很容易解决的问题。
基本上,min(my_array) 应该被分配一个近似的 0x0000F0。当我们从 min(my_array) 向 0 移动时,颜色应该逐渐变得更蓝绿色,直到它变成绿色。从那里开始它应该朝向黄色和红色,直到达到 max(my_array)。
我是否需要将 RGB 地图分成 3000 段。然后我可以按升序排列我的数组,并以升序添加相应的 RGB 值作为第二列。然后我不确定如何让数组恢复到原始顺序。
【问题讨论】:
-
实际上,不,我在上一段中提出的方法不起作用,因为如果我的最小值有很大差异,它们看起来或多或少具有相同的颜色。映射需要简单地接受 -10^-3 到 10^-3 范围内的值,然后简单地扩展该范围并将其映射到 0x0000FF 到 0xFF0000。