These two topics already exist:

(preface: got in contact with affine space through computer graphics subject in university)

What are affine spaces for?

What are differences between affine space and vector space?

However, people stop explaining when it comes to the point. So I'd like to ask at that point: this post says:

vector spaces are the natural generalization of translations of spaces affine spaces are important, because they recover the concept of points which the "arrows" (vectors) of a vector space move.

Which means: Vector spaces exist to handle space movement and the affine space exists to handle the coordinates of a vector - so is basically one meta level below the vector space?

this post states:

An affine space is an abstraction of how geometrical points (in the plane, say) behave. All points look alike; there is no point which is special in any way. You can't add points. However, you can subtract points (giving a vector as the result).

Which means: I can basically imagine a coordinate system, where objects like arrows (vectors) do not exist. I only have points to work with. In addition I have only a small number of operations, I can do on them (e.g. subtracting)?

this very nice post did not explain, "why" P2 is in fact an affine space. It just says "it is":

In fact, P2 is a classical example of an affine space.

My conclusion: It's basically like a vector space, but without the need of an absolutely specified origin. It's like as if you have a vector space, but moved away from the origin and there is no vector space anymore (like P2 from the post). So if the "user" wants to make use of the affine space, he has to define it's own origin. All points, that are used later (set by the point coordinates) are based on that "self-made"-origin's position

In total I imagine the affine space like a coordinate system with no lines, no vectors, no squares, etc, but only dots. The dot's positions are always relative to the "initially set" origin point. In programming-style words: it's basically a kind of "super class" for the vector space?

@usage (in Computer graphics): From my understanding: It's made for having a sub-coordinatesystem for objects in the space, so that things don't need to be manipulated on the base of the "global" coordinate systems? E.g. "local transformations" in 3D programs (like blender) would be realized through the concept of the affine space?

my professor says:

If you don't have a vector space, you can't have an affine space

This statement actually destroys every understanding I gained through the posts here on stackexchange...

  • 3
    $\begingroup$ What's the question, exactly? $\endgroup$ – Hans Lundmark Nov 25 '15 at 14:35
  • 1
    $\begingroup$ It may be more fruitful to compare groups of transformations. Speaking of groups acting on a Cartesian space, with the analogous questions in parentheses: orthogonal transformations ("What is an inner product space?"), linear transformations ("What is a vector space?"), affine transformations ("What is an affine space?"). $\endgroup$ – Andrew D. Hwang Nov 25 '15 at 15:04
  • 1
    $\begingroup$ @Hans Lundmark: one part of questions would be, if my understand is right, regarding the affine space (for that I put the questionsmarks in) another part would be the question as stated: what is it (/for)? why is it really necessary? why is a "usual" space not enough? $\endgroup$ – TheTrowser Nov 25 '15 at 16:07
  • 1
    $\begingroup$ @TheTrowser did you get your answer from somewhere ? Can you share it here ? $\endgroup$ – Martin Spasov Jul 8 '18 at 16:24
  • $\begingroup$ This is an excellent question. @HansLundmark, if you understood the question, can you please answer? $\endgroup$ – InAFlash Jan 30 '20 at 13:28

I’ll base my answer on the beginning of Chapter III from [ER].

Elements of a vector space $V$ are vectors, as objects of linear operations. But in many problems we are interested in geometrical facts, concerned to relative placement of figures in the considered space, whereas the linear operations go to background. This is why we introduce an affine space $\mathcal A$, which is a geometrical space (so its elements are points) associated with the vector space $V$. Namely, to each ordered pair $(A,B)$ of points of $\mathcal A$ corresponds a vector $\vec{AB}$ of $V$. The vector $\vec{AB}$ is understood as a vector from $A$ to $B$.

There are two axioms determining the correspondence between $\mathcal A$ and $V$.

1)) For each point $A\in\mathcal A$ and each vector $x\in V$ there exists a unique point $B\in\mathcal A$ such that $\vec{AB}=x$. The point $B$ is understood as the point $A$ shifted in the space $\mathcal A$ by the vector $x$.

