C++ Game Development By Example
上QQ阅读APP看书,第一时间看更新

Dot product

A dot product is a type of vector multiplication in which the resultant vector is a scalar. It is also referred to as a scalar product for the same reason. Scalar product of two vectors is the sum of the products of the corresponding components.

If you have two vectors A = (ax, ay, az) and B = (bx, by, bz), then  is given as:

 = ax ×bx + ay × by + az ×bz --- (1)

The dot product of two vectors is also equal to the cosine of the angle between the vectors multiplied by the magnitudes of both vectors. Notice the dot product is  represented as a dot between the vector.

θ is always between 0 and π. By putting an equation of 1 and 2 together, we can figure out the angle between 2 vectors:

* )

Consequently,

This form has some unique geometric properties:

If = 0 then  is perpendicular to  as cos 90 = 0.

 =   then the 2 vectors are parallel to each other as cos 0 = 1.

If > 0 then the angle between the vectors is less than 90 degrees.

If < 0 then the angle between the vectors is greater than 90 degrees.

Let us see an example of a dot product:

If = (3, -5, 7) and   = (2, 4 , 1)

Then  = 9.110 and

Next, we calculate = ax *bx + ay * by + az * bz

 = 3 * 2 + (-5) * 4 + 7 * 1

          = 6 - 20 + 7

          = -7

cos θ = -7/ (9.110 * 4.582) = -7/ 41.74

θ = cos-1(-7/41.74) = cos-1(0.26770) = 99.65° (approx)