Proper Use / Interpretation of homogeneous notation

67 Views Asked by At

I'm trying to understand the proper use or interpretation of homogeneous notation .

I understand the concept of a linear transform $T$ such that $T(c_1\cdot\mathbf{x_1}+c_2\cdot\mathbf{x_2}) = c_1\cdot T(\mathbf{x_1})+c_2\cdot T(\mathbf{x_2})$. Homogeneous Notation lets us press transformations such as

$\mathbf{y}=\mathbf{R}\cdot\mathbf{x}+\mathbf{t}$

as a single transformation

$\mathbf{\tilde{y}}=\begin{bmatrix}\mathbf{R} & \mathbf{t}\\ 0 & 1\end{bmatrix}\cdot\mathbf{\tilde{x}}$

Let's say I have a vector $\mathbf{x} = [8,4,2]^\top$. What does the notation $\mathbf{\tilde{x}}$ imply?

  • Does it mean divide all components by the last value so that $\mathbf{\tilde{x}}=[8/2,4/2,2/2]^\top=[4,2,1]^\top$?
  • Does it mean add a 1 so that $\mathbf{\tilde{x}} = [\;\mathbf{x}\;|\;1\;]^\top = [8,4,2,1]^\top$

What about if about the reverse (if we are given in homogeneous , what can we infer about non-homogeneous equivalents)? If we are given $\mathbf{\tilde{x}}=[12,9,6,3]^\top$, what does this mean about $\mathbf{x}$?

  • Does this mean $\mathbf{x}=[12/3,9/3,6/3,3/3]^\top=[4,3,2,1]^\top$ ?
  • or does it mean $\mathbf{x}=[12/3,9/3,6/3]^\top=[4,3,2]^\top$ ?

Thanks,

1

There are 1 best solutions below

0
On

I don;t know exactly what this notation means, but I can tell you how homogeneous coordinates are used in things like computer graphics. (Indeed, shameless plug: I wrote a book describing this (among other things) in considerable detail, and if you want the longer explanation, that's one good place to get it.)

Here's the idea: linear transformations of the $xy$ plane always take the origin to the origin, so you can't represent translation with them.

But if you put the $xy$ plane into 3-space as the $z = 1$ plane, then you CAN represent translations just fine. (As well as rotations, etc.)

THere's a small problem: some transformations of 3-space don't send that $z=1$ plane to itself! Suppose that $T(3, 7, 1)$ is something like $(2, 0, 5)$. Well, that's not a point of the $z = 1$ plane, so it doesn't make sense to think of $T$ as a transformation of the $xy$-plane.

But there's a nice trick: you can take whatever the transformation produces (the point $(2, 0, 5)$ in the example above) and divide through by the last element to get $(2/5, 0, 1)$, which is in the $z = 1$ plane. So if you're willing to say "I'll apply my transform, and then to do the divide-through operation", then every transform of 3-space starts to work as a transform acting on the $z = 1$ plane. Almost...

The problem is that there are some points, like $(3, 4, 0)$, whjere you can't divide through by the last coordinate, because division by zero is not defined. There are various ways to work around this, but the most convenient is to limit yourself to matrices of the form you've written in your "single transformation" in the problem statement. For matrices like this, any point $(x, y, 1)$ transforms into a point $(x', y', 1)$ whose $z$-coordinate is still 1.

Sadly, the process of dividing through by $z$ is sometimes called "homogenizing" by graphics folks, where in fact it's the exact opposite. Sigh.