Java将一系列浮点值映射到图形显示

Java将一系列浮点值映射到图形显示,java,floating-point-conversion,Java,Floating Point Conversion,我想获取一个浮动值范围,并将其映射到静态范围的颜色0-255,以便在屏幕上显示 标的值范围从最小值0.056582272到最大值0.34371486的浮动开始 运行时,计算将超时更改为最小值0.0791025,最大值为4.5757337 如果我使用 数字/255*最大 代码中的哪个是 thecol=elements[x][y][subject]*255/largest; 当我在屏幕上弹出颜色时,您会在开始时看到它们,然后在结束时看到它们,但中间没有任何颜色。您没有将计算范围的最小值考虑在内 f

我想获取一个浮动值范围,并将其映射到静态范围的颜色0-255,以便在屏幕上显示

标的值范围从最小值0.056582272到最大值0.34371486的浮动开始

运行时,计算将超时更改为最小值0.0791025,最大值为4.5757337

如果我使用

数字/255*最大

代码中的哪个是

thecol=elements[x][y][subject]*255/largest;

当我在屏幕上弹出颜色时,您会在开始时看到它们,然后在结束时看到它们,但中间没有任何颜色。

您没有将计算范围的最小值考虑在内

float rangeSize = largest - smallest;
float mappedTo0to1 = (value - smallest) / rangeSize; // Map to range 0 - 1.
int mappedResult = (int) (mappedTo0to1 * 255); // Map to range you want. (0 - 255).

验证此类函数的诀窍是查看可能的最低和最高输入值。

浮点值太低,四舍五入到byte或int将使它们为零。我建议首先对较大的整数(如MAX_INT)进行计算,然后通过整数计算将其缩小到0-255范围