2)) For each points $A$, $B$, $C$ of $\mathcal A$, $\vec{AC}=\vec{AB}+\vec{BC}$. This axiom can be understood as equivalence of two shifts of $A$ to $B$ and then to $C$ to one shift of $A$ to $C$.

For instance, we can consider Euclidean space $\Bbb R^n$ both as a vector space over $\Bbb R$ and an affine space, where to each pair $A,B$ of elements of $\Bbb R^n$ corresponds a vector $B-A$.

Given a point $A$ of an affine space $\mathcal A$, we can naturally define in $\mathcal A$ lines, planes, and high-dimensional affine subspaces $\{P\in \mathcal A:\vec{AP}\in L\}$ passing through $A$ and corresponding to linear subspaces $L$ of $V$ of the same dimension.

For me affine spaces are useful mainly because of their affine transformations, that is of bijective transformations, preserving straight lines of the affine space. Affine thansformations of $\Bbb R^n$ are less rigid than motions, because we don’t required to keep distances. So, for instance, we can affinely transform a circle into an ellipse or a square to a rhombus. But, some geometric properties of figures are preserved by affine transformations. Such properties are called affine. For instance, a relation of lengths of two parallel segments is an invariant of an affine transformation of $\Bbb R^n$. An other example. In order to prove that the medians of a triangle (in $\Bbb R^2$) intersects in a common point we check this property for a regular triangle and note that each triangle can be obtained from a regular trinagle by an affine transformation of $\Bbb R^2$, and such transformation keeps the property.


[ER] N.V. Efimov, E.R. Rozendorn, Linear algebra and high-dimensional geometry, in Russian.

  • $\begingroup$ What is relation between affine spaces and affine transformations? do you apply affine transformation on affine spaces? $\endgroup$ – Buraian Aug 17 '20 at 8:35
  • $\begingroup$ @DDD4C4U Right. Affine transformations are bijective transformations of an affine space, preserving straight lines. $\endgroup$ – Alex Ravsky Aug 17 '20 at 14:52

Consider a flat sheet. Given two points on the sheet, you can't add them, but you can describe how to go from the first point to the second point. And if you have instructions explaining how to go from point $A$ to point $B$, and further you have instructions for going from point $B$ to point $C$, then you can combine them into a single set of instructions for going from point $A$ to point $C$. And you can take those instructions (e.g., walk 10 feet north and 2 feet east) and apply them to any starting point to get a different ending point. If you say that you are going to measure everything with respect to a specific starting point $O$, every other point $X$ can be thought of as $O$ and the directions from $O$ to $X$.

An affine space is a generalization of this idea. You can't add points, but you can subtract them to get vectors, and once you fix a point to be your origin, you get a vector space. So one perspective is that an affine space is like a vector space where you haven't specified an origin. And given any vector space, you get an affine space by forgetting where the origin is, forgetting addition, but keeping subtraction and allowing yourself to add differences to points, so that you don't have $A+B$, but you do have $A+(B-C)$. Differences give directions, and you can add directions to points, but you can't add points to points.

We can generalize this idea further, which may shed some light: Let $G$ be a group and $X$ a space. An action of $G$ on $X$ is a map $G\times X\to X$ (written $g.x$) such that $g.(h.x)=(gh).x$ for every $g,h\in G, x\in X$. A $G$-torsor is a space $X$ with a group action such that for every $x,y\in X$, there is a unique $g\in G$ with $g.x=y$. $G$ is encoding the ways of getting from one point to another, there is a way to go from one point to any other point, the directions one can give can be applied to any starting point, and one can combine two sets of directions together by following the first set and then the second.

An affine space, is just a $G$-torsor where $G$ is a vector space.

The simplest example here is a point. The next simplest example is a line where we can say how far apart two points are, but no particular point is special. We can take a point and move left or right by one unit, but points cannot be added. So an affine line is like the number line, but we've forgotten where $0$ is.

  • $\begingroup$ Can you give a more concrete example of this using on something simple? $\endgroup$ – Buraian Aug 12 '20 at 18:39
  • $\begingroup$ ". Differences give directions, and you can add directions to points, but you can't add points to points." $\endgroup$ – Buraian Aug 13 '20 at 6:40

