已知起点和终点求炮弹轨迹

2011-09-11
这个是用Action Script3.0脚本写的
在炮弹发射的时候,用于计算抛物线y=a*x*x + b* x +c公式中a,b,c</p>

//炮弹的射程
var shotWidth:int=targetX-startX;
//炮弹的射程高度
varshotHeight:int=shotWidth/2-shotWidth*0.2;
//炮弹抛物线的系数
var a:Number,b:Number,c:Number;
var result:Array = new Array();

//根据炮弹的发射点、高度、射程计算出炮弹抛物线的三点
var x1:int=startX;
var y1:int=startY;

var x2:int=startX+shotWidth/2;
var y2:int=startY-shotHeight;

var x3:int=startX+shotWidth;
var y3:int=startY;

b =((y1-y3)*(x1*x1-x2*x2)-(y1-y2)*(x1*x1-x3*x3))/((x1-x3)*(x1*x1-x2*x2)-(x1-x2)*(x1*x1-x3*x3));
a = ((y1-y2)-b*(x1-x2))/(x1*x1-x2*x2);
c=y1-a*x1*x1-b*x1;

以上数值获取到后
根据子弹的x数值获取y坐标即可
movingBullet.y = (int)(movingBullet.arca * movingBullet.x *movingBullet.x
+ movingBullet.arcb *movingBullet.x + movingBullet.arcc);