
Код:
public function rotate3DVectorAroundX(point:Object, center:Object, dAngle:Number):Object{
//dAngle in rad
var dz = point.z-center.z;
var dy = point.y-center.y;
var orgAngle = Math.atan2(dz, dy);
var hypo = Math.sqrt(dz*dz+dy*dy);
var newAngle = orgAngle+dAngle;
var yy = hypo*Math.cos(newAngle)+center.y;
var zz = hypo*Math.sin(newAngle)+center.z;
return {x:point.x, y:yy, z:zz};
}
можно считать координату исходя из того, что шарик летит в 2D (z-y) а потом повернуть относительно третьей координаты (x), угол высчитать не проблема?