从double转换为int而不截断为零

时间:2014-05-08 04:21:37

标签: java casting integer rgb raytracing

我正在创建一个Ray Tracer,我发现了我的形状(球体)的环境,漫反射和镜面反射强度。当我尝试将这些小于1的值转换为整数值时,它们会被截断回零。

int red = Color.getRed() * (int)totalIntensity;
        int green = Color.getGreen() * (int)totalIntensity;
        int blue = Color.getBlue() * (int)totalIntensity;
return new Color(red, green, blue);

问题是我需要红色,绿色和蓝色的值为整数,所以我可以返回新的颜色。无论如何我可以在不将所有totalIntensity值都变为零的情况下执行此操作吗?

1 个答案:

答案 0 :(得分:2)

我相信int red = (int) (Color.getRed() * totalIntensity);应该做的工作。