I don't get how people are using homogeneous coordinates in order to construct the projection of an object. I know that homogeneous coordinates allow us to perform affine transformations in higher dimensions to make non-linear transformations linear. Is it the only purpose of homogeneous coordinates?

Consider the following picture

Object projection onto projection plane enter image description here

From the picture we can construct projection formulas in order to get projected points:

It is obvious that we can obtain $x_i$ and $y_i$, which are projected coordinates, just using simple triangle proportion calculations. This method does not require extra coordinate stuff unless we are interested in projection matrix construction which is non-linear transformation.

So, the main questions here are:

  • What is the main purpose of homogeneous coordinates apart making non-linear transformations linear?
  • Why we need points/lines at infinity if we can simply represent them as regular points/lines in order to obtain object projection (notice that I haven't used the concept of point's at infinity in order to obtain object projection)?
  • Why homogeneous coordinates are called projective coordinates if they just extend dimension and that's it?

Can you, please, point me where I'm wrong and where should I go further in order to get better understanding of what is projection and how homogeneous coordinates are used in pure projection geometry? Maybe give some problems that show how homogeneous coordinates are really used?

PS: I've red tons of topics here and in different books, but left unsatisfied with the answers


1 Answer 1


You are quite correct that this sort of projection can often be calculated easily without using homogeneous coordinates. To project a point, you just need to intersect a line and a plane, which is easy using regular 3D coordinate geometry.

In my experience, the main benefit of homogeneous coordinates is that they remove special cases from geometric algorithms. If you compute the answer using homogeneous coordinates, then a line and a plane (almost) always intersect at a point, and two different planes always intersect in a line. Using homogeneous coordinates allows us to represent results that are "at infinity", so these no longer need to be treated as special cases.

In your projection example, you would have to deal with points at infinity if the center of projection (the eye point) was inside the object you're viewing. Viewing an object from the inside often happens in architectural applications, for example.

Representing projections and affine transformations using 4D coordinates and $4\times4$ matrices is useful because then it's easy to combine transformations (just by multiplying matrices). If you're programming, then using $4\times4$ matrices is a good idea because your graphics card probably has special hardware that handles them very efficiently. That doesn't explain why people started to use $4\times4$ matrices, but it does explain why people continue to use them.

This document might be useful.

There are a variety of answers here. One of them, from an experienced professional, suggests that it's best to avoid homogeneous coordinates. I somewhat agree. I definitely think they're over-used.

  • $\begingroup$ So basically speaking the homogeneous coordinates are used to make calculations easier, but they do not project anything. Is that right? In this case people are abusing too much their nature in order to perform non-linear transformations $\endgroup$
    – Yurii B
    Commented May 8, 2021 at 10:49
  • $\begingroup$ Yes, homogeneous coordinates and $4\times4$ matrices make some calculations more convenient and faster. You can do projections without homogeneous coordinates, but you might have to handle some special cases separately. $\endgroup$
    – bubba
    Commented May 8, 2021 at 10:53
  • $\begingroup$ Ahh, great. That illuminates some aspects. And one more thing. Can you please tell me if it is possible to grasp real nature of homogeneous coordinates in order to get better understanding of them? And if so can you please provide the direction where I can find these applications? Because I'm currently seeing them from one side (as possibility to create $4 \times 4$ matrices) $\endgroup$
    – Yurii B
    Commented May 8, 2021 at 11:06
  • $\begingroup$ Not sure what you mean by “real nature”. I personally find it difficult to clearly see 4D homcoords. But 3D homcoords for representing 2D points are easy enough: instead of using two coordinates to represent a 2D point, you use a collection of 3D coordinates that represent a line through the origin in 3D space. $\endgroup$
    – bubba
    Commented May 8, 2021 at 11:39
  • $\begingroup$ Hmmm. Doesn't the picture above represents the same concept of line thought the origin (I know it's not, but still)? Sorry for the confusion around "real nature". Just wanted to look at the homogeneous coordinates from the others perspective where people are using them not just for performing matrix multiplications, but use their "projectivity" nature. Otherwise why they are called "projective" coordinates? I see the picture above and homogeneous coordinates the same. Both are dividing x, y by the last coordinate $\endgroup$
    – Yurii B
    Commented May 8, 2021 at 11:56

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .