I use the following algorithm to calculate the angle to intercept between two objects (not my own algorithm, but I found it works well):
var tx:int = targetPos.x;
var ty:int = targetPos.y;
var dx:int = tx - this._x;
var dy:int = ty - this._y;
var sta:Number = Math.atan2(dy, dx);
var angle:Number = Math.asin(Math.sin(-(target.angle + Math.PI - sta)) * (target.speed / interceptSpeed)) + sta;
This returns the angle (in radians) for this object to intercept the target object, assuming their velocities remain constant and a solution exists (i.e., the target isn’t going to outrun us).
I’m looking for a formula to calculate when (or where) the intercept will occur. Any trig gurus know the answer?