【问题标题】:Generating random float between negative and positive opengl es java在负数和正数opengl es java之间生成随机浮点数
【发布时间】:2013-12-19 03:42:10
【问题描述】:

我正在学习opengles。我想知道如何在 -1 到 1 之间生成。那是因为 opengl 标准化设备坐标仅介于 -1 和 1 之间。有人提到随机浮点数仅介于 0.0 和 0.9999999 之间。

这是我的代码

 points.addParticles(new GeoPoint(-random.nextFloat(),random.nextFloat(),random.nextFloat()),180);

那是 x,y,z 和随机颜色。

我只想在随机位置的屏幕内生成随机点。

【问题讨论】:

    标签: java android random opengl-es


    【解决方案1】:

    Random.nextFloat 给出大于或等于 0 且小于 1 的值 - 即 [0, 1) 的范围。因此,要将其映射到 [-1, 1) 的范围,您只需乘以 2 并减去 1。

    float value = random.nextFloat() * 2 - 1;
    

    一般来说,要获得[x, y) 范围内的值,您会使用

    random.nextFloat() * (x - y) + x
    

    【讨论】:

    • 成功了。谢谢.. 必须等待 9 分钟才能接受您的回答:D
    • 如果我们想要在 [-1, 1) 之间的形式为 [x,y) 那么 x = -1 and y = 1 and (x - y) = ( (-1) - ( 1) ) = -2。这里是错字还是我做错了什么?
    【解决方案2】:

    你可以再使用一个随机数,它会决定你是乘以 1 还是 (-1)? if random >0.5 (first_random *1) else (first_random*(-1))

    【讨论】:

    • 这个答案更好,因为你只能得到偶数。
    猜你喜欢
    • 2011-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-30
    • 2011-07-07
    • 2014-03-31
    • 2010-10-15
    相关资源
    最近更新 更多