News for hackers. Stuff that matters.
Re:Programmer’s guide to homogeneous coordinates by Sharlin on Monday May 15, 2017 @01:53AM (#14339433)
The trick is that a translation of a point (a1, ..., an) is essentially a shear of a point (a1, ..., an, 1) - a linear operation in R^(n+1). But because the points that are of interest lie on a (hyper)plane that is not a vector space - it does not intersect the origin - a shear looks like a nonlinear operation after projection to R^n.

    ^
    |---a
    |   |
  --+--------->
    |

    ^
    | ,---a
    |/   /
  --+--------->
    |
Re:Programmer’s guide to homogeneous coordinates by Sharlin on Monday May 15, 2017 @05:04AM (#14340165)
And you can see how points on the a_(n+1) = 0 plane ("infinitely far away" in projective terms) are invariant under this operation - so they behave like pure direction vectors and can be used as normals and transformed with the same matrix as points!
Re:Programmer’s guide to homogeneous coordinates by UnquietTinkerer on Monday May 15, 2017 @01:59PM (#14343618)
This explanation really helped, thank you.