/ / Gerando float aleatório entre negativos e positivos opengl es java - java, android, random, opengl-es

Gerando flutuação aleatória entre negativas e positivas - java, android, random, opengl-es

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.

insira a descrição da imagem aqui

Eu só quero gerar pontos aleatórios dentro da tela com localização aleatória.

Respostas:

21 para resposta № 1

Bem 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))