3Dimensional
Launch Conditions from Impact Conditions
Dave Tutelman  March 6,
2007
Going
from impact conditions to launch conditions is a challenge.
It's even harder in 3D. Here's my cut at how to do it.
(This
work was done in support of the development of TrajectoWare Drive. I'd
like to thank Frank Schmidberger for his review and corrections.)
Introduction
In
my Club
Design Notes, I show how
to compute launch conditions from impact conditions in the
vertical direction. This 2dimensional model does not account for
sidetoside isues like outsidetoin clubhead path or a closed
clubface. So pushes, pulls, slices, fades, hooks and draws are simply
not covered. This article fills the gap, and takes the calculations to
three dimensions.
Let me start by saying it isn't as
simple as applying the same equations in the xplane
that were applied before in the yplane. The most
important difference is that ball speed, launch angle, and spin are not
independent in x and y.
They depend on the overall angle in space between the clubface
direction and the clubhead path. That angle of overall obliqueness,
which we will call Φ, controls most of the
process of finding 3D launch conditions.
This article has three distinct pages:
 The basic impact model: getting launch conditions from impact conditions.
 The reverse impact model: if we are given the launch conditions, find the impact conditions needed to cause them.
 An appendix, deriving a "Pythagorean" approximation to find the obliqueness.
Defining
horizontal impact conditions
Vertical
impact
conditions are well known. They are things like clubhead loft and mass,
angle of attack, and clubhead speed. Some of them (clubhead mass and
speed) also figure into horizontal impact. But there are horizontal
motions to account for, too. We need the equivalents of loft and angle
of attack.
The
figure shows the raw
input. It suggests that three angles are important:
 The
clubhead
path angle P, which we are taking as the angle to
the right of the target line. If the path were to the left of the
target line, then P would be negative.
 The
facetopath angle A. This is analogous to loft in
the vertical direction. It describes the horizontal obliqueness of the
hit.
 The
facetotarget angle F,
which we are defining with
respect to the target line. It isn't especially important to the
dynamics, but the notion of the face "open" or "closed" is frequently
specified with respect to the target line instead of the clubhead path.
The
clubhead path P is analogous to angle of attack,
and
the facetopath angle A is analogous to
loft. If the "face angle" is specified as F rather
than A, you can find A for the
analysis from:
So
A is a measure of how different the face is from the path. That makes
sense. If A is positive, then it gives a clockwise spin (when viewed
from above); negative gives a counterclockwise spin.
So
the basic horizontal impact conditions are P and A,
even though it's more usual to think of P and F. 
Finding
the effective angle of obliqueness
The obvious  but wrong
 way to use that information is to treat horizontal and vertical
conditions the same. That is, use the equations
to go from impact conditions to launch conditions
independently for horizontal and vertical.
The best
argument that this doesn't work is the launch angle. The ball leaves
the clubface somewhere between the direction of the clubface and the
path of the clubhead. Moreover, its direction is closer to the clubface
than the path. But that proportion varies with the obliqueness.
For instance, if the obliqueness is 5°, then the proportion is
92%8%. But if the obliqueness is 20°, then the proportion is
78%22%. So consider an impact with a loft of 20° and a
horizontal obliqueness of 5°. If they could be treated
independently, then you would get an upwards launch angle of
15.6° (78% of 20°), but a horizontal launch only
0.4° from the face direction (8% of 5°). That is not
right, because the total obliqueness of the impact controls the
proportion in both directions, and the total obliqueness is even more
than 20°. So you'd need to use a more even distribution than
even 78%22% for both horizontal and vertical launch.
So
we have to find the effective
obliqueness of the strike, factoring in both loft and face angle.
Jorgensen (in his book, "The Physics Of Golf") shows
that the launch is somewhere in the plane defined by the two vectors:
 The
direction the clubface is facing, and
 The direction
