生活、工作点滴(五)

《游戏开发的数学与物理》

1.抛物线公式s = 1/2 * a * t^{2} + v_{0}*t +c 是由微积分推导出来的,将无限小的时间内行进的距离都加起来。因为正常情况下某一段时间内的速度是不一样的,所以直接使用s=v_{0}*\Delta t计算会产生误差。

 

2.计算随机数公式,rand()*n/(float)randmax得到的是0~n之间的随机数,包含浮点数值。

rand() % fsdf % (n + 1) 虽然也是0~n之间的随机数,不过结果是整型值。

不过以上两个公式都是均匀随机数,如果想时间正太分布的随机数需要用到Box-Muller算法,如下所示:

fRand_r = sqrtf( -2.0f * logf( ( float )( rand() + 1 ) / ( RAND_MAX + 1 ) ) );	// √-2ln(a)
fRand_t = 2.0f * PI * ( float )rand() / RAND_MAX;								// 2πb
Balls[i].vx = ( fRand_r * cosf( fRand_t ) ) * VEL_WIDTH;				// 随机设置Vx的初始值
Balls[i].vy = ( fRand_r * sinf( fRand_t ) ) * VEL_HEIGHT - BASE_VEL;	// 随机设置Vy的初始值

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值