Here's a topic from a separate forum turned up by Google -
LinkOne of the posters relates finding the necessary angle for intersection to occur to finding where a line intersects a cone.
Rather than being in simply 2 dimensions, the poster explains, time must be considered as an additional third dimension. Thus, we aren't calculating the interception of an object in 2D X,Y space, but rather in 3D X,Y,Time space.
The airplane target's path is fixed, thus it is represented by a straight line (or more properly a ray) travelling through 3D space. Its start point is marked at (Initial X, Initial Y, 0 Time) and it continues along time at a constant rate and along X,Y as determined by its trajectory. The projectile's trajectory is determined by a cone. The vertex where the top converges is located at (Initial X, Initial Y, 0 Time). The surface of the cone is all possible coordinates this projectile can reach at any angle at any time at a constant speed. The height of the cone is the time, and the radius is related to its velocity.
Something to note is that if the target airplane is travelling more quickly than the projectile and is travelling in the same direction the bullet would need to be fired, the bullet will never reach the plane and there will be no points of intersection. However, if the bullet can possibly intercept the target, then there is a nearly absolute possibility that the interception of the solid and the line will occur at two points; the only exception would occur if the line is tangent to the cone. You would want to fire the bullet along the path that has the lesser Z axis - time - coordinate.
Here's some resources for how to determine where a line and cone intersect:
The formula w/ hefty explanationApplication as codeWhat we have to do is then say that time is a dimension, and throw that in there as a Z. Now, we have the position of the "target" as a function of Z, which is a 3D line, and the position of the "bullet" as a function of Z. However, since we still don't know the direction of the "bullet," at any given Z value we can have a circle whos radius represents the absolute distance the "bullet" can be from it's initial point. So as Z increases, the radius of the circle increases, and we have the surface area of a cone. As long as the "target" isn't constantly fleeting from the "bullet," there will be a intersection between the surface of this cone and the line that represents the position of the "target." As a matter of fact there can be two possible points of intersection, since a line can intersect a cone at a maximum of two points. The trick then is to find the time value where the line will intersect the cone only once, at the cone's bottom, circular edge.
My suggestion would be to use a cone-line intersection method. For your cone, selection a super high-time value and find the radius of the cone at that time. Once you actually have a large, discrete cone to work with, you can use the cone-line intersection method to find where the cone intersects the line. The Z point where they intersect will be the time, the X and Y...well, the position (), and you can work backwards from there to find out what direction that point is from the "bullet." Now, since the line can intersect at more than one point, you can chose either one, but my guess is that you'd want to chose the first one with the lesser Z.