the clubhead is moving.
Jorgensen referred to this as "the
Dplane",
and it is the single most important concept to understand when
considering threedimensional impact. We will call it that when we need
to in this discussion.
The key directions are
shown in the diagram below, as the red and the green vectors
respectively. The
shaded
plane is Jorgensen's Dplane, the plane of ball direction.
Figure 2
L
is the dynamic loft  that is, the loft taking into account thing like
shaft bend and clubhead path. The "dyanmic loft" in this article is what has since become known as "spin loft".*
The clubface strikes the ball a glancing blow, with A
the side angle.
The ball rolls up the face in the plane of the shaded triangle, so the
effective
obliqueness of the strike is Φ. That is
what we have to compute.
The gray vector is a "base
direction". It is a combination of projections:
 The
vertical projection of the face direction, so the angle from the gray
vector to the face direction is the dynamic loft L.
 The
horizontal projection of the clubhead path, so the angle from the gray
vector to the path is the face angle A.
Let's
use this information to compute Φ. Here is
a diagram labeling the triangles we will use to solve the angle.
Figure 3
First
let us construct a triangle xyz,
in a plane perpendicular to the gray vector. The hypotenuse is part of
a triangle fpz, whose vertex at
the clubface is the angle Φ that
we want to find. Since we are only interested in angles, the triangle
could be any size at all, as long as it has the proper angles. So let's
set the gray vector's magnitude as the unit vector.
Here
is the strategy we will use:
 We will find x, y,
and z
as parts of the right triangle.
 We will find f
and p as parts of other right
triangles.
 Now we have three sides of triangle
fpz, whose vertex angle is Φ.
We can use the sidesideside formula to find Φ.
(1)
Find the sides of triangle xyz.
Because
of the gray unit vector, we can easily see that:
The
Pythagorean Theorem tells us that:
z^{2}
= x^{2} + y^{2}
= tan^{2}(A) + tan^{2}(L) 
(2)
Find the sides of triangle fpz.
We
already have z. We again use the
unit vector to find that:
(3)
Find angle Φ.
The formula
for the angle of a sidesideside triangle is well known. For instance,
see PlanetMath.org.
Applying it to triangle fpz:
cos(Φ) 
= 
p^{2}
+ f^{2} – z^{2 }
2pf




= 
( 
1
cos^{2}(L) 
+ 
1
cos^{2}(A) 
– 
tan^{2}(L) 
– 
tan^{2}(A) 
) 
cos(A)
cos(L)
2 



= 
( 
1
cos^{2}(L) 
+ 
1
cos^{2}(A) 
– 
sin^{2}(L)
cos^{2}(L) 
– 
sin^{2}(A)
cos^{2}(A) 
) 
cos(A)
cos(L)
2 

because
tan(x)
= sin(x)/cos(x) 

= 
( 
1
 sin^{2}(L)
cos^{2}(L) 
+ 
1
 sin^{2}(A)
cos^{2}(A) 
) 
cos(A)
cos(L)
2 



= 
( 
cos^{2}(L)
cos^{2}(L) 
+ 
cos^{2}(A)
cos^{2}(A) 
) 
cos(A)
cos(L)
2 

because
1sin^{2}(x)
= cos^{2}(x) 

= 
( 
1 
+ 
1 
) 
cos(A)
cos(L)
2 






cos(Φ) 
= 
cos(A)
cos(L) 

So
we know how to find the total obliqueness Φ
from loft and side angle. Let's look at the properties of this formula:
 Φ
is equal to or larger than either the loft or the face angle. We can
see that because
cosine can never be greater than 1.
 Unless A
is quite large, Φ is essentially equal to
the loft. That is because cosine of a small angle is very close to 1.
In order for Φ to differ from the
loft by more than 1%, A must be at least 8°.
 Φ is
symmetrical in loft and launch angle. Each has the same effect on Φ.
 There is a convenient approximation if you want to