If you want to know how they are defined, I think this post sums it up pretty nicely. They're similar to a subspace, in that they seem to be a subset that has the same "shape" as a subspace, but they are offset by some summand, and hence the axioms that define vector spaces do not hold.

But that's theoretical, and doesn't really justify the "why", so here's a more intuitive way to think about it:

Let's say you and I, being ambitious mathematicians, want to invent a way to talk about positions of objects in real life. Assume no coordinate system has been established yet, we're one of the first mathematicians that are even interested in this endeavour, and so we know nothing of "cartesian coordinates" or anything like that.

Whatever system we come up with, we should certainly be a able to describe the movement from one object to the other, such that I can apply it to one object, and arrive at the other. In a way, we should be able to add "delta-positions", or "differences" in positions - we need an operation that, given two positions, results in that difference.

However, what would it mean to "add" two positions themselves together? What would the result be, of adding together the position of the glass and the position of the bottle in front of you? I'm sure you'd agree that whatever you come up with, it should be useful such that I, even if I'm living on the other side of the planet, can add objects just like you, and arrive and something useful, perhaps even the "same" result in some respect, if we add positions that are "the same" in some other.

But there's no intuition concerning what that addition be, or what it should result in, or how two different objects even are "the same". At most, we can say, they're position relative to each other is the same, but how should my glass and your glass be the same?

Hence, we leave it undefined: Scrap addition. You can say you add the difference of the glass and the bottle to the land mower, but not the position of glass itself. You can say my glass and bottle and your glass and bottle are positioned identically relative to each other, but not that my glass is positioned the same way as yours in and of itself.

The same applies for multiplying the position with a scalar: It's meaningless. What would the result be? It's meaningful for movements - you can move the glass halfway to the bottle - but not for the position of the glass itself. What's half the position of your phone?

This is all great, but we still need to come up with a system. I hear someone came up with a system that uses three numbers. Let's use that. It's apparently also used by another system that gives the $(0, 0, 0)$ coordinate a special meaning, but as discussed above, we don't need that. But maybe that system turns out to be useful to describe movement...?

I hope this illustrates the need and use of affine spaces, and how they're "like vector spaces without origin", and why it makes sense to treat them separately from "normal" vector space. And how, out of an affine space, a vector space can emerge by defining delta-positions to be vectors. For Vectors, both addition and scalar multiplications make sense, even if you think away the usual $R^3$-way to express them. It also makes sense to have "no movement", and that this movement would have no direction. But there is no "no position". Any position is as good as any other.

These concepts of course are applicable to a lot more than just 3d-space, but maybe this gives you an intuition (and purpose) to make understanding them easier.


An affine space ${\cal E}$ may always be associated with some vector space $E$ by choosing a point as the origin of the vector space. The vector space may be turned into an affine space by 'forgetting' the origin.

Points are the basic concepts in the affine space ${\cal E}$. But there is an important and useful operation available to you: Barycenters. The process is a bit long, however. You need first to somehow embed ${\cal E}$ in a vector space $V$ (possibly higher dimensional).

Then, given $n$ points, $B_1,...,B_n$ and scalar weights in your field, $w_1,...,w_n$ for which $w_1+\cdots + w_n=1$ the barycenter $M=w_1 B_1 + \cdots + w_n B_n$ is well-defined and, more importantly, independent of the embedding you used. The collection of such barycenters span the whole affine space. From thereon you may also define affine subspaces and a lot of other stuff. For example, a 'basis' for a $d$ dimensional affine space consists of $d+1$ affinely independent points (compare to a basis in a $d$ dimensional vector space being $d$ independent vectors).

Given weights $t_1,...,t_n$ that satisfy $t_1+\cdots+t_n=0$ then the combination $t_1 B_1 + \cdots t_n B_n$ may be associated to a vector and the collection of such spans the vector space $E$.

