Errata

Physics for Game Developers

Errata for Physics for Game Developers

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released.

The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.

Color Key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted by Date submitted
Printed Page 1
2nd paragraph

The name of Newton's work is "Philosophiae Naturalis Principia Mathematica" - not
Mathematia

Anonymous   
Printed Page 3
1st equation

Equation reads ...
Rf = 1/5 rho V**2 S Cf
but should be ...
Rf = 1/2 rho V**2 S Cf

Anonymous   
Printed Page 6

second sentance of last paragraph reads:

"First, divide the body into an infinite number of elemental masses..."
should be:
"First, divide the body into an finite number of elemental masses..."

Anonymous   
Printed Page 8
second c code example

TotalMass += Element[I].mass;

have to be modified by

TotalMass += Element[i].mass;

Anonymous   
Printed Page 12
Table 1-2

Car Width = 6ft and Car Centroid = (Xcgcar, Ycgcar) = (100, 100)ft
Driver Centroid = (Xcgdriver, Ycgdriver) = (103, 105)ft
Ycgcar must be more or less in the center of the car (along Y axis), so if we move
driver 5ft up (Ycgcar =100ft --> Ycgdriver = 105ft), the driver will be outside the
car.
It is not logical to make Ycgdriver bigger than 101.5f, maybe 102ft.

It will change the results of some following formulas and in the last paragraph on
page [14] we will have about 6% instead of 2.7%.

Anonymous   
Printed Page 13

Two errors on page 13.
1)The W(Total) figure is added up wrong. Should be 4313 pounds not the 4317
pounds amount shown.
2) The x(CG fuel) amount is wrong. It is listed as 93 ft in Table 1-2, but
is transferred as 100 ft in the X(CG body) totals.

Anonymous   
Printed Page 13
Equation for X(cg body)

In the formula for X(cg body), I think the substituted value for X(cg fuel) is wrong
(should be 93ft, not 100ft). Am i mistaken?

Anonymous   
Printed Page 13
2

Xcg body = .....(100ft)(210lb)}/4317lb -> ....(93ft)(210lb)}/4317lb

Anonymous   
Printed Page 17
in 5-th paragraph

1.Instead of "(w x ri) is the angular momentum of of the i-th particle" should be "ri
x mi(w x ri) is the...)

2.Instead of "which has a magnitude of wri" should be "which has a magnitude of (mi
wri^2)"

Anonymous   
Printed Page 20
4th equation

The matrix *I* has illegal matrix form.

It have to be modified by

I = | Ixx -Ixy -Ix |
| -Iyx Iyy -Iyz |
| -Izx -Izy Izz |


Anonymous   
Printed Page 32
3rd equation from top

a=dv/dt=d^2 s/dt = d^2 x/dt i + d^2 y/dt j

ought to read

a=dv/dt=d^2 s/dt^2 = d^2 x/dt^2 i + d^2 y/dt^2 j

Anonymous   
Printed Page 34
3rd paragraph from top

a=d^2 s/dt = d^2 x/dt i + d^2 y/dt j + d^2 z/dt k

ought to read

a=d^2 s/dt^2 = d^2 x/dt^2 i + d^2 y/dt^2 j + d^2 z/dt^2 k

Anonymous   
Printed Page 54
second equation under the figure of vector cross product

In the equation
C = AB sin theta
C is not a vector, so it shouldn't be printed as bold letter

Anonymous   
Printed Page 57
in half of 1-st paragraph of "Introduction" section

The sentence:
"In general, force is that which makes an object move or, more precisely, changes the
acceleration of the object."

is a serious mistake. Force is that, what gives the acceleration, which means that
changes the velocity. Force changes the velocity, not the acceleration. If the force
is constant, the acceleration is constant as well. Acceleration can be changed due to
the change of force not due to the force itself.

Anonymous   
Printed Page 66
figure 3.3

vector F should be normal to the perpendicular distance d.

Anonymous   
Printed Page 71
2-nd equation from the bottom

The equation in form:
T - R = ma
should be modified by:
T + R = ma
At the top of this page we have: R = -Cv. Substitiuting that we get:
T - R = T - (-Cv)= T + Cv
which means that total resistance force R has the same direction as propeller thrust
T. The resulting equation
T + Cv = ma
means perpetuum mobile - the dream of all magicians.

Anonymous   
Printed Page 76
third set of equations

there are two equations that "define the wind direction as measured by the angle
<gamma>", one for the x-component, and one for the z-component. In the middle of
the second (z) equation there is a "cos <gamma>" when it should be "sin <gamma>".
The error appears to be due to copying the equation above it (x) and changing the
sin in one place (at the right end of the equation), but missing the other change
(in the middle).