calculate Φ by hand and don't have trig
tables handy. Just use Pythangorean addition; pretend and A and L are sides of a
right triangle and Φ is the hypotenuse.
Φ^{2} ≅ A^{2} + L^{2}
Justification for this is in the Appendix.
Now
let's use Φ to get launch
conditions.
Computing
launch conditions
We
will
carry a common example through this, so we see the numbers as we go. It
is shown in the diagram on the right:
 The
long iron has 23° of loft.
 The swing path
is righttoleft ("outside in" for a righthanded golfer) by 5°.
 The
clubface points 2° to the right of the target, which we can
easily compute to be 7° to the right of the clubhead path.
This
is obviously a formula for a slice.
The first thing
we need to do is compute A, the horizontal angle between face and path.
A
= F  P = 2  (5) = 7° 
Now,
from the loft and the side angle, we can compute the total oblique
angle Φ.
cos(Φ) 
=

cos(A)
cos(L) 

=

cos(7°)
cos (23°) 

=

.993
* .921 

=

.914 

=

cos
(
24° ) 
So
the total oblique angle is 24°, just a bit larger than the loft
of
the club. This is fairly common unless the horizontal angle A is quite
large.
Now that we know Φ,
we can use it to calculate the launch angle (vertical and horizontal),
the ball speed, and the spin (backspin and sidespin). 
Launch
angle
From the
reference we know that, in two dimensions, launch angle is
given by:
LaunchAngle
=
Loft * (0.96  0.0071*Loft) 
That works for two dimensions. When we go to three dimensions, then the
same equation applies in the Dplane, where Loft becomes Φ. So, in the
Dplane:
LaunchAngle
= Φ *
(0.96  0.0071*Φ) 
This
is really a proportionality factor times the Dplane "loft" Φ. The
proportionality
factor tells how much of the loft is converted into launch angle. That
factor is not a constant, but rather depends on how oblique the strike
is. Let's write it that way:
where f(Φ)
is the
proportionality factor. It is immediately obvious looking at the
equations that:
ProportionalityFactor
= f(Φ) = 0.96  0.0071 Φ 
We can use this to resolve the Dplane launch angle into a vertical and
a horizontal component (DAy
and
DAx
respectively). Let's go through it with our alreadystarted numerical
example.
For
our example, Φ=24°,
so the
proportionality factor is 0.790.
From this, we can calculate vertical launch angle (DAy)
and horizontal "launch angle" (DAx). The departure
angle is the angle that accounts for the obliqueness of the hit, but
does not yet factor in the clubhead path angle P
nor angle of attack K.
DAy
is the loft times the proportionality factor:
DAy
= 0.790 * Loft = 0.790 * 23°
= 18.2°
We
do something similar to compute DAx.
DAx
= .790 A = .790 *
7°
= 5.5°
Finally,
to get the actual launch angle  that is, the angle with respect to a
horizontal line towards the target  we have to add in the direction
the clubhead is traveling  angle of attack and clubhead path:
LAy
= DAy + K = 18.2°
LAx
= DAx + P = 0.5°
Where
K is positive if attack is upwards, and P
is positive if the clubhead is moving to the right at impact.
Ball
speed
From the
reference we know that, in two dimensions, ball speed is
given by:
V_{ball}
= V_{clubhead }

1 + e
1
+ m/M

cos(loft) 
In
three dimensions, the modifier of ball speed is obliqueness rather than
just loft, so the equation becomes:
V_{ball}
= V_{clubhead }

1 + e
1
+ m/M

cos(Φ) 
Plugging
in some numbers (V_{clubhead} =
80mph, e = 0.83, m = 46g, M
= 248g and of course our computed Φ=24°)
we get:
V_{ball}
= 80

1 + 0.83
1
+
46/248

