返回列表 回复 发帖

[弹弹堂] 弹弹堂抛射公式数学推理过程

无论什么武器,发射出去的炮弹都是做抛体运动,设发射出去的初始速度是V,角度是x,从发射到达到对手的时间是t,自己和对手的高差是h,由于风造成的水平加速度是a,竖直方向固有加速度是g,可能不是物理中的9.8,和对手的距离是S,这里的距离不是屏距上的距离,是实际上的距离。

    那么由物理学中的抛体运动得到方程V *COSx   *t+1/2*a*t^2=S;    V*Sinx *t -1/2*g*t^2=h,先讨论高差是零的情况
    由这两个方程可以解出来这个式子S/(V^2) =2*Sinx*(a*Sinx /g  +COSx)/g
    假定一屏距是10的话,设S0是1代表的实际距离,就是说S/S0=距离(一屏距=10的屏幕距离),记为s,另外,很显然的是力度条影响速度,设V0表示一力度所代表的速度,那么V/V0=v(这就是力度),另外在游戏中风和风速的关系也可以近似成线性关系,设a0表示一风速所带来的水平加速度,那么风速w=(a /g)/(a0  /g)
    将这些先行关系代入就得到下面的含有参数c1 和c2的表达式
    s=c1  *(v^2)*Sinx *(c2  *w* Sinx  +COSx)

    利用大家熟悉的半抛公式,为什么不用满抛公式呢,因为在近距离时候半抛公式比满抛公式更准确,利用半抛公式 角度=90-距离*2  +/-  风速*2,在这里面屏距按照10计算,取几组近距离的距离和风速数值,代入上面的表达式中得到几组相应的数据,从而得到几组参数c1 和c2的值,可以取数据如下
    (距离,风速,角度):第一组2,0,86;第二组3,0,84;第三组3.5,0,83;第四组4,0,82第五组5,0,80取这五组使得风速是零,采用半抛公式,所以v=60,可以解得五组c1的数据如下:
    0.798366%,0.801622%,0.803749%,0.806212%,0.812168%,取其平均值得0.804423%;在这五组里面令风速和距离相等将会使得角度等于90度,从而可以求出五组c2的数据如下:0.0347933,0.0346520,0.0345603,0.0344547,0.0342020,取其平均值得0.0345325

    将c1  和c2 代到上面
    一,高抛的时候角度比较大,Sinx近似于1,COSx近似于π/2  -x/180 *π,得到公式角度x=90- 7122.5899/(v^2)+1.9786*w

    二,低抛(平射的时候),角度比较小,COSx近似于1,Sinx 近似于x,注意x表示弧度不是角度,弧度=角度/180 *π弧度,代入可得公式s=c1 *c2 *w*(v^2)*(x^2) +c1 *(v^2)*x  ,前一项和后一项的比例是c2 *w*x,这个是很小的可以忽略,这也是平打的时候风的影响可以忽略的原因,可以解得公式x =28.9582 *s/(v^2),这里的x是弧度换成角度就是x=1659*s/(v^2)度
我很郁闷
有点迷糊
按时
游戏玩到这一步有点过头了
我很郁闷
游戏玩到这一步有点过头了
我很郁闷
返回列表