# Homogeneous Coordinates

Current Documentation
View previous documentation
View legacy documentation
All documentation versions

Deprecated in Current Release

# Introduction

Homogeneous coordinates are a set of coordinates with useful properties for perspective geometry:

• Infinity may be represented with a finite value.
• Rotations and translations may be represented by a single matrix operation.
• Homogeneous coordinates may be used for a space with arbitrary dimension including 2D (image) and 3D (world) coordinates.

A “standard” coordinate is referred to as inhomogeneous.

# Properties

• Iff the last coordinate of a homogeneous coordinate is 0, then it is at infinity.
• Iff the last coordinate of a homogeneous coordinate is not 0, then it is at a finite location.
• Two homogeneous points are the same iff there exists a non-zero scalar multiplier between them, i.e., $$\mathbf{x}=k\cdot\mathbf{y}$$.

# Inhomogeneous to Homogeneous

The simplest way to convert from an inhomogeneous coordinate to a homogeneous one is to append a 1 to the end of the coordinate.

$$\begin{bmatrix}x\\y\end{bmatrix}\rightarrow\begin{bmatrix}x\\y\\1\end{bmatrix}$$

$$\begin{bmatrix}X\\Y\\Z\end{bmatrix}\rightarrow\begin{bmatrix}X\\Y\\Z\\1\end{bmatrix}$$

The general conversion is to append 1 and multiply by any non-zero real number.

$$\begin{bmatrix}x\\y\end{bmatrix}\rightarrow\begin{bmatrix}k\cdot x\\k\cdot y\\k\end{bmatrix}$$

$$\begin{bmatrix}X\\Y\\Z\end{bmatrix}\rightarrow\begin{bmatrix}k\cdot X\\k\cdot Y\\k\cdot Z\\k\end{bmatrix}$$

# Homogeneous to Inhomogeneous

To convert from a homogeneous coordinate to an inhomogeneous one, divide all of the components by the last one, which is discarded.

$$\begin{bmatrix}x\\y\\w\end{bmatrix}\rightarrow\begin{bmatrix}x/w\\y/w\end{bmatrix}$$

$$\begin{bmatrix}X\\Y\\Z\\W\end{bmatrix}\rightarrow\begin{bmatrix}X/W\\Y/W\\Z/W\end{bmatrix}$$