cos(24°)
= 80 * 1.54 * 0.913 = 112.5mph 
For
further analysis (such as trajectory calculation) it is useful to
decompose this into sideways (x), up/down (y),
and "downrange" (z, toward the target) components.
Figure 5
This
diagram shows the relationship of our calculated ball speed (red
vector) to the desired components Vx, Vy,
and Vz. We have already computed the horizontal and
vertical launch angles LAx and LAy.
Let's calculate the component vectors.
It is easy to
show that:
Vx^{2} + Vy^{2}
+ Vz^{2} = Vball^{2}
(This
looks like the Pythagorean Theorem in 3 dimensions, and can be proved
by applying the regular Pythagorean Theorem twice, once to each of the
triangles sharing the green dotted vector  or, alternatively, once to
each of the triangles sharing the blue dotted vector.)
We
also know from basic trigonometry that:
Vx
= Vz tan (LAx)
Vy = Vz
tan (LAy)
Plug this into the Pythagorean
equation above, and we get:
Vball^{2}
= Vz^{2} [1 + tan^{2}(LAx)
+ tan^{2}(LAy)]
Or:
Vz^{2}
= 
Vball^{2}
1
+ tan^{2}(LAx)
+ tan^{2}(LAy) 
Now
we can calculate Vz, because it is expressed in
terms that we already know. Then we can go back to the simple trig
formulae above and calculate Vx and Vy
from Vz.
Let's go ahead and do
that for our example problem. First compute Vz:
Vz^{2}
= 
Vball^{2}
1 + tan^{2}(LAx)
+ tan^{2}(LAy) 
=

112.5^{2}
1 + tan^{2}(0.5°)
+ tan^{2}(18.2°) 
= 11,420 
Vz
= sqrt (11,571) = 106.9mph
Now
compute Vx and Vy:
Vx =
Vz tan (LAx) = 106.9 tan (0.4°)
= 0.7mph
Vy =
Vz tan (LAy) = 106.9 tan
(18.2°) = 35.1mph
Spin
From
the
reference we know that, in two dimensions, spin S
is given by:
S = 160 * V_{clubhead}
* sin (loft)
where S is in rpm
and V is in mph.
As we did with
launch angle and ball speed, we have to compute the total spin based on
the total obliqueness, then allocate the total spin to vertical and
horizontal components.
S = 160 * V_{clubhead}
* sin(Φ)
Now we have to assign
spin components Sx and Sy
to the horizontal and vertical planes. How do we do that? Look back at
Figure 3. The spin will be perpendicular to the plane fpz.
Therefore, the spin components are going to
be in proportion to each other as x is to y
in the figure. In
other words:
Sx
Sy

=

x
y

=

tan(A)
tan(L) 
Let
us designate the ratio of x to y
as d; that is d = tan(A) / tan(L).
Since this is the same ratio as the spin components:
The
components are at right angle to each other, and vectorsum to form the
total spin S. So we have a right triangle with
sides Sx and Sy and hypotenuse S.
From the Pythagorean Theorem we know that:
Sx^{2}
+ Sy^{2} = S^{2}
Combining
the last two equations:
S^{2}
= Sy^{2} + d^{2}Sy^{2}
= Sy^{2} (1 + d^{2})
We
can use this to find Sy:
By
similar reasoning, we find Sx to be:
Sx
= 
d^{ }S
sqrt (1
+ d^{2}) 
Let's
use the formulae for our example:
S
= 160 * 80 * sin (24°) =
5206rpm
The
loft L is 23° and the face angle A
is 7°. So
d
= 
tan(7°)
tan(23°) 
=
0.289 
Therefore:
Sx
= 
d^{ }S
sqrt (1
+ d^{2}) 
=

.289^{ }*
5206
sqrt (1
+ .289^{2}) 
= 1445rpm 
Sy
= 
S
sqrt (1
+ d^{2}) 
=

