Skip to main content

Homogeneous Coordinates

Free2015-08-28#Math#齐次坐标

Homogeneous coordinates represent an n-dimensional vector using an (n+1)-dimensional vector. So why go through this extra step?

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.

Comments

No comments yet. Be the first to share your thoughts.

Leave a comment