## 3.1 Coordinate Systems

As is typical in computer graphics, `pbrt` represents three-dimensional
points, vectors, and normal vectors with three coordinate
values: , , and . These values are meaningless without
a *coordinate system* that defines the origin of the space and gives
three linearly independent vectors that define the , , and axes of the
space. Together, the origin and three vectors are called the *frame*
that defines the coordinate system. Given an arbitrary point or direction
in 3D, its coordinate values depend on its relationship to the
frame. Figure 3.1 shows an example that
illustrates this idea in 2D.

In the general -dimensional case,
a frame’s origin and its linearly independent basis vectors
define an -dimensional *affine space*. All vectors in the
space can be expressed as a linear combination of the basis vectors. Given a
vector and the basis vectors , there is a unique set of
scalar values such that

The scalars are the *representation* of with respect to the
basis and are the coordinate values
that we store with the vector. Similarly, for all points , there are unique
scalars such that the point can be expressed in terms of the origin
and the basis vectors

Thus, although points and vectors are both represented by , , and coordinates in 3D, they are distinct mathematical entities and are not freely interchangeable.

This definition of points and vectors in terms of coordinate systems reveals a
paradox: to define a frame we need a point and a set of vectors, but we can
only meaningfully talk about points and vectors with respect to a particular
frame. Therefore, in three dimensions we need a *standard frame* with
origin and
basis vectors , , and . All other frames will be
defined with respect to this canonical coordinate system, which we call
*world space*.

### 3.1.1 Coordinate System Handedness

There are two different ways that the three coordinate axes can be
arranged, as shown in Figure 3.2. Given perpendicular
and coordinate axes, the axis can point in one of two directions.
These two choices are called *left-handed* and *right-handed*.
The choice between the two is arbitrary but has a number of
implications for how some of the geometric operations throughout the system
are implemented. `pbrt` uses a left-handed coordinate system.