Homogeneous coordinates involve representing an n-dimensional vector using an (n+1)-dimensional vector, for example:
(8, 4, 2) = (4, 2, 1) = (4, 2)
Why use an (n+1)-dimensional vector?
Because the transformation matrix
T= |a b|
|c d|
does not have the functionality for translation transformations. To translate a two-dimensional figure, translation amounts m and n must be introduced into the transformed coordinates, i.e.,
x' = x + m
y' = y + n
Obviously, using
[x' y'] = [x y] * |a b|
|c d|
is impossible to achieve. To perform a translation transformation, an additional coordinate must be added to the position vector of a two-dimensional point, making it a three-dimensional row vector [x y l]. This represents the point in homogeneous coordinates, enabling the calculation.
For example, in a Cartesian coordinate system, the homogeneous coordinates of a 2D point [x y] are typically represented by 3D coordinates [Hx Hy H], and those of a 3D point [x y z] by 4D coordinates [Hx Hy Hz H]. In a homogeneous coordinate system, the last dimension H is called the scaling factor.
The relationship between 3D Cartesian coordinates and their homogeneous coordinates is:
x = Hx / H
y = Hy / H
z = Hz / H
Since the value of H is arbitrary, any point can be represented by multiple sets of homogeneous coordinates. In general use, H is always set to "1" to maintain consistency between the two coordinate systems.
No comments yet. Be the first to share your thoughts.