An example is the affine plane ${\cal P}$ which we embed in ${\Bbb R}^3$ (a vector space) as the set of all ${\Bbb R}^3$-vectors $(x,y,z)$ that satisfy the relation $x+y+z=1$. An affine basis is $B_1=(1,0,0),B_2=(0,1,0),B_3=(0,0,1)$. The rules of the game afterwards is that you are not allowed to move outside ${\cal P}$ so you are not allowed to 'add' points but barycenters are ok, as they keep the relation. You may associate a vector space $P$ to this affine plane by picking an origin, e.g. the point ${\cal O} = B_1=(1,0,0)$ and a basis given by e.g. $u_1=\vec{B_1 B_2} = (-1,1,0)$ and $u_2=\vec{B_1 B_3}=(-1,0,1)$. Any vector in $P$ corresponds to some $(x,y,z)$ with $x+y+z=0$ as you readily see.

In fact a general construction of an affine space is to take a vector space $V$ and a non-zero linear form $\ell\in V'$. You then declare your vector space to be $E={\rm ker} \ell = \ell^{-1}(0)$ and the affine space to be e.g. ${\cal E} = \ell^{-1} (1)$. This is the case in the above example and also in the link you gave.

3D computer programs use projective geometry which means that they use a fictive camera (in fact the eyes of the user) as origin ${\cal O}$ in a 3D vector space and the compinEuter-screen as a 2D affine plane ${\cal P}$. Given any 3D point $X$ the program represent it as the intersection of the line ${\cal O}X$ and ${\cal P}$. In practice, blender also use a fixed point as origin in ${\cal P}$ to facilitate calculations but that's another story.

Edit: If you are familiar with the notion of manifolds then you may view an affine space ${\cal E}$ as a manifold where charts are Euclidean space and transition maps are invertible affine maps.

Thus, given two charts, the local coordinates $x\in {\Bbb R}^d$ and $x\in {\Bbb R}^d$ are related by a transition map $y=Ax + b$ where $A$ is an invertible $d\times d$ matrix and $b\in {\Bbb R}^d$ some vector. Given two points $B$ and $C$ they have coordinates which are related by $y_B=A x_B+b$ and $y_C=A x_C +b$.

Now, I claim that for $t_1,t_2\in {\Bbb R}$, "$M=t_1 B+ t_2 C$" is a well-defined point independent of the choice of charts iff $t_1+t_2=1$. Indeed, in $x$-coordinates we have: $x_M= t_1 x_B+t_2 x_C$ while in $y$-coordinates: $$ y_M = t_1 y_B+ t_2 y_C = t_1 (A x_B+b) + t_2 (A x_C + b) = A (t_1 x_B+t_2 x_C) + (t_1 + t_2) b .$$ In order for this to be well-defined as a point in the manifold we MUST have $y_M=A x_M+b$ and for non-zero $b$ this requires precisely that $t_1+t_2=1$.

Technically $M=t_1 B+t_2 C$ is an abuse of notation (as it does not have an intrinsic definition) and in the mathematics literature you may instead see it written as $M = {\rm bar}((B,t_1), (C,t_2))$ (which is called a barycenter).

  • $\begingroup$ Interesting but another guy told we can't add points in affine space but you did it to find Barry centre hmm $\endgroup$ – Buraian Aug 16 '20 at 21:37
  • $\begingroup$ You may think of it this way: Take a table (your affine space) and two points on the table. The sum of those two point carries no meaning. But the center of gravity (mid-point between the two) does and is unique and the same holds for any weighted combination when sum of weights equal one. For example 2-1 = 1 and 2A - B means the symmetry point of B w.r.t. A. $\endgroup$ – H. H. Rugh Aug 16 '20 at 23:39
  • $\begingroup$ From my experience in physics, usually we define an origin before doing center of mass calculations. I'm not sure hwo a calculation in space with no origin would look like, maybe if you show how one would do such a computation, I may understand more $\endgroup$ – Buraian Aug 17 '20 at 8:23
  • $\begingroup$ The main confusion is how you can have points, without defining an origin. What meaning does (1,1) have without a (0,0).. it is just a pair of numbers without it $\endgroup$ – Buraian Aug 17 '20 at 8:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.