试图转换一些代码,但对于我所有的谷歌搜索,我无法弄清楚如何转换这一点.
float fR = fHatRandom(fRadius);
float fQ = fLineRandom(fAngularSpread ) * (rand()&1 ? 1.0 : -1.0);
float fK = 1;
Run Code Online (Sandbox Code Playgroud)
这一点
(rand()&1 ? 1.0 : -1.0);
Run Code Online (Sandbox Code Playgroud)
我弄不清楚.
它是1或-1,有50/50的几率.
等效的C#代码是:
((new Random().Next(0, 2)) == 0) ? 1.0 : -1.0;
Run Code Online (Sandbox Code Playgroud)
Next(0,2) 将返回0或1.
如果代码被调用很多,你应该存储实例Random并重新使用它.当您创建新实例时Random,会使用确定伪随机数序列的种子进行初始化.为了获得更好的"随机性",您不应经常重新初始化随机序列.
| 归档时间: |
|
| 查看次数: |
180 次 |
| 最近记录: |