x = (rate*cos(pitch)*t)/100.0 ;
y = ((rate*sin(pitch)*t - (G*t*t)/2)*1.0f)/100.0 ;
z = 0.0f;
知道炮弹的其实点坐标(x0,y0,z0),炮弹发射的初速度rate、发射的俯仰角pitch、方位角circle
怎么计算在t时刻的三维坐标3D物理数学OpenGL

解决方案 »

  1.   


    x = (rate*cos(pitch)*t)/100.0 ;
    y = ((rate*sin(pitch)*t - (G*t*t)/2)*1.0f)/100.0 ;
    z = 0.0f;
    你这个方程是平面的,但炮弹轨迹在任何可预测情况下可能就是壹个平面曲线转3D如下:
    R=sqrt(x*x+y*y);     //--- t时刻炮弹位置和发射点距离
    Angle = atan2(y,x);  //--- t时刻炮弹位置和发射点连线和水平面夹角
    //以上x,y计算采用原始公式
    //以下为circle不为0时的计算公式   平面y-->3D Z 高度
    x_3d = x0+R*cos(Angle)*cos(circle);
    y_3d = y0+R*cos(Angle)*sin(circle);
    z_3d = z0+R*sin(Angle);