我正在研究opengles。我想知道如何在-1到1之间生成,那是因为opengl规范化设备坐标只在-1和1之间。有人提到随机浮点数仅在0.0和0.9999999之间。
这是我的代码
points.addParticles(new GeoPoint(-random.nextFloat(),random.nextFloat(),random.nextFloat()),180);
这是x,y,z和随机颜色。
我只是想在随机位置的屏幕内生成随机点。
答案 0 :(得分:24)
井Random.nextFloat
给出大于或等于0且小于1的值 - 即[0,1]的范围。因此,要将其映射到范围[-1, 1)
,您只需要乘以2并减去1。
float value = random.nextFloat() * 2 - 1;
通常,要获得[x, y)
范围内的值,您需要使用
random.nextFloat() * (x - y) + x
答案 1 :(得分:2)
那么你可以使用一个随机的,这将决定你乘以1还是(-1)? 如果随机> 0.5(first_random * 1)else(first_random *( - 1))