Android Opengl Vertex大于1

时间:2014-11-25 02:52:18

标签: android opengl

我在Android工作,做一个我有顶点的多边形,问题是,有大于1的顶点,它们是浮点数。

我见过一个代码,其中one的值以这种方式处理:

int one = 0x10000;

我有这样的浮动值:

float verticesflotantes[]={//Arreglo de Vertices Flotantes
                  1.0000f,    1.0000f,    4.2361f,
                  1.0000f,    1.0000f,   -4.2361f,
                  1.0000f,   -1.0000f,    4.2361f,
                  1.0000f,   -1.0000f,   -4.2361f,
                 -1.0000f,    1.0000f,    4.2361f,
                 -1.0000f,    1.0000f,   -4.2361f,
                 -1.0000f,   -1.0000f,    4.2361f,
                 -1.0000f,   -1.0000f,   -4.2361f,
                  4.2361f,    1.0000f,    1.0000f,.... continue...

但我需要的vertexarray是一个int,我试试这个:

int vertices[] = new int[verticesflotantes.length];

        for(int i = 0;i<verticesflotantes.length;i++){
            // 1 = 65536
            // 5 = 1 = 65536
            // 5 = 65536
            // x = x*65536/5

            float regla3 = verticesflotantes[i]*65536/5;

            String hexadecimal = Float.toHexString(regla3);

            vertices[i]= Integer.parseInt(hexadecimal,16);
}

但这给了我一个错误:

无效的int:&#34; 0x1.99999ap13&#34;

enter image description here

帮助我感到困惑......

1 个答案:

答案 0 :(得分:0)

你得到了NumberFormatException,因为你解析了一个&#34;浮点字符串&#34;在Integer.parseInt(...)函数中。
也许你可以这样做:

int regla3 = (int) verticesflotantes[i]*65536/5; // get the integer part
// well... now you have integer part, I think there is nothing we need to do.

vertices[i] = regla3;