5206
sqrt (1
+ .289^{2}) 
=
5000rpm 
Since this original work was done, the Trackman has become all but
ubiquitous in
discussions about launch and ball flight. They describe spin in
different terms. Instead of a horizontal and vertical component, they
talk about the spin angle and the total spin. That is probably a more
truetolife way of looking at it. Face it, a ball is not going to have
one RPM in the vertical plane and a different RPM in the horizontal
plane. We thought it was more intuitive to express things in such a way
that one spin component was fighting gravity and the other turning the
ball left or right. But both are equally productive ways to look at it,
if the purpose is to compute a trajectory.
It is easy enough to compute the Trackman quantities. Just go back to
the early part of this subsection, and you will see that:
TotalSpin = 160 * V_{clubhead}
* sin(Φ)
tan
(SpinAngle) = 
tan(A)
tan(L) 
In January 2011, I had the opportunity to match our TrajectoWare
computations (which are implemented as described in this article)
against Trackman measurements. (Well, Trackman measurements and
computations; their estimates of impact angles are computed, not
measured directly.) This occurred at Jim McLean's headquarters school
at the Doral Golf Resort. We had two computers, one running Trackman
and the other running TrajectoWare Drive, and watched Jim's son Jon
McLean (a Canadian Tour player) hit balls as we did our thing with the
computers. ("OK, now hit a high hook.") The results were very
consistent with one another.
Summary
Here
are the steps to get the launch conditions in 3D, given impact
conditions in 3D
Given the impact conditions:
 Loft L
 Angle of attack K
 Clubhead
speed V_{clubhead}
 Clubhead
path angle P
 Clubhead
facetopath angle A (or A computed from
facetotarget angle F, by A = FP)
 Clubhead
mass M
 Ball mass m
 Coefficient
of restitution e
Find the
launch conditions:
 Horizontal and vertical
components of the launch angle: LAx and LAy
 Ball
speed V_{ball}
 Sidways,
upwards, and downrange components of the ball velocity: Vx,
Vy, and Vz
 Horizontal
and vertical components of the spin: Sx and Sy
Steps:
(1)
Find total obliqueness from
(2)
Find launch angle with resect to the path from:
DAx
= A (0.96  0.0071 Φ)
DAy
= L (0.96  0.0071 Φ)
(3)
Find the launch angles with respect to the target line from:
LAy
= DAy + K
LAx
= DAx + P
(4) Find
the ball speed from:
V_{ball}
= V_{clubhead }

1
+ e
1
+ m/M

cos(Φ) 
(5)
Find the components of the ball speed from:
Vz^{2}
= 
Vball^{2}
1
+ tan^{2}(LAx)
+ tan^{2}(LAy) 
Vx
= Vz tan (LAx)
Vy = Vz
tan (LAy)
(6) Find the magnitude
of the total spin from:
S = 160 * V_{clubhead}
* sin(Φ)
(7) Find the
components of the spin from:
d =
tan(A) / tan(L)
Sx
= d Sy
On the next page, we see how to reverse the calculation.
Footnote
This work was originally done and the article written and posted in
2006. At the time, TrackMan was almost unheard of in golf teaching
circles. Yes, the product did exist, but had not gained much traction
yet. Since then, TrackMan nomenclature has become the de facto standard
in golf instruction and analysis  and unfortunately it has some
conflicts with the terms in this article.
My most compelling reason for not changing the names here is that the
article is the theoretical support for our impact model in the
TrajectoWare Drive program  and the terms are in agreement with the
program. It was released in 2007, and is still in its first release.
One of the first (and easiest) changes to make to the next release is
to change all our nomenclature to be TrackMan compatible, and therefore
familiar to the instruction community. In the process, there are some
signs (plus and minus) that should be changed in TrajectoWare Drive for
the same reason.
But please don't hold your breath. There is no imminent release, and
may never be one. The development tools used to create the program are
no longer available, and most of it would have to be rewritten from
scratch. That will take more time and effort than Frank Schmidberger
and I are willing to expend right now.
Last
modified April 23, 2023
