Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Linear Algebra. A point in space can be though as a vector. Rotation and scaling are done by multiplying a vector with a matrix.


Nit-picking, but points form an "affine space": in particular, there's no meaningful way to "add" points; or to "scale" a point. We can only talk about the relations between points (e.g. "the midpoint of A and B"; or "the set of points coplanar to A, B and C") https://en.wikipedia.org/wiki/Affine_space

In contrast, elements of a vector space have absolute properties; in particular, there is a "zero vector" whose magnitude is 0. Vectors can be added and scaled in a meaningful way.

We can obtain a vector space from an affine space of points by considering the displacements between points (i.e. arrows going from one point to another): the zero vector is the displacement from any point to itself; displacements can be added (first follow one arrow, then the other); and displacements can be scaled (changing the magnitude, whilst keeping the direction fixed).

To form a vector space of points, we can choose some arbitrary point in our affine space (which we call "the origin") and consider the vector space of displacements from our chosen origin. In other words, if we take the "arrows" from our vector space of displacements, and have them all start at the same point (our arbitrary "origin"), then each arrow corresponds to a point (its end), and each point corresponds to an arrow (ending at that point, starting at the origin). The origin point itself corresponds to the zero vector of displacements. This way, we've made points equivalent to displacements (from "the origin"), and since the latter form a vector space, so do the former.

However, despite these shenanigans it's important to keep in mind that it's still only meaningful to talk about points in a relative way. That's explicit in the affine approach; whilst the vector approach always has an implicit "relative to this particular origin".




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: