Windrose Planarity
Embedding Graphs withDirection-Constrained Edges
Published at SODA’16. Joint work withPatrizio Angelini, Giordano Da Lozzo, Giuseppe Di Battista,
Valentino Di Donato, Gunter Rote & Ignaz Rutter
Philipp KindermannLG Theoretische Informatik
FernUniversitat in Hagen
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
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
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
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
Upward Planarity
planaracyclic
An undirected graph is planar : no crossings
A directed graph is upwards planar :
• all edges are y -monotone curves directed upwards
• no crossings
Upward Planarity
planaracyclic
An undirected graph is planar : no crossings
A directed graph is upwards planar :
• all edges are y -monotone curves directed upwards
• no crossings
Upward Planarity
planaracyclic?
An undirected graph is planar : no crossings
A directed graph is upwards planar :
• all edges are y -monotone curves directed upwards
• no crossings
Upward Planarity: Testing
Testing Upward Planarity is...• NP-complete in general [Garg & Tamassia ’95]
Upward Planarity: Testing
Testing Upward Planarity is...• NP-complete in general [Garg & Tamassia ’95]• poly for single-source graphs [Di Battista et al. ’98]
Upward Planarity: Testing
Testing Upward Planarity is...• NP-complete in general [Garg & Tamassia ’95]• poly for single-source graphs [Di Battista et al. ’98]• poly for fixed embedding [Garg & Tamassia ’95]
Upward Planarity: Testing
planaracyclic
Testing Upward Planarity is...• NP-complete in general [Garg & Tamassia ’95]• poly for single-source graphs [Di Battista et al. ’98]• poly for fixed embedding [Garg & Tamassia ’95]
?
Upward Planarity: Testing
planaracyclicbimodal
Testing Upward Planarity is...• NP-complete in general [Garg & Tamassia ’95]• poly for single-source graphs [Di Battista et al. ’98]• poly for fixed embedding [Garg & Tamassia ’95]
Upward Planarity: Testing
planaracyclicbimodal
Testing Upward Planarity is...• NP-complete in general [Garg & Tamassia ’95]• poly for single-source graphs [Di Battista et al. ’98]• poly for fixed embedding [Garg & Tamassia ’95]
X
Upward Planarity: Testing
planaracyclicbimodal
Testing Upward Planarity is...• NP-complete in general [Garg & Tamassia ’95]• poly for single-source graphs [Di Battista et al. ’98]• poly for fixed embedding [Garg & Tamassia ’95]
X ×
Windrose Planarity
q-constrained graph (G ,Q):• G : undirected planar graph• Q: partition of all neighbors of v into
↗
v ,↖
v ,↙
v , and↘
v .
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
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
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
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
v
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
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
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
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
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
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:
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
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 Planarityis NP-complete
Theorem.
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◦
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
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 anglesAngular drawing : end of segments have slopes ≈ ±1
Angular Drawing
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦
Labeled graph (G ,A): G plane graph, A labeling of anglesAngular 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◦
Angular Drawing
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦
Labeled graph (G ,A): G plane graph, A labeling of anglesAngular 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◦
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 anglesAngular 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◦
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 anglesAngular 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◦
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 anglesAngular 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◦
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 oflength k is k · 180◦ − 360◦
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦
Labeled graph (G ,A): G plane graph, A labeling of anglesAngular 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◦
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 oflength k is k · 180◦ − 360◦
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦
Labeled graph (G ,A): G plane graph, A labeling of anglesAngular 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◦
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 oflength k is k · 180◦ − 360◦
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦
Labeled graph (G ,A): G plane graph, A labeling of anglesAngular 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 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 oflength k is k · 180◦ − 360◦
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦
Labeled graph (G ,A): G plane graph, A labeling of anglesAngular 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⇒
uniqueq-constraints QA
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 oflength k is k · 180◦ − 360◦
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦
Labeled graph (G ,A): G plane graph, A labeling of anglesAngular 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⇒
uniqueq-constraints QA
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 oflength k is k · 180◦ − 360◦
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦
Labeled graph (G ,A): G plane graph, A labeling of anglesAngular 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⇒
uniqueq-constraints QA
q-constraints Q+ large-angle assignment L⇒
uniqueangular labeling AQ,L
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 oflength k is k · 180◦ − 360◦
Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦
Labeled graph (G ,A): G plane graph, A labeling of anglesAngular 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⇒
uniqueq-constraints QA
q-constraints Q+ large-angle assignment L⇒
uniqueangular labeling AQ,L
angular drawing= windrose planar drawing
Triangulated Graphs
• No (int.) > 180◦ angle categories• At least one 0◦ angle category per (int.) face
0 90 90
Triangulated Graphs
• No (int.) > 180◦ angle categories• At least one 0◦ angle category per (int.) face
0 90 90
Triangulated Graphs
• No (int.) > 180◦ angle categories• At least one 0◦ angle category per (int.) face
0 90 90
G↑
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,
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◦
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◦
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,
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
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
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?
Quasi-triangulated Graphs
≤ 90◦
4 vertices outside
wN
wWwS
What if there are no (int.) 180◦ angle categories?
Quasi-triangulated Graphs
≤ 90◦
4 vertices outside
wN
wWwS
What if there are no (int.) 180◦ angle categories?
wE
Quasi-triangulated Graphs
What if there are no (int.) 180◦ angle categories?
wN
wWwS
wE
• topological order on G→:
G→
x-coordinates
Quasi-triangulated Graphs
What if there are no (int.) 180◦ angle categories?
wN
wWwS
wE
• topological order on G→:
G→
1
2
3
4
5
67
8
9
10
11
12
13
14
x-coordinates
Quasi-triangulated Graphs
1 3 5 7 9 11 13
What if there are no (int.) 180◦ angle categories?
wN
wWwS
wE
• topological order on G→:
G→
1
2
3
4
5
67
8
9
10
11
12
13
14
x-coordinates
Quasi-triangulated Graphs
1 3 5 7 9 11 13
What if there are no (int.) 180◦ angle categories?• topological order on G→:
wN
wWwS
wE
G↑
x-coordinates
Quasi-triangulated Graphs
1 3 5 7 9 11 13
What if there are no (int.) 180◦ angle categories?• topological order on G→:
wN
wWwS
wE
G↑
• topological order on G↑:
x-coordinatesy -coordinates
Quasi-triangulated Graphs
1 3 5 7 9 11 13
What if there are no (int.) 180◦ angle categories?• topological order on G→:
wN
wWwS
wE
G↑
• topological order on G↑:
2
14
3
10
5
98
12
4
7
11
6
1
13
x-coordinatesy -coordinates
Quasi-triangulated Graphs
1 3 5 7 9 11 13
What if there are no (int.) 180◦ angle categories?• topological order on G→:
wN
wWwS
wE
G↑
• topological order on G↑:
2
14
3
10
5
98
12
4
7
11
6
1
13
x-coordinatesy -coordinates
Quasi-triangulated Graphs
1 3 5 7 9 11 13
What if there are no (int.) 180◦ angle categories?• topological order on G→:
wN
wWwS
wE
G↑
• topological order on G↑:
2
14
3
10
5
98
12
4
7
11
6
1
13
x-coordinatesy -coordinates
Quasi-triangulated Graphs
1 3 5 7 9 11 13
What if there are no (int.) 180◦ angle categories?• topological order on G→:
wN
wWwS
wE
G↑
• topological order on G↑:
2
14
3
10
5
98
12
4
7
11
6
1
13
x-coordinatesy -coordinates
Quasi-triangulated Graphs
1 3 5 7 9 11 13
What if there are no (int.) 180◦ angle categories?• topological order on G→:
wN
wWwS
wE
G↑
• topological order on G↑:
2
14
3
10
5
98
12
4
7
11
6
1
13
x-coordinatesy -coordinates
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-coordinatesy -coordinates
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-coordinatesy -coordinates
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-coordinatesy -coordinates
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-coordinatesy -coordinates
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-coordinatesy -coordinates
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-coordinatesy -coordinates
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 drawingon n × n grid in O(n) time
x-coordinatesy -coordinates
Triangulated graphs
Let (G ,AQ) be a triangulated angular labeled graph.
Task: Augment (G ,AQ) to a quasi-triangulated angular labeledgraph (G∗,AQ∗) without internal angle category 180◦.
Triangulated graphs
Let (G ,AQ) be a triangulated angular labeled graph.
Task: Augment (G ,AQ) to a quasi-triangulated angular labeledgraph (G∗,AQ∗) without internal angle category 180◦.
v
Triangulated graphs
Let (G ,AQ) be a triangulated angular labeled graph.
Task: Augment (G ,AQ) to a quasi-triangulated angular labeledgraph (G∗,AQ∗) without internal angle category 180◦.
v
u
Triangulated graphs
Let (G ,AQ) be a triangulated angular labeled graph.
Task: Augment (G ,AQ) to a quasi-triangulated angular labeledgraph (G∗,AQ∗) without internal angle category 180◦.
v
u
w
Triangulated graphs
Let (G ,AQ) be a triangulated angular labeled graph.
Task: Augment (G ,AQ) to a quasi-triangulated angular labeledgraph (G∗,AQ∗) without internal angle category 180◦.
v
u
w
Triangulated graphs
Let (G ,AQ) be a triangulated angular labeled graph.
v
u
w
• Assume that↗
u 6= ∅, ↗
w 6= ∅ (otherwise, set v = u/w)
Triangulated graphs
Let (G ,AQ) be a triangulated angular labeled graph.
v
u
w
• Assume that↗
u 6= ∅, ↗
w 6= ∅ (otherwise, set v = u/w)• if (u,w) not on outer face:
Triangulated graphs
Let (G ,AQ) be a triangulated angular labeled graph.
v
u
w
• Assume that↗
u 6= ∅, ↗
w 6= ∅ (otherwise, set v = u/w)• if (u,w) not on outer face:
Triangulated graphs
Let (G ,AQ) be a triangulated angular labeled graph.
v
u
w
• Assume that↗
u 6= ∅, ↗
w 6= ∅ (otherwise, set v = u/w)• if (u,w) not on outer face:
Triangulated graphs
Let (G ,AQ) be a triangulated angular labeled graph.
v
u
w
• Assume that↗
u 6= ∅, ↗
w 6= ∅ (otherwise, set v = u/w)• if (u,w) not on outer face:
Triangulated graphs
Let (G ,AQ) be a triangulated angular labeled graph.
v
u
w
• Assume that↗
u 6= ∅, ↗
w 6= ∅ (otherwise, set v = u/w)• if (u,w) not on outer face: • if (u,w) on outer face:
v
u
w
Triangulated graphs
Let (G ,AQ) be a triangulated angular labeled graph.
v
u
w
• Assume that↗
u 6= ∅, ↗
w 6= ∅ (otherwise, set v = u/w)• if (u,w) not on outer face: • if (u,w) on outer face:
v
u
w
Triangulated graphs
Let (G ,AQ) be a triangulated angular labeled graph.
v
u
w
• Assume that↗
u 6= ∅, ↗
w 6= ∅ (otherwise, set v = u/w)• if (u,w) not on outer face: • if (u,w) on outer face:
v
u
w• Add wN, wE, wS, and wW
Triangulated graphs
Let (G ,AQ) be a triangulated angular labeled graph.
v
u
w
• Assume that↗
u 6= ∅, ↗
w 6= ∅ (otherwise, set v = u/w)• if (u,w) not on outer face: • if (u,w) on outer face:
v
u
w• Add wN, wE, wS, and wW
Triangulated graphs
Let (G ,AQ) be a triangulated angular labeled graph.
v
u
w
• Assume that↗
u 6= ∅, ↗
w 6= ∅ (otherwise, set v = u/w)• if (u,w) not on outer face: • if (u,w) on outer face:
v
u
w• Add wN, wE, wS, and wW
Triangulated graphs
Let (G ,AQ) be a triangulated angular labeled graph.
v
u
w
• Assume that↗
u 6= ∅, ↗
w 6= ∅ (otherwise, set v = u/w)• if (u,w) not on outer face: • if (u,w) on outer face:
v
u
w• Add wN, wE, wS, and wW
Triangulated graphs
Let (G ,AQ) be a triangulated angular labeled graph.
v
u
w
• Assume that↗
u 6= ∅, ↗
w 6= ∅ (otherwise, set v = u/w)• if (u,w) not on outer face: • if (u,w) on outer face:
v
u
w• Add wN, wE, wS, and wW
Triangulated graphs
Let (G ,AQ) be a triangulated angular labeled graph.
v
u
w
• Assume that↗
u 6= ∅, ↗
w 6= ∅ (otherwise, set v = u/w)• if (u,w) not on outer face: • if (u,w) on outer face:
v
u
w• Add wN, wE, wS, and wW
Triangulated graphs
Let (G ,AQ) be a triangulated angular labeled graph.
v
u
w
• Assume that↗
u 6= ∅, ↗
w 6= ∅ (otherwise, set v = u/w)• if (u,w) not on outer face: • if (u,w) on outer face:
v
u
w• Add wN, wE, wS, and wW
Triangulated graphs
Let (G ,AQ) be a triangulated angular labeled graph.
v
u
w
• Assume that↗
u 6= ∅, ↗
w 6= ∅ (otherwise, set v = u/w)• if (u,w) not on outer face: • if (u,w) on outer face:
v
u
w• Add wN, wE, wS, and wW
Triangulated graphs
Let (G ,AQ) be a triangulated angular labeled graph.
v
u
w
• Assume that↗
u 6= ∅, ↗
w 6= ∅ (otherwise, set v = u/w)• if (u,w) not on outer face: • if (u,w) on outer face:
v
u
w• Add wN, wE, wS, and wW
Triangulated graphs
Let (G ,AQ) be a triangulated angular labeled graph.
v
u
w
• Assume that↗
u 6= ∅, ↗
w 6= ∅ (otherwise, set v = u/w)• if (u,w) not on outer face: • if (u,w) on outer face:
v
u
w• Add wN, wE, wS, and wW
Triangulated graphs
Let (G ,AQ) be a triangulated angular labeled graph.
v
u
w
• Assume that↗
u 6= ∅, ↗
w 6= ∅ (otherwise, set v = u/w)• if (u,w) not on outer face: • if (u,w) on outer face:
v
u
w• Add wN, wE, wS, and wW
Triangulated graphs
Let (G ,AQ) be a triangulated angular labeled graph.
v
u
w
• Assume that↗
u 6= ∅, ↗
w 6= ∅ (otherwise, set v = u/w)• if (u,w) not on outer face: • if (u,w) on outer face:
v
u
w• Add wN, wE, wS, and wW
Triangulated graphs
Let (G ,AQ) be a triangulated angular labeled graph.
v
u
w
• Assume that↗
u 6= ∅, ↗
w 6= ∅ (otherwise, set v = u/w)• if (u,w) not on outer face: • if (u,w) on outer face:
v
u
w• Add wN, wE, wS, and wW
Theorem.A triangulated q-constrained graph (G ,Q) is windrose planar⇔ AQ is angular→ draw with 1 bend per edge
on an O(n)× O(n) grid in O(n) time
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
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′)
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◦
β
v1v2
v3
v4
C
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 β
v2v4
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
Further Results
Theorem.Windrose planar q-constrained graph (G ,Q) whose blocksare either edges or planar 3-trees⇒ straight-line windrose planar drawing
Further Results
Theorem.Windrose planar q-constrained graph (G ,Q) whose blocksare either edges or planar 3-trees⇒ straight-line windrose planar drawing
Straight-line windrose planar drawingsrequire exponential area.
Theorem.
Further Results
Theorem.Windrose planar q-constrained graph (G ,Q) whose blocksare either edges or planar 3-trees⇒ straight-line windrose planar drawing
Straight-line windrose planar drawingsrequire exponential area.
Theorem.
Further Results
Theorem.Windrose planar q-constrained graph (G ,Q) whose blocksare either edges or planar 3-trees⇒ straight-line windrose planar drawing
Straight-line windrose planar drawingsrequire exponential area.
Theorem.
Further Results
Theorem.Windrose planar q-constrained graph (G ,Q) whose blocksare either edges or planar 3-trees⇒ straight-line windrose planar drawing
Straight-line windrose planar drawingsrequire exponential area.
Theorem.
Open problems
• Draw windrose planar graphs straight-line?
• Generalizations: each edge has a set of possible directionsor allow more than two directions
Open problems
• Draw windrose planar graphs straight-line?
• Generalizations:
• What about bimonotone (relationship between each pairof vertices)? Not always straight-line!
each edge has a set of possible directionsor allow more than two directions