# Calculate angle for arrow tip to hit a point

For an archer in my game, I want to calculate the launch angle to hit a point (x,y) when fired from (0,0). The initial power is known, so I use the following formula: https://en.wikipedia.org/wiki/Projectile_motion#Angle_%CE%B8_required_to_hit_coordinate_(x,_y)

The problem is that the arrow is not a point and depending on the angle the archer shoots at, only the location of the base of the arrow is constant. The displacements from the base of the arrow to the center of the arrow, which is the center of gravity and the arrow tip are dependent on the angle. These displacements are of the form (cos(theta), sin(theta)) * r where r is some constant. i.e. the arrow is rotated by the aim angle around its base. As the arrow travels through the air it is rotated around its center to face the direction it is moving.

How can I calculate the angle required for the tip of the arrow to hit a point?

Example to illustrate (two different angles, base of arrow = blue, center of gravity = green, tip of arrow = red):

If your computed velocity is $$\\vec v\$$ and the arrow has length $$\l\$$, this will be well approximated by the time $$\t_* = \frac l {||\vec v||}\$$ and the point to aim the arrow tip at will be:
$$\vec p(t_*) = \vec p_0 + \vec v \cdot t_* + \frac {\vec g} 2 \cdot t_*^2$$