Windrose Planarity - pub.informatik.uni-wuerzburg.de · Windrose Planarity Embedding Graphs with...

136
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

Transcript of Windrose Planarity - pub.informatik.uni-wuerzburg.de · Windrose Planarity Embedding Graphs with...

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

Upward Planarity

An undirected graph is planar : 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

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...

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):

Windrose Planarity

q-constrained graph (G ,Q):• G : undirected planar graph

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◦

Angular Drawing

Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦

Angular Drawing

Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦

Angular Drawing

Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦

Angular Drawing

Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦

0◦

Angular Drawing

Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦

0◦

Angular Drawing

Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦

90◦

0◦90◦

Angular Drawing

Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦

90◦

0◦90◦

Angular Drawing

Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦

90◦

0◦90◦

180◦

Angular Drawing

Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦

90◦

0◦90◦

180◦

Angular Drawing

Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦

90◦

270◦

0◦90◦

180◦

Angular Drawing

Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦

90◦

270◦

0◦90◦

180◦

Angular Drawing

Angle categories: 0◦, 90◦, 180◦, 270◦, and 360◦

90◦

270◦

360◦

0◦90◦

180◦

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 Graphs0 180 0

Triangulated Graphs0 180 0

Triangulated Graphs0 90 90

Triangulated Graphs

• No (int.) > 180◦ angle categories0 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

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

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

G→

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.

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?

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

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