Anonymous   
Printed Page 76

defining C.d as independent of mass(or volume) results in
a ridiculous equation. Should be able to define C.d=0 for F.d=0
This is explained later in book(p.111).

Anonymous   
Printed Page 76
2nd Paragraph 's Equation

It is printed
Fwx = Fw*cos(r) = - (CwVw)cos(r)
Fwz = Fw*cos(r) = - (CwVw)sin(r)

But Second Equation should be
Fwz = Fw*sin(r) = - (CwVw)sin(r)

Anonymous   
Printed Page 79
3rd line of text

In the equation for calculating displacement in the z direction, the term in the
exponent should be (-Cd/m)*t instead of (-Cd*m)*t

Anonymous   
Printed Page 84
first equation

The first equation is incorrect, it should read that the
sum of the forces is Fp - Ff1-Ff2.

Anonymous   
Printed Page 85
cylinder rolling down a plane example

This example, as presented is simply incorrect. The conceptual problem is that
static friction need not be the coefficient of
static friction times the Normal force, it can be any amount less than this.

The solution, given on page 86, is simply wrong and can be immediatly spotted as
unphysical in that the acceleration down the incline doesn't depend on moment
of inertia, whereas in real life it does. I should point out, the funny result - that
for any coefficient of static friction an angle less then arcsin(mu_s N/mg) the
solution will have the cylinder roll uphill!

The proper solution to this problem requires the angular and linear motion be
solved simultaniously coupled by the constraint that the angular position times
r is the linear position.

Anonymous   
Printed Page 85-86

(friction force is equal to mu.s * N)
F.f = I* a.x < mu.s * N (motion is coupled to rotary inertia)

Anonymous   
Printed Page 89
line 2

0.008 should be 0.0008

Anonymous   
Printed Page 91
Figure 5-2

This figure is drawn incorrectly. The line of action n is not perpendicular to line
t. It should be, since this moves ball 2's center so its j-axis seperation from ball
1's center is r. That's what's required by the equation for the normal vector n on
the next page:

n = (sqrt((2r)^2 - r^2)i - rj)/|n|

Anonymous   
Printed Page 91
Figure 5-2

If not noticed, this figure maybe confusing because of the orientation of its x-axis
and i-normal. They're verticle instead of horizontal as is the convention used in
most text and the rest of this book as well.

Anonymous   
Printed Page 92
9th line

Dividing by |n| does not make much sense since n is by definition a unit vector and
so |n| equals 1. Instead divide by 2r here.

Anonymous   
Printed Page 94
5th line

Same problem as on page 92. Dividing by |n| does not make much sense since n is by
definition a unit vector and so |n| equals 1. Instead divide by r_1 + r_2 here.

Anonymous   
Printed Page 94
6-th and 7-th equation

The v1n- and v2n- are vectors. They are incorrectly presented as scalars.

Anonymous   
Printed Page 98

the tangential friction force is only equal to the
normal force times the coefficient of static friction
immediately before slippage occurs.

Anonymous   
Printed Page 98
3rd paragraph formulas for omega

I_cg should be I_1 and I_2 for omega_1+ and omega_2+

Anonymous   
Printed Page 98
top

1st equation;
Equation reads ...
J= -V_r(e+1)...
but should be ...
J= -(V_r dot_prod N)(e+1)...

(V_r and N are vectors)

Anonymous   
Printed Page 99
1-st equation

tan(PHI) = F_f/F_n = (mu)
The same angle is represented in different way:
- in this equation (PHI) - upper case
- on the figure 5.6 (phi) - lower case

Anonymous   
Printed Page 99
formulae after 4th paragraph

the right hand side of the integral should be with respect to dw only instead of w*dt

Anonymous  Jul 27, 2021 
Printed Page 100
1st equation

On p. 100 the equation for J from p. 98 is supposedly repeated. In addition to the
mistake noted by someone else on p. 98 that vr should be (vr dot n), this copy of the
equation is missing the "cross r1" and "cross r2" parts after I1 and I2 respectively.

Anonymous   
Printed Page 104
Figure 6-2, Figure 6-3

Should not "b" and "h" be measured from the same baseline?

As it is shown now, h is measured from the top of the shaded area, and b is measured
from the bottom, leaving their relationship ambiguous.

"b" should be measured from the same hight as the x/y coordinate axes.

Anonymous   
Printed Page 123
Figure 7-3

'Cord' should be 'Chord'

Anonymous   
Printed Page 129

stalling at an air show is not an example of stalling as a result of
reduced density with altitude - confusing example?

