Triangulating the Real Projective Plane
Mridul Aanjaneya Monique Teillaud
MACIS’07
The Real Projective Plane
p∈P2 V(p)∈R3
the sphere model
P2 =R3−{0} /∼
p∼p0 ifp=λp0 forλ ∈R−{0}
not orientable
The Real Projective Plane
p
p q
q
segment [p,q]?
P2 =R3−{0} /∼
p∼p0 ifp=λp0 forλ ∈R−{0}
not orientable
Triangulation
(abstract)simplicial complex= set K and
collection of S of (abstract) simplices
= subsets of K such that
1 For all v ∈K ,{v} ∈S = vertex of K
2 Ifτ ⊆σ ∈S, thenτ ∈S.
Triangulationof a topological space X= simplicial complexK
such that∪σ∈Kσis homeomorphic toX.
Triangulation
(abstract)simplicial complex= set K and
collection of S of (abstract) simplices
= subsets of K such that
1 For all v ∈K ,{v} ∈S = vertex of K
2 Ifτ ⊆σ ∈S, thenτ ∈S.
Triangulationof a topological space X= simplicial complexK
Triangulations of P
2Studied mainly from a graph-theoretic perspective.
P2 admits exactlytwoirreducible triangulations.
[Barnette, 1982]
1
2 3
4
5 6
2
3
7
1
1
2
2
3
3 4 5
6
1
Our Problem
Compute atriangulation ofP2
whoseverticesare points of a given input set P ={p1,p2, . . . ,pn}
Famous problem inRd, many famous algorithms
Our Problem
Compute atriangulation ofP2
whoseverticesare points of a given input set P ={p1,p2, . . . ,pn}
Famous problem inRd, many famous algorithms use theorientationofRd
−→
do not extend toP2
a
b c
p
in-triangle test
Our Problem
Compute atriangulation ofP2
whoseverticesare points of a given input set P ={p1,p2, . . . ,pn}
Famous problem inRd, many famous algorithms use theorientationofRd
−→
do not extend toP2
p q
r V(p)
V(q)
V(r)
Our Problem
Compute atriangulation ofP2
whoseverticesare points of a given input set P ={p1,p2, . . . ,pn}
Famous problem inRd, many famous algorithms use theorientationofRd
−→
do not extend toP2
p q
r
r p q V(p)
V(q)
V(r)
Our Problem
Compute atriangulation ofP2
whoseverticesare points of a given input set P ={p1,p2, . . . ,pn}
Famous problem inRd, many famous algorithms use theorientationofRd
−→
do not extend toP2
p q
r V(p)
V(q)
V(r)
Our Problem
Compute atriangulation ofP2
whoseverticesare points of a given input set P ={p1,p2, . . . ,pn}
Famous problem inRd, many famous algorithms use theorientationofRd
−→
do not extend toP2
p q
r
r p q V(p)
V(q)
V(r)
Our Problem - some remarks
Obvious approach:
3D convex hull of {p,−p} on the sphere
not a triangulation
p q
r
r p q V(p)
V(q) V(r)
Orientedprojective plane [Stolfi]
'two half-spheres.
Two copies of each point p6=−p.
Two independent triangulations, 2n points.
Our Problem - some remarks
Obvious approach:
3D convex hull of {p,−p} on the sphere
not a triangulation
p q
r
r p q V(p)
V(q) V(r)
Orientedprojective plane [Stolfi]
'two half-spheres.
Two copies of each point p6=−p.
Two independent triangulations, 2n points.
Our algorithm
Basics: thein-triangletest
Algorithm to compute a triangulation ofP directly inP2 in two main steps
initialization of the triangulation sufficient condition for existence insertion of points
in-triangle test
No orientation inP2,
but notion ofinterior/exteriorwell-defined:
P2 with a cell (topologically equivalent to adisk) cut out is topologically equivalent to aMöbius band.
in-triangle test
Theinteriorof a triangle ofP2
can be unambiguously defined/checked using adistinguishing plane
p q
r
r p
P(p, q, r) V(p)
V(q)
V(r)
s ∈P2lies in triangle(p,q,r) iff
v(s)∈R3 lies in cone
(V(p),V(q),V(s)) not cut by theplaneP(p,q,r)
Computing an initial triangulation
Idea: use one of the known minimal triangulations ofP2 and its incidence structure. P ={1,2,3,4,5,6,7}
3
4
5 6
3
7
7 2
1 1
a:1261, b :3253, c:1451, d :3463, e:7247, f :7317 incidences:
1a,1d,1f,2a,2b,2e,3b,3d,3f,4c,4d,4e,5b,5c,6a,6d,7e,7f
Computing an initial triangulation
Idea: use one of the known minimal triangulations ofP2 and its incidence structure. P ={1,2,3,4,5,6,7}
3
4
5 6
3
7
7 2
1 1
a:1261,
b :3253, c:1451, d :3463, e:7247, f :7317 incidences:
1a,1d,1f,2a,2b,2e,3b,3d,3f,4c,4d,4e,5b,5c,6a,6d,7e,7f
Computing an initial triangulation
Idea: use one of the known minimal triangulations ofP2 and its incidence structure. P ={1,2,3,4,5,6,7}
3
4
5 6
3
7
7 2
1 1
a:1261, b :3253,
c :1451, d :3463, e:7247, f :7317 incidences:
1a,1d,1f,2a,2b,2e,3b,3d,3f,4c,4d,4e,5b,5c,6a,6d,7e,7f
Computing an initial triangulation
Idea: use one of the known minimal triangulations ofP2 and its incidence structure. P ={1,2,3,4,5,6,7}
3
4
5 6
3
7
7 2
1 1
a:1261, b :3253, c:1451,
d :3463, e:7247, f :7317 incidences:
1a,1d,1f,2a,2b,2e,3b,3d,3f,4c,4d,4e,5b,5c,6a,6d,7e,7f
Computing an initial triangulation
Idea: use one of the known minimal triangulations ofP2 and its incidence structure. P ={1,2,3,4,5,6,7}
3
4
5 6
3
7
7 2
1 1
a:1261, b :3253, c:1451, d :3463,
e :7247, f :7317 incidences:
1a,1d,1f,2a,2b,2e,3b,3d,3f,4c,4d,4e,5b,5c,6a,6d,7e,7f
Computing an initial triangulation
Idea: use one of the known minimal triangulations ofP2 and its incidence structure. P ={1,2,3,4,5,6,7}
3
4
5 6
3
7
7 2
1 1
a:1261, b :3253, c:1451, d :3463, e:7247,
f :7317 incidences:
1a,1d,1f,2a,2b,2e,3b,3d,3f,4c,4d,4e,5b,5c,6a,6d,7e,7f
Computing an initial triangulation
Idea: use one of the known minimal triangulations ofP2 and its incidence structure. P ={1,2,3,4,5,6,7}
3
4
5 6
3
7
7 2
1 1
a:1261, b :3253, c:1451, d :3463, e:7247, f :7317
incidences:
1a,1d,1f,2a,2b,2e,3b,3d,3f,4c,4d,4e,5b,5c,6a,6d,7e,7f
Computing an initial triangulation
Idea: use one of the known minimal triangulations ofP2 and its incidence structure. P ={1,2,3,4,5,6,7}
3
4
5 6
3
7
7 2
1 1
a:1261, b :3253, c:1451, d :3463, e:7247, f :7317 incidences:
Computing an initial triangulation
Take 4 points inP, no 3 of which are collinear
Add 3 fake points and form theminimal triangulation Associate adistinguishing plane to each triangle Replace the fake points by 3 points ofP
Computing an initial triangulation
Take 4 points inP, no 3 of which are collinear
Add 3 fake points and form theminimal triangulation
Associate adistinguishing plane to each triangle Replace the fake points by 3 points ofP
1
3
3
2
4 p
r
q
Computing an initial triangulation
Take 4 points inP, no 3 of which are collinear
Add 3 fake points and form theminimal triangulation
Associate adistinguishing plane to each triangle Replace the fake points by 3 points ofP
1
3
3
1
2
4
p p
r
q
Computing an initial triangulation
Take 4 points inP, no 3 of which are collinear
Add 3 fake points and form theminimal triangulation
Associate adistinguishing plane to each triangle Replace the fake points by 3 points ofP
1
3
3
2
4 p
r
q
Computing an initial triangulation
Take 4 points inP, no 3 of which are collinear
Add 3 fake points and form theminimal triangulation
Associate adistinguishing plane to each triangle Replace the fake points by 3 points ofP
1
3
3
1
2
4
p p
r
q
Computing an initial triangulation
Take 4 points inP, no 3 of which are collinear
Add 3 fake points and form theminimal triangulation
Associate adistinguishing plane to each triangle Replace the fake points by 3 points ofP
1
3
3
2
4 p
r
q
Computing an initial triangulation
Take 4 points inP, no 3 of which are collinear
Add 3 fake points and form theminimal triangulation
Associate adistinguishing plane to each triangle Replace the fake points by 3 points ofP
1
3
3
1
2
4
p p
r
q
Computing an initial triangulation
Take 4 points inP, no 3 of which are collinear
Add 3 fake points and form theminimal triangulation
Associate adistinguishing plane to each triangle Replace the fake points by 3 points ofP
1
3
3
2
4 p
r
q
Computing an initial triangulation
Take 4 points inP, no 3 of which are collinear
Add 3 fake points and form theminimal triangulation Associate adistinguishing plane to each triangle Replace the fake points by 3 points ofP
Computing an initial triangulation
Take 4 points inP, no 3 of which are collinear
Add 3 fake points and form theminimal triangulation Associate adistinguishing plane to each triangle Replace the fake points by 3 points ofP
Sufficient condition:
at least 6 points ofP are in general position (no 3 points in these 6 are collinear)
O(n2)
Adding further points
Compute a triangulationTnstarting from Tinit=T7
in adynamicway:
For each new pi
Find the triangle ofTi−1containing pi, Cut it into 3 triangles7−→ Ti.
O(n2) in astaticway:1
For each triangle ofTinit,
find the triangle ofTinit containing p, Compute each of the small triangulations
using an algorithm inR2.
O(n log n)
1thanks to anonymous referee
Conclusion
First triangulation algorithm computing inP2. Easy to code in CGAL.
Further work
Delaunay triangulation
Hierarchical data structures and randomized incremental construction?
. . .