Estou estudando opengles. Eu quero saber como posso gerar entre -1 e 1. Isso porque as coordenadas do dispositivo normalizado opengl estão apenas entre -1 e 1. Alguns mencionaram que a flutuação aleatória está apenas entre 0,0 e 0,9999999.
aqui está meu código
points.addParticles(new GeoPoint(-random.nextFloat(),random.nextFloat(),random.nextFloat()),180);
Isso é para x, y, z e cor aleatória.
Eu só quero gerar pontos aleatórios dentro da tela com localização aleatória.
Respostas:
21 para resposta № 1Bem Random.nextFloat
fornece um valor maior ou igual a 0 e menor que 1 - ou seja, um intervalo de [0, 1). Então, para mapear isso para uma variedade de [-1, 1)
você só precisa multiplicar por 2 e subtrair 1.
float value = random.nextFloat() * 2 - 1;
Em geral, para obter um valor no intervalo [x, y)
você usaria
random.nextFloat() * (x - y) + x
2 para resposta № 2
Bem, você poderia usar mais um aleatório, o que decidiria se você multiplicasse por 1 ou (-1)? if random> 0.5 (first_random * 1) else (first_random * (- 1))