将十六进制颜色转换为浮点数

时间:2013-01-27 20:34:04

标签: opengl-es hex rgb

这看起来有点傻,但我无法理解如何在glColor4f中输入所需的颜色。我的意思是,它需要4个浮点数介于0.0~1.0之间,我找到的所有颜色都是十六进制或rgb(介于0~255之间)。

如何使用glColor4f进行转换以获取所需的颜色?

我已经尝试过这样的事情:

glColor4f(1/248, 1/50, 1/99);

但它没有成功。

我正在使用JAVA和OpenGL-ES

2 个答案:

答案 0 :(得分:4)

'C'在整数中执行整数算术

1/248将向下舍入为零,您需要使用浮点值。即1.0/248.0
但是,由于您想将8位RGB转换为0-1,您需要执行(float)R/255.0

编辑:无论使用何种语言,glColor4f()都需要0-1范围内的值,其中0表示黑色,1表示全彩色。要将0-255值转换为0-1范围,您必须除以255,而不是取倒数。

答案 1 :(得分:0)

浮出=(1.0f / 255)*颜色;

这适用于AndEngine ColorParticleModifier