Anonymous   
Printed Page 134
Figure 7-6

shows C.l=0.75 at 8 degrees (not 0.92)

'Instructions.txt' is missing from the download files.

Anonymous   
Printed Page 143
LiftCoefficient ... == 0

The check for stalling isn't correct. Stall is not when the coefficient of lift is zero, but the angle of attack (alpha) where dCl/dalpha is zero. In other words, the stall angle is where the peak of the CL/alpha lift curve occurs.

For the figure 7-6 on page 126, the peak of the curve (no flaps) is about 18 degrees alpha. So, a check for stall could be alpha > 18. A better solution would take into account the flaps.

Anonymous  Nov 23, 2008 
Printed Page 149

'interesting spheres' should be 'intersecting spheres'?

Anonymous   
Printed Page 153
5th line

In the definition of the class Body3D, the line

TFace Face[MAX_NUM_VERTICES];

should be changed to

TFace Face[MAX_NUM_FACES];

Anonymous   
Printed Page 159
1st equation

The subscript pressure is mis-spelt as preassure.

Anonymous   
Printed Page 183
2 figures

figures 11-5 and 11-6 are supposed to be copies of figures 11-2 and 11-3 (on pa
ges 176 and 177) with extra information superimposed on them. however, aside f
rom the graphs' legends, which show how to identify the extra information, they
are exact copies of the previous 2 figures. specifically, the graphs are miss
ing the "Improved" and "R-K" lines. see the second paragraph on page 182 ("To
show you how...") for text explaing what the two figures should be showing.

Anonymous   
Printed Page 186,187
last line, 8th line

'with be u- on the figure 5.6 (phi) - lower casesed' should be 'will be used'

Anonymous   
Printed Page 190,192
In the code, the call to VRotate2D

On the page 190, the call to VRotate2D is made with (body->fOrientation, Fb) and on
the page 192, the call is made with (-craft->fOrientation, craft->vVelocity)

This seem to assume that VRotate2D will *add* the angle passed to the vector passed.
The problem is that if you look at the source code of VRotate2D, it *substract* the
angle passed to the vector passed.
Hence, there should be a minus sing on page 190 and the minus sing should be removed
on page 192...

Anonymous   
Printed Page 198
Footnote

The Awesome Power of Direct3D/DirectX by Peter J Kovach - not Kovack.

Anonymous   
Printed Page 207, 209, 210
various places

The use of CollisionBody1 and CollisionBody2 in code is not explained. In the code in
the book these values are set to 0 then never updated.

(In the example source available from the website these values are updated inside
CheckForCollision.)

Anonymous   
Printed Page 224
Chapter 14 Rigid Body Rotation, section Rotation Matrices (p 224) states that

"Multiple rotation matrices reflecting multiple sequential rotations can be combined into a single rotation matrix using usual matrix multiplication. If the rotation matrices are expressed in terms of fixed, global coordinates, then they are combined as follows:
Rc = R2 R1
Here Rc is the combined rotation matrix reflecting a rotation first by R1 and then by R2. If the rotation matrices are expressed in terms of rotating, body-fixed coordinates, then they are combined in the reverse order as follows:
Rc = R1 R2"

One of the references given in the General Physics and Dynamics section of the Bibliography is the book Advanced Engineering Dynamics by Jerry Ginsberg. I have the second edition of this book, which in Chapter 3 Relative Motion, Section 3.2.1 Body-Fixed Rotations, states that the rotation matrix for n body-fixed rotations is given by
[R] = [Rn] ... [R2] [R1]

Section 3.2.2 Space-Fixed Rotations states that for n space-fixed rotations the rotation matrix is given by
[R] = [R1] [R2] ... [Rn]

Note that Bourg has it reversed.

Anonymous   
Printed Page 266
Code downloaded from site

I am not an expert, but I can't see any logic in the CheckEdgeEdgeCollisions code.
Take the example of 2 edges with both ends on x=0. tx would be set to -1 (denom=0),
and there would never be a collision, but they could intercept.

Anonymous   
Printed Page 288
Vector::Normalize()

The line that says
if( m <= tol ) m = 1;

means that a very short vector will never be
lengthened to be 1 unit long. I think this is
trying to avoid division by zero, so maybe it should be

if( m <= tol ) m = tol;

Anonymous   
Printed Page 293
Picture and paragraph about Vector Dot Product

P is described as the vector dot product U * V. In the picture and the sentence above
and below, P is described as the projection of U onto V. This is incorrect. The
projection should be labelled something like Pu with Pu = P / |V| and Pv = P / |U|.

Anonymous