SLIDE 1 Windrose Planarity
Embedding Graphs with Direction-Constrained Edges
Published at SODA’16. Joint work with Patrizio Angelini, Giordano Da Lozzo, Giuseppe Di Battista, Valentino Di Donato, G¨ unter Rote & Ignaz Rutter Philipp Kindermann LG Theoretische Informatik FernUniversit¨ at in Hagen
SLIDE 2
Upward Planarity
An undirected graph is planar: no crossings
SLIDE 3
Upward Planarity
An undirected graph is planar: no crossings
SLIDE 4 Upward Planarity
An undirected graph is planar: no crossings A directed graph is upwards planar:
- all edges are y-monotone curves directed upwards
- no crossings
SLIDE 5 Upward Planarity
An undirected graph is planar: no crossings A directed graph is upwards planar:
- all edges are y-monotone curves directed upwards
- no crossings
SLIDE 6 Upward Planarity
An undirected graph is planar: no crossings A directed graph is upwards planar:
- all edges are y-monotone curves directed upwards
- no crossings
SLIDE 7 Upward Planarity
planar An undirected graph is planar: no crossings A directed graph is upwards planar:
- all edges are y-monotone curves directed upwards
- no crossings
SLIDE 8 Upward Planarity
planar acyclic An undirected graph is planar: no crossings A directed graph is upwards planar:
- all edges are y-monotone curves directed upwards
- no crossings
SLIDE 9 Upward Planarity
planar acyclic An undirected graph is planar: no crossings A directed graph is upwards planar:
- all edges are y-monotone curves directed upwards
- no crossings
SLIDE 10 Upward Planarity
planar acyclic ? An undirected graph is planar: no crossings A directed graph is upwards planar:
- all edges are y-monotone curves directed upwards
- no crossings
SLIDE 11
Upward Planarity: Testing
Testing Upward Planarity is...
SLIDE 12 Upward Planarity: Testing
Testing Upward Planarity is...
[Garg & Tamassia ’95]
SLIDE 13 Upward Planarity: Testing
Testing Upward Planarity is...
[Garg & Tamassia ’95]
- poly for single-source graphs
[Di Battista et al. ’98]
SLIDE 14 Upward Planarity: Testing
Testing Upward Planarity is...
[Garg & Tamassia ’95]
- poly for single-source graphs
[Di Battista et al. ’98]
[Garg & Tamassia ’95]
SLIDE 15 Upward Planarity: Testing
planar acyclic Testing Upward Planarity is...
[Garg & Tamassia ’95]
- poly for single-source graphs
[Di Battista et al. ’98]
[Garg & Tamassia ’95] ?
SLIDE 16 Upward Planarity: Testing
planar acyclic bimodal Testing Upward Planarity is...
[Garg & Tamassia ’95]
- poly for single-source graphs
[Di Battista et al. ’98]
[Garg & Tamassia ’95]
SLIDE 17 Upward Planarity: Testing
planar acyclic bimodal Testing Upward Planarity is...
[Garg & Tamassia ’95]
- poly for single-source graphs
[Di Battista et al. ’98]
[Garg & Tamassia ’95]
SLIDE 18 Upward Planarity: Testing
planar acyclic bimodal Testing Upward Planarity is...
[Garg & Tamassia ’95]
- poly for single-source graphs
[Di Battista et al. ’98]
[Garg & Tamassia ’95]
SLIDE 19
Windrose Planarity
q-constrained graph (G, Q):
SLIDE 20 Windrose Planarity
q-constrained graph (G, Q):
- G: undirected planar graph
SLIDE 21 Windrose Planarity
q-constrained graph (G, Q):
- G: undirected planar graph
- Q: partition of all neighbors of v into
ր
v,
տ
v,
ւ
v, and
ց
v.
SLIDE 22 Windrose Planarity
q-constrained graph (G, Q):
- G: undirected planar graph
- Q: partition of all neighbors of v into
ր
v,
տ
v,
ւ
v, and
ց
v.
ր
v
տ
v
ց
v
ւ
v v
SLIDE 23 Windrose Planarity
Two directions: q-constrained graph (G, Q):
- G: undirected planar graph
- Q: partition of all neighbors of v into
ր
v,
տ
v,
ւ
v, and
ց
v.
ր
v
տ
v
ց
v
ւ
v v
SLIDE 24 Windrose Planarity
Two directions: q-constrained graph (G, Q):
- G: undirected planar graph
- Q: partition of all neighbors of v into
ր
v,
տ
v,
ւ
v, and
ց
v.
ր
v
տ
v
ց
v
ւ
v A q-constrained graph is windrose planar: v
SLIDE 25 Windrose Planarity
Two directions: q-constrained graph (G, Q):
- G: undirected planar graph
- Q: partition of all neighbors of v into
ր
v,
տ
v,
ւ
v, and
ց
v.
ր
v
տ
v
ց
v
ւ
v A q-constrained graph is windrose planar:
v
SLIDE 26 Windrose Planarity
Two directions: q-constrained graph (G, Q):
- G: undirected planar graph
- Q: partition of all neighbors of v into
ր
v,
տ
v,
ւ
v, and
ց
v.
ր
v
տ
v
ց
v
ւ
v A q-constrained graph is windrose planar:
- no crossings
- all edges are xy-monotone curves
v
SLIDE 27 Windrose Planarity
Two directions: q-constrained graph (G, Q):
- G: undirected planar graph
- Q: partition of all neighbors of v into
ր
v,
տ
v,
ւ
v, and
ց
v.
ր
v
տ
v
ց
v
ւ
v A q-constrained graph is windrose planar:
- no crossings
- all edges are xy-monotone curves
- u ∈
- v ⇒ u lies in the ◦-quadrant of v
v
SLIDE 28 Relationship to Upwards Planarity
Two directions: q-constrained graph (G, Q):
- G: undirected planar graph
- Q: partition of all neighbors of v into
ր
v,
տ
v,
ւ
v, and
ց
v.
ր
v
տ
v
ց
v
ւ
v A q-constrained graph is windrose planar:
- no crossings
- all edges are xy-monotone curves
- u ∈
- v ⇒ u lies in the ◦-quadrant of v
v
SLIDE 29 Relationship to Upwards Planarity
Two directions: q-constrained graph (G, Q):
- G: undirected planar graph
- Q: partition of all neighbors of v into
ր
v and
ւ
v v
ր
v
ւ
v A q-constrained graph is windrose planar:
- no crossings
- all edges are xy-monotone curves
- u ∈
- v ⇒ u lies in the ◦-quadrant of v
SLIDE 30 Relationship to Upwards Planarity
One direction: q-constrained graph (G, Q):
- G: undirected planar graph
- Q: partition of all neighbors of v into
ր
v and
ւ
v v
ր
v
ւ
v A q-constrained graph is windrose planar:
- no crossings
- all edges are xy-monotone curves
- u ∈
- v ⇒ u lies in the ◦-quadrant of v
SLIDE 31 Relationship to Upwards Planarity
q-constrained graph (G, Q):
- G: undirected planar graph
- Q: partition of all neighbors of v into
↑
v and
↓
v A q-constrained graph is windrose planar:
- no crossings
- all edges are xy-monotone curves
- u ∈
- v ⇒ u lies in the ◦-quadrant of v
v
↑
v
↓
v One direction:
SLIDE 32 Relationship to Upwards Planarity
directed graph One direction: A directed graph is upwards planar:
- all edges are y-monotone curves directed upwards
- no crossings
v
↑
v
↓
v
SLIDE 33 Relationship to Upwards Planarity
directed graph One direction: A directed graph is upwards planar:
- all edges are y-monotone curves directed upwards
- no crossings
v
↑
v
↓
v Testing Windrose Planarity is NP-complete
Theorem.
SLIDE 34
Angular Drawing
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦
SLIDE 35
Angular Drawing
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦
SLIDE 36
Angular Drawing
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦
SLIDE 37
Angular Drawing
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦
SLIDE 38 Angular Drawing
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦
0◦
SLIDE 39 Angular Drawing
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦
0◦
SLIDE 40 Angular Drawing
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦
90◦ 0◦ 90◦
SLIDE 41 Angular Drawing
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦
90◦ 0◦ 90◦
SLIDE 42 Angular Drawing
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦
90◦ 0◦ 90◦ 180◦
SLIDE 43 Angular Drawing
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦
90◦ 0◦ 90◦ 180◦
SLIDE 44 Angular Drawing
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦
90◦ 270◦ 0◦ 90◦ 180◦
SLIDE 45 Angular Drawing
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦
90◦ 270◦ 0◦ 90◦ 180◦
SLIDE 46 Angular Drawing
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦
90◦ 270◦ 360◦ 0◦ 90◦ 180◦
SLIDE 47 Angular Drawing
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦
90◦ 90◦ 180◦ 270◦ 0◦ 180◦ 0◦ 360◦ 0◦ 270◦ 90◦ 0◦ 270◦ 0◦ 90◦ 180◦ 90◦ 180◦ 90◦ 90◦
SLIDE 48 Angular Drawing
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦
90◦ 90◦ 180◦ 270◦ 0◦ 180◦ 0◦ 360◦ 0◦ 270◦ 90◦ 0◦ 270◦ 0◦ 90◦ 180◦ 90◦ 180◦ 90◦ 90◦
Labeled graph (G, A): G plane graph, A labeling of angles
SLIDE 49 Angular Drawing
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦
90◦ 90◦ 180◦ 270◦ 0◦ 180◦ 0◦ 360◦ 0◦ 270◦ 90◦ 0◦ 270◦ 0◦ 90◦ 180◦ 90◦ 180◦ 90◦ 90◦
Labeled graph (G, A): G plane graph, A labeling of angles Angular drawing: end of segments have slopes ≈ ±1
SLIDE 50 Angular Drawing
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦ Labeled graph (G, A): G plane graph, A labeling of angles Angular drawing: end of segments have slopes ≈ ±1
90◦ 90◦ 180◦ 270◦ 0◦ 180◦ 0◦ 270◦ 90◦ 0◦ 270◦ 0◦ 90◦ 180◦ 90◦ 180◦ 90◦ 90◦ 0◦ 360◦
SLIDE 51 Angular Drawing
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦ Labeled graph (G, A): G plane graph, A labeling of angles Angular drawing: end of segments have slopes ≈ ±1
90◦ 90◦ 180◦ 270◦ 0◦ 180◦ 0◦ 270◦ 90◦ 0◦ 270◦ 0◦ 90◦ 180◦ 90◦ 180◦ 90◦ 90◦ 0◦ 360◦
SLIDE 52 Angular Drawing
(G, A) admits angular drawing if: Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦ Labeled graph (G, A): G plane graph, A labeling of angles Angular drawing: end of segments have slopes ≈ ±1
90◦ 90◦ 180◦ 270◦ 0◦ 180◦ 0◦ 270◦ 90◦ 0◦ 270◦ 0◦ 90◦ 180◦ 90◦ 180◦ 90◦ 90◦ 0◦ 360◦
SLIDE 53 Angular Drawing
(G, A) admits angular drawing if:
- Vertex condition: sum of angle cat. at vertex is 360◦
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦ Labeled graph (G, A): G plane graph, A labeling of angles Angular drawing: end of segments have slopes ≈ ±1
90◦ 90◦ 180◦ 270◦ 0◦ 180◦ 0◦ 270◦ 90◦ 0◦ 270◦ 0◦ 90◦ 180◦ 90◦ 180◦ 90◦ 90◦ 0◦ 360◦
SLIDE 54 Angular Drawing
(G, A) admits angular drawing if:
- Vertex condition: sum of angle cat. at vertex is 360◦
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦ Labeled graph (G, A): G plane graph, A labeling of angles Angular drawing: end of segments have slopes ≈ ±1
90◦ 90◦ 180◦ 270◦ 0◦ 180◦ 0◦ 270◦ 90◦ 0◦ 270◦ 0◦ 90◦ 180◦ 90◦ 180◦ 90◦ 90◦ 0◦ 360◦
SLIDE 55 Angular Drawing
(G, A) admits angular drawing if:
- Vertex condition: sum of angle cat. at vertex is 360◦
- Cycle condition: sum of angle cat. at (int.) face of
length k is k · 180◦ − 360◦ Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦ Labeled graph (G, A): G plane graph, A labeling of angles Angular drawing: end of segments have slopes ≈ ±1
90◦ 90◦ 180◦ 270◦ 0◦ 180◦ 0◦ 270◦ 90◦ 0◦ 270◦ 0◦ 90◦ 180◦ 90◦ 180◦ 90◦ 90◦ 0◦ 360◦
SLIDE 56 Angular Drawing
(G, A) admits angular drawing if:
- Vertex condition: sum of angle cat. at vertex is 360◦
- Cycle condition: sum of angle cat. at (int.) face of
length k is k · 180◦ − 360◦ Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦ Labeled graph (G, A): G plane graph, A labeling of angles Angular drawing: end of segments have slopes ≈ ±1
90◦ 90◦ 180◦ 270◦ 0◦ 180◦ 0◦ 270◦ 90◦ 0◦ 270◦ 0◦ 90◦ 180◦ 90◦ 180◦ 90◦ 90◦ 0◦ 360◦
SLIDE 57 Angular Drawing
(G, A) admits angular drawing if:
- Vertex condition: sum of angle cat. at vertex is 360◦
- Cycle condition: sum of angle cat. at (int.) face of
length k is k · 180◦ − 360◦ Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦ Labeled graph (G, A): G plane graph, A labeling of angles Angular drawing: end of segments have slopes ≈ ±1
90◦ 90◦ 180◦ 270◦ 0◦ 180◦ 0◦ 270◦ 90◦ 0◦ 270◦ 0◦ 90◦ 180◦ 90◦ 180◦ 90◦ 90◦ 0◦ 360◦
⇒ A is angular labeling
SLIDE 58 Angular Drawing
(G, A) admits angular drawing if:
- Vertex condition: sum of angle cat. at vertex is 360◦
- Cycle condition: sum of angle cat. at (int.) face of
length k is k · 180◦ − 360◦ Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦ Labeled graph (G, A): G plane graph, A labeling of angles Angular drawing: end of segments have slopes ≈ ±1
90◦ 90◦ 180◦ 270◦ 0◦ 180◦ 0◦ 270◦ 90◦ 0◦ 270◦ 0◦ 90◦ 180◦ 90◦ 180◦ 90◦ 90◦ 0◦ 360◦
⇒ A is angular labeling angular labeling A ⇒
unique q-constraints QA
SLIDE 59 Angular Drawing
(G, A) admits angular drawing if:
- Vertex condition: sum of angle cat. at vertex is 360◦
- Cycle condition: sum of angle cat. at (int.) face of
length k is k · 180◦ − 360◦ Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦ Labeled graph (G, A): G plane graph, A labeling of angles Angular drawing: end of segments have slopes ≈ ±1
90◦ 90◦ 180◦ 270◦ 0◦ 180◦ 0◦ 270◦ 90◦ 0◦ 270◦ 0◦ 90◦ 180◦ 90◦ 180◦ 90◦ 90◦ 0◦ 360◦
⇒ A is angular labeling angular labeling A ⇒
unique q-constraints QA
SLIDE 60 Angular Drawing
(G, A) admits angular drawing if:
- Vertex condition: sum of angle cat. at vertex is 360◦
- Cycle condition: sum of angle cat. at (int.) face of
length k is k · 180◦ − 360◦ Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦ Labeled graph (G, A): G plane graph, A labeling of angles Angular drawing: end of segments have slopes ≈ ±1
90◦ 90◦ 180◦ 270◦ 0◦ 180◦ 0◦ 270◦ 90◦ 0◦ 270◦ 0◦ 90◦ 180◦ 90◦ 180◦ 90◦ 90◦ 0◦ 360◦
⇒ A is angular labeling angular labeling A ⇒
unique q-constraints QA
q-constraints Q + large-angle assignment L ⇒
unique angular labeling AQ,L
SLIDE 61 Angular Drawing
(G, A) admits angular drawing if:
- Vertex condition: sum of angle cat. at vertex is 360◦
- Cycle condition: sum of angle cat. at (int.) face of
length k is k · 180◦ − 360◦ Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦ Labeled graph (G, A): G plane graph, A labeling of angles Angular drawing: end of segments have slopes ≈ ±1
90◦ 90◦ 180◦ 270◦ 0◦ 180◦ 0◦ 270◦ 90◦ 0◦ 270◦ 0◦ 90◦ 180◦ 90◦ 180◦ 90◦ 90◦ 0◦ 360◦
⇒ A is angular labeling angular labeling A ⇒
unique q-constraints QA
q-constraints Q + large-angle assignment L ⇒
unique angular labeling AQ,L
angular drawing ˆ = windrose planar drawing
SLIDE 62
Triangulated Graphs
0 180 0
SLIDE 63
Triangulated Graphs
0 180 0
SLIDE 64
Triangulated Graphs
0 90 90
SLIDE 65 Triangulated Graphs
- No (int.) > 180◦ angle categories
0 90 90
SLIDE 66 Triangulated Graphs
- No (int.) > 180◦ angle categories
- At least one 0◦ angle category per (int.) face
0 90 90
SLIDE 67 Triangulated Graphs
- No (int.) > 180◦ angle categories
- At least one 0◦ angle category per (int.) face
0 90 90
SLIDE 68 Triangulated Graphs
- No (int.) > 180◦ angle categories
- At least one 0◦ angle category per (int.) face
0 90 90 G ↑
SLIDE 69 Triangulated Graphs
- No (int.) > 180◦ angle categories
- At least one 0◦ angle category per (int.) face
0 90 90 G ↑ G ↑ is acyclic.
Lemma.
Let (G, AQ) be a triangulated angular labeled graph. Then,
SLIDE 70 Triangulated Graphs
- No (int.) > 180◦ angle categories
- At least one 0◦ angle category per (int.) face
0 90 90 G ↑ G ↑ is acyclic and has no internal sources or sinks.
Lemma.
Let (G, AQ) be a triangulated angular labeled graph. Then,
270◦ 270◦
SLIDE 71 Triangulated Graphs
G →
- No (int.) > 180◦ angle categories
- At least one 0◦ angle category per (int.) face
0 90 90 G ↑ is acyclic and has no internal sources or sinks.
Lemma.
Let (G, AQ) be a triangulated angular labeled graph. Then,
270◦ 270◦
SLIDE 72 Triangulated Graphs
G →
- No (int.) > 180◦ angle categories
- At least one 0◦ angle category per (int.) face
0 90 90
Lemma.
G ↑ and G → are acyclic and have no internal sources or sinks. Let (G, AQ) be a triangulated angular labeled graph. Then,
SLIDE 73 Triangulated Graphs
- No (int.) > 180◦ angle categories
- At least one 0◦ angle category per (int.) face
0 90 90
Lemma.
G ↑ and G → are acyclic and have no internal sources or sinks. Let (G, AQ) be a triangulated angular labeled graph. Then, G
SLIDE 74 Triangulated Graphs
- No (int.) > 180◦ angle categories
- At least one 0◦ angle category per (int.) face
0 90 90
Lemma.
G ↑ and G → are acyclic and have no internal sources or sinks. Let (G, AQ) be a triangulated angular labeled graph. Then, G internally
SLIDE 75 Triangulated Graphs
- No (int.) > 180◦ angle categories
- At least one 0◦ angle category per (int.) face
0 90 90
Lemma.
G ↑ and G → are acyclic and have no internal sources or sinks. Let (G, AQ) be a triangulated angular labeled graph. Then, G internally What if there are no (int.) 180◦ angle categories?
SLIDE 76
Quasi-triangulated Graphs
What if there are no (int.) 180◦ angle categories?
SLIDE 77
Quasi-triangulated Graphs
wN wW wS What if there are no (int.) 180◦ angle categories?
SLIDE 78
Quasi-triangulated Graphs
wN wW wS What if there are no (int.) 180◦ angle categories? wE
SLIDE 79
Quasi-triangulated Graphs
What if there are no (int.) 180◦ angle categories? wN wW wS wE G →
SLIDE 80 Quasi-triangulated Graphs
What if there are no (int.) 180◦ angle categories? wN wW wS wE
- topological order on G →:
G → x-coordinates
SLIDE 81 Quasi-triangulated Graphs
What if there are no (int.) 180◦ angle categories? wN wW wS wE
- topological order on G →:
G →
1 2 3 4 5 6 7 8 9 10 11 12 13 14
x-coordinates
SLIDE 82 Quasi-triangulated Graphs
1 3 5 7 9 11 13
What if there are no (int.) 180◦ angle categories? wN wW wS wE
- topological order on G →:
G →
1 2 3 4 5 6 7 8 9 10 11 12 13 14
x-coordinates
SLIDE 83 Quasi-triangulated Graphs
1 3 5 7 9 11 13
What if there are no (int.) 180◦ angle categories?
- topological order on G →:
wN wW wS wE G ↑ x-coordinates
SLIDE 84 Quasi-triangulated Graphs
1 3 5 7 9 11 13
What if there are no (int.) 180◦ angle categories?
- topological order on G →:
wN wW wS wE G ↑
- topological order on G ↑:
x-coordinates y-coordinates
SLIDE 85 Quasi-triangulated Graphs
1 3 5 7 9 11 13
What if there are no (int.) 180◦ angle categories?
- topological order on G →:
wN wW wS wE G ↑
- topological order on G ↑:
2 14 3 10 5 9 8 12 4 7 11 6 1 13
x-coordinates y-coordinates
SLIDE 86 Quasi-triangulated Graphs
1 3 5 7 9 11 13
What if there are no (int.) 180◦ angle categories?
- topological order on G →:
wN wW wS wE G ↑
- topological order on G ↑:
2 14 3 10 5 9 8 12 4 7 11 6 1 13
x-coordinates y-coordinates
SLIDE 87 Quasi-triangulated Graphs
1 3 5 7 9 11 13
What if there are no (int.) 180◦ angle categories?
- topological order on G →:
wN wW wS wE G ↑
- topological order on G ↑:
2 14 3 10 5 9 8 12 4 7 11 6 1 13
x-coordinates y-coordinates
SLIDE 88 Quasi-triangulated Graphs
1 3 5 7 9 11 13
What if there are no (int.) 180◦ angle categories?
- topological order on G →:
wN wW wS wE G ↑
- topological order on G ↑:
2 14 3 10 5 9 8 12 4 7 11 6 1 13
x-coordinates y-coordinates
SLIDE 89 Quasi-triangulated Graphs
1 3 5 7 9 11 13
What if there are no (int.) 180◦ angle categories?
- topological order on G →:
wN wW wS wE G ↑
- topological order on G ↑:
2 14 3 10 5 9 8 12 4 7 11 6 1 13
x-coordinates y-coordinates
SLIDE 90 Quasi-triangulated Graphs
1 3 5 7 9 11 13
What if there are no (int.) 180◦ angle categories?
- topological order on G →:
- topological order on G ↑:
x-coordinates y-coordinates
SLIDE 91 Quasi-triangulated Graphs
1 3 5 7 9 11 13
What if there are no (int.) 180◦ angle categories?
- topological order on G →:
- topological order on G ↑:
x-coordinates y-coordinates
SLIDE 92 Quasi-triangulated Graphs
1 3 5 7 9 11 13
What if there are no (int.) 180◦ angle categories?
- topological order on G →:
- topological order on G ↑:
0◦
x-coordinates y-coordinates
SLIDE 93 Quasi-triangulated Graphs
1 3 5 7 9 11 13
What if there are no (int.) 180◦ angle categories?
- topological order on G →:
- topological order on G ↑:
0◦ 90◦ 90◦
x-coordinates y-coordinates
SLIDE 94 Quasi-triangulated Graphs
1 3 5 7 9 11 13
What if there are no (int.) 180◦ angle categories?
- topological order on G →:
- topological order on G ↑:
0◦ 90◦ 90◦
x-coordinates y-coordinates
SLIDE 95 Quasi-triangulated Graphs
1 3 5 7 9 11 13
What if there are no (int.) 180◦ angle categories?
- topological order on G →:
- topological order on G ↑:
0◦ 90◦ 90◦
x-coordinates y-coordinates
SLIDE 96 Quasi-triangulated Graphs
1 3 5 7 9 11 13
What if there are no (int.) 180◦ angle categories?
- topological order on G →:
- topological order on G ↑:
0◦ 90◦ 90◦
Lemma.
quasi-triangulated angular labeled graph (G, AQ), all internal angles have category 0◦ or 90◦ ⇒ straight-line windrose planar drawing
- n n × n grid in O(n) time
x-coordinates y-coordinates
SLIDE 97
Triangulated graphs
Let (G, AQ) be a triangulated angular labeled graph.
SLIDE 98
Triangulated graphs
Let (G, AQ) be a triangulated angular labeled graph. Task: Augment (G, AQ) to a quasi-triangulated angular labeled graph (G ∗, AQ∗) without internal angle category 180◦.
SLIDE 99
Triangulated graphs
Let (G, AQ) be a triangulated angular labeled graph. Task: Augment (G, AQ) to a quasi-triangulated angular labeled graph (G ∗, AQ∗) without internal angle category 180◦. v
SLIDE 100
Triangulated graphs
Let (G, AQ) be a triangulated angular labeled graph. Task: Augment (G, AQ) to a quasi-triangulated angular labeled graph (G ∗, AQ∗) without internal angle category 180◦. v u
SLIDE 101
Triangulated graphs
Let (G, AQ) be a triangulated angular labeled graph. Task: Augment (G, AQ) to a quasi-triangulated angular labeled graph (G ∗, AQ∗) without internal angle category 180◦. v u w
SLIDE 102
Triangulated graphs
Let (G, AQ) be a triangulated angular labeled graph. Task: Augment (G, AQ) to a quasi-triangulated angular labeled graph (G ∗, AQ∗) without internal angle category 180◦. v u w
SLIDE 103 Triangulated graphs
Let (G, AQ) be a triangulated angular labeled graph. v u w
ր
u = ∅,
ր
w = ∅ (otherwise, set v = u/w)
SLIDE 104 Triangulated graphs
Let (G, AQ) be a triangulated angular labeled graph. v u w
ր
u = ∅,
ր
w = ∅ (otherwise, set v = u/w)
- if (u, w) not on outer face:
SLIDE 105 Triangulated graphs
Let (G, AQ) be a triangulated angular labeled graph. v u w
ր
u = ∅,
ր
w = ∅ (otherwise, set v = u/w)
- if (u, w) not on outer face:
SLIDE 106 Triangulated graphs
Let (G, AQ) be a triangulated angular labeled graph. v u w
ր
u = ∅,
ր
w = ∅ (otherwise, set v = u/w)
- if (u, w) not on outer face:
SLIDE 107 Triangulated graphs
Let (G, AQ) be a triangulated angular labeled graph. v u w
ր
u = ∅,
ր
w = ∅ (otherwise, set v = u/w)
- if (u, w) not on outer face:
SLIDE 108 Triangulated graphs
Let (G, AQ) be a triangulated angular labeled graph. v u w
ր
u = ∅,
ր
w = ∅ (otherwise, set v = u/w)
- if (u, w) not on outer face:
- if (u, w) on outer face:
v u w
SLIDE 109 Triangulated graphs
Let (G, AQ) be a triangulated angular labeled graph. v u w
ր
u = ∅,
ր
w = ∅ (otherwise, set v = u/w)
- if (u, w) not on outer face:
- if (u, w) on outer face:
v u w
SLIDE 110 Triangulated graphs
Let (G, AQ) be a triangulated angular labeled graph. v u w
ր
u = ∅,
ր
w = ∅ (otherwise, set v = u/w)
- if (u, w) not on outer face:
- if (u, w) on outer face:
v u w
SLIDE 111 Triangulated graphs
Let (G, AQ) be a triangulated angular labeled graph. v u w
ր
u = ∅,
ր
w = ∅ (otherwise, set v = u/w)
- if (u, w) not on outer face:
- if (u, w) on outer face:
v u w
SLIDE 112 Triangulated graphs
Let (G, AQ) be a triangulated angular labeled graph. v u w
ր
u = ∅,
ր
w = ∅ (otherwise, set v = u/w)
- if (u, w) not on outer face:
- if (u, w) on outer face:
v u w
SLIDE 113 Triangulated graphs
Let (G, AQ) be a triangulated angular labeled graph. v u w
ր
u = ∅,
ր
w = ∅ (otherwise, set v = u/w)
- if (u, w) not on outer face:
- if (u, w) on outer face:
v u w
SLIDE 114 Triangulated graphs
Let (G, AQ) be a triangulated angular labeled graph. v u w
ր
u = ∅,
ր
w = ∅ (otherwise, set v = u/w)
- if (u, w) not on outer face:
- if (u, w) on outer face:
v u w
SLIDE 115 Triangulated graphs
Let (G, AQ) be a triangulated angular labeled graph. v u w
ր
u = ∅,
ր
w = ∅ (otherwise, set v = u/w)
- if (u, w) not on outer face:
- if (u, w) on outer face:
v u w
SLIDE 116 Triangulated graphs
Let (G, AQ) be a triangulated angular labeled graph. v u w
ր
u = ∅,
ր
w = ∅ (otherwise, set v = u/w)
- if (u, w) not on outer face:
- if (u, w) on outer face:
v u w
SLIDE 117 Triangulated graphs
Let (G, AQ) be a triangulated angular labeled graph. v u w
ր
u = ∅,
ր
w = ∅ (otherwise, set v = u/w)
- if (u, w) not on outer face:
- if (u, w) on outer face:
v u w
SLIDE 118 Triangulated graphs
Let (G, AQ) be a triangulated angular labeled graph. v u w
ր
u = ∅,
ր
w = ∅ (otherwise, set v = u/w)
- if (u, w) not on outer face:
- if (u, w) on outer face:
v u w
SLIDE 119 Triangulated graphs
Let (G, AQ) be a triangulated angular labeled graph. v u w
ր
u = ∅,
ր
w = ∅ (otherwise, set v = u/w)
- if (u, w) not on outer face:
- if (u, w) on outer face:
v u w
SLIDE 120 Triangulated graphs
Let (G, AQ) be a triangulated angular labeled graph. v u w
ր
u = ∅,
ր
w = ∅ (otherwise, set v = u/w)
- if (u, w) not on outer face:
- if (u, w) on outer face:
v u w
SLIDE 121 Triangulated graphs
Let (G, AQ) be a triangulated angular labeled graph. v u w
ր
u = ∅,
ր
w = ∅ (otherwise, set v = u/w)
- if (u, w) not on outer face:
- if (u, w) on outer face:
v u w
SLIDE 122 Triangulated graphs
Let (G, AQ) be a triangulated angular labeled graph. v u w
ր
u = ∅,
ր
w = ∅ (otherwise, set v = u/w)
- if (u, w) not on outer face:
- if (u, w) on outer face:
v u w
Theorem.
A triangulated q-constrained graph (G, Q) is windrose planar ⇔ AQ is angular → draw with 1 bend per edge
- n an O(n) × O(n) grid in O(n) time
SLIDE 123
Plane Graphs
Lemma.
plane q-constrained graph (G, Q) ⇒ find a large-angle assignment L such that AQ,L is angular (if it exists) in O(n log3 n) time
SLIDE 124
Plane Graphs
Lemma.
plane q-constrained graph (G, Q) ⇒ find a large-angle assignment L such that AQ,L is angular (if it exists) in O(n log3 n) time
Lemma.
Plane angular labeled graph (G, A) ⇒ augment in O(n) time to a triangulated labeled graph (G ′, A′)
SLIDE 125 Plane Graphs
Lemma.
plane q-constrained graph (G, Q) ⇒ find a large-angle assignment L such that AQ,L is angular (if it exists) in O(n log3 n) time
Lemma.
Plane angular labeled graph (G, A) ⇒ augment in O(n) time to a triangulated labeled graph (G ′, A′)
270◦ 90◦ β v1 v2 v3 v4 C
SLIDE 126 Plane Graphs
Lemma.
plane q-constrained graph (G, Q) ⇒ find a large-angle assignment L such that AQ,L is angular (if it exists) in O(n log3 n) time
Lemma.
Plane angular labeled graph (G, A) ⇒ augment in O(n) time to a triangulated labeled graph (G ′, A′)
180◦ 90◦ v1 v3 90◦ 0◦ C β v2 v4
SLIDE 127
Plane Graphs
Lemma.
plane q-constrained graph (G, Q) ⇒ find a large-angle assignment L such that AQ,L is angular (if it exists) in O(n log3 n) time
Lemma.
Plane angular labeled graph (G, A) ⇒ augment in O(n) time to a triangulated labeled graph (G ′, A′)
Theorem.
Plane q-constrained Graph ⇒ test windrose planarity in O(n log3 n) time → draw with 1 bend per edge on O(n) × O(n) grid
SLIDE 128
Further Results
Theorem.
Windrose planar q-constrained graph (G, Q) whose blocks are either edges or planar 3-trees ⇒ straight-line windrose planar drawing
SLIDE 129
Further Results
Theorem.
Windrose planar q-constrained graph (G, Q) whose blocks are either edges or planar 3-trees ⇒ straight-line windrose planar drawing Straight-line windrose planar drawings require exponential area.
Theorem.
SLIDE 130
Further Results
Theorem.
Windrose planar q-constrained graph (G, Q) whose blocks are either edges or planar 3-trees ⇒ straight-line windrose planar drawing Straight-line windrose planar drawings require exponential area.
Theorem.
SLIDE 131
Further Results
Theorem.
Windrose planar q-constrained graph (G, Q) whose blocks are either edges or planar 3-trees ⇒ straight-line windrose planar drawing Straight-line windrose planar drawings require exponential area.
Theorem.
SLIDE 132
Further Results
Theorem.
Windrose planar q-constrained graph (G, Q) whose blocks are either edges or planar 3-trees ⇒ straight-line windrose planar drawing Straight-line windrose planar drawings require exponential area.
Theorem.
SLIDE 133 Open problems
- Draw windrose planar graphs straight-line?
SLIDE 134 Open problems
- Draw windrose planar graphs straight-line?
- Generalizations: each edge has a set of possible directions
- r allow more than two directions
SLIDE 135 Open problems
- Draw windrose planar graphs straight-line?
- Generalizations:
- What about bimonotone (relationship between each pair
- f vertices)? Not always straight-line!
each edge has a set of possible directions
- r allow more than two directions
SLIDE 136 Open problems
- Draw windrose planar graphs straight-line?
- Generalizations:
- What about bimonotone (relationship between each pair
- f vertices)? Not always straight-line!
each edge has a set of possible directions
- r allow more than two directions