Game Engine Architecture

(Ben Green) #1

642 12. Collision and Rigid Body Dynamics


locity-dependent. If it is velocity-dependent, then we must approximate next
frame’s velocity, perhaps using the explicit Euler method.

12.4.5. Angular Dynamics in Two Dimensions
Up until now, we’ve focused on analyzing the linear motion of a body’s center
of mass (which acts as if it were a point mass). As I said earlier, an uncon-
strained rigid body will rotate about its center of mass. This means that we can
layer the angular motion of a body on top of the linear motion of its center of
mass in order to arrive at a complete description of the body’s overall motion.
The study of a body’s rotational motion in response to applied forces is called
angular dynamics.
In two dimensions, angular dynamics works almost identically to linear
dynamics. For each linear quantity, there’s an angular analog, and the math-
ematics works out quite neatly. So let’s investigate two-dimensional angular
dynamics fi rst. As we’ll see, when we extend the discussion into three dimen-
sions, things get a bit messier, but we’ll burn that bridge when we get to it!

12.4.5.1. Orientation and Angular Speed
In two dimensions, every rigid body can be treated as a thin sheet of mate-
rial. (Some physics texts refer to such a body as a plane lamina .) All linear mo-
tion occurs in the xy-plane, and all rotations occur about the z-axis. (Visualize
wooden puzzle pieces sliding about on an air hockey table.)
The orientation of a rigid body in 2D is fully described by an angle θ,
measured in radians relative to some agreed-upon zero rotation. For example,
we might specify that θ = 0 when a race car is facing directly down the posi-
tive x-axis in world space. This angle is of course a time-varying function, so
we denote it θ(t).

12.4.5.2. Angular Speed and Acceleration
Angular velocity measures the rate at which a body’s rotation angle chang-
es over time. In two dimensions, angular velocity is a scalar, more correctly
called angular speed , since the term “velocity” really only applies to vectors.
It is denoted by the scalar function ω(t) and measured in radians per second
(rad/s). Angular speed is the derivative of the orientation angle θ(t) with re-
spect to time:

Angular: ω

θ
() θ

()


t ( );

dt
dt

==t Linear: v()t dtr() r( ).
dt

==t

And as we’d expect, angular acceleration , denoted α(t) and measured in
radians per second squared (rad/s^2 ), is the rate of change of angular speed:
Free download pdf