Motivated by page 14 in William F. Burke’s Applied Differential Geometry.

Affine Spaces

Consider two real 3‑vectors
a
and
b
and a map
Λ
k
(a,b)=a+k(b-a)
. Note that
Λ
0
(a,b)=a
and
Λ
1
(a,b)=b
. Λ is sometimes called lirp, for linear interpolation.
In[]:=
ClearAll[Λ];​​Λ[k_,a_,b_]:=a+k(b-a);
Λ produces a vector with head touching the line from
a
to
b
somewhere uniformly between them when
0<k<1
.
In the “backing vector space”
3

of
a
and
b
, we can move the origin anywhere, changing the coordinate numbers representing
a
and
b
, but not affecting the geometric object
Λ
k
(a,b)
. It is always the same point a fraction
k
along the line between
a
and
b
. That is the intuitive meaning of affine in this setting: results do not depend on choice of origin. The following demonstration illustrates. Move the origin via the 2‑D slider. Click the “Random a and b” button to get a good visualization. Vary
k
to see
Λ
k
(a,b)
move from
a
to
b
.
In[]:=
ClearAll[a,b,o,a0,b0,c0,k,oxy];​​With[{rg={-1.5,1.5}},​​DynamicModule[{a,b,o,a0,b0,c0},​​{a,b}=RandomReal[{-1,1},{2,3}];​​Manipulate[​​o=Append[oxy,0];​​a0={o,a};b0={o,b};c0=Λ[k,a0,b0];​​Graphics3D[{​​{Black,Thick,Arrow[a0]},​​{Gray,Thick,Arrow[b0]},​​{Darker[Red],Thick,Arrow[c0]},​​{Black,Thin,Line[{a,b}]}​​},PlotRange->{rg,rg,rg}],​​Control[Button[" RANDOM a and b! ",({a,b}=RandomReal[{-1,1},{2,3}]);k=0.5]],​​Control[{{k,0.5},0.0,1.0}],​​Control[{{oxy,{0,0}},{-2,-2},{2,2}}],​​ControlPlacement->{Top,Top,Left},SaveDefinitions->True​​]]]
Out[]=
​
RANDOM a and b!
k
oxy
The space of vectors produced by Λ has enough structure that we can construct parallel lines. Burke’s Figure 1.2 on page 14 shows how to draw a line parallel to
a,b
through a point
p
. First, find the point
c
def
=
Λ
0.5
(a,p)
, halfway between
a
and
p
. Then, let
c
be halfway between
b
and
d
, constructing
d=
Λ
2.0
(b,c)
. This “butterfly” structure is independent of the choice of origin, as the following demonstration illustrates.
Out[]=
​
RANDOM a, b, and p!
oxy
This kind of construct is useful for parallel transport in curved spaces.

An Example Affine Space of Planes

Consider a preferred direction in
3

, represented by a unit vector,
e
, and planes that pass through the origin but do not contain
e
.
To illustrate the space, choose two, distinct, non-zero 3‑vectors,
a
and
b
, such that
(a,b,e)
are a (generally non-orthogonal) basis of
3

. Because
(a,b,e)
are linearly independent,
a
and/or
b
plus any multiple of
e
span a plane that does not contain
e
.
Construct a plane containing
a
and
b
but not
e
. Parameterize more planes by real numbers
u
and
v
, such that
a+ue
and
b+ve
span the new planes specified by the tuple
(u,v)
. The result is 2‑parameter family of planes. The following gadget illustrates such planes for randomly chosen
a
and
b
.
Out[]=
​
u
v
RANDOM a and b!
We only need
(a,b,e)
to be a basis of
3

, so choosing them randomly inhibits visualization. Set
a
and
b
as the usual Cartesian axes,
e
1
and
e
2
, along
x
and
y
, without loss of generality. Now we can really see what’s going on!
a
is black and along
x
.
b
is gray and along
y
.
u
adds a bit of
e
to
a
, ignoring
b
, and producing the red vector
a+ue
. Likewise for
v
and
b
:
v
adds a bit of
b
to
e
, ignoring
a
, and producing the green vector
b+ve
. Don’t be distracted by the orthogonality of
a
and
b
here. They need not be so! Each of
a+ue
and
b+ve
ignores the other so long as
(a,b,e)
are a basis.
Out[]=
​
u
v
RESET u and v !
How about the ladder construction we did for vectors, i.e., “parallel transport” between pairs of planes? What does it look like for planes? Let’s suppress the vector rendering unconditionally lest the illustration be too cluttered.

CITE THIS NOTEBOOK

Parallel transport in an affine space of planes​
by Brian Beckman​
Wolfram Community, STAFF PICKS, March 10, 2024
​https://community.wolfram.com/groups/-/m/t/3138432