Game Development Reference
In-Depth Information
The first two rows of the matrix M represent the equations
b xcx r
+=
(16.28)
11
1 2
1
and
ax
++=
bx
cx
r
.
(16.29)
21
2 2
23
2
We can solve Equation (16.28) for x and substitute the result into Equation
(16.29) to obtain
c
r
1
1
ba
xcxra
+
=
,
(16.30)
2
2
2
2
3
2
2
b
b
1
1
which now contains only two unknowns instead of three. Continuing this pro-
cess, we can write each of the equations as
β xcx ρ
+
=
,
(16.31)
ii
ii
+
1
i
where
β and ρ are constants given by the recurrence formulas
c
β ba β
ρ
ρ ra β
i
1
=−
i
i
i
i
1
i
1
=−
.
(16.32)
i
i
i
i
1
The equation corresponding to the last row of the matrix M becomes
β x ρ
=
,
nn
n
giving us the value of x :
ρ
n
x
=
.
(16.33)
n
β
n
Plugging this value back into Equation (16.31) for
=−
n
1
gives us the value of
i
x
, and in general,
n
1
ρ c
i
i
x
=−
x
.
(16.34)
i
ββ +
i
1
i
i
An implementation of this algorithm is shown in Listing 16.6. The algorithm
is begun with 1
c β calculated with Equation
(16.32) is saved for later use in Equation (16.34). This implementation assumes
β b
=
and 1
ρ r
=
. Each value of i
1
1
i