> information

Go back...

The graph of an intersecting arrangement of pseudocircles is 3-connected and planar, hence, it has a unique dual TODO! To generate the intersecting arrangements we used the dual graphs and a procedure which produces the duals of all extensions by one additional pseudocircle of a given arrangement. The procedure is based on the observation that an extending pseudocircle for an arrangement of $n$ pseudocircles corresponds to a cycle of length $2n$ in the dual. A problem is that the same arrangement is usually generated many times. We used the canonical labeling provided by the Graph-package of SageMath to check whether an arrangement was found before. For readers, who want to get in touch with SageMath, the authors recommend the Sage Reference Manual on Graph Theory (available as PDF and HTML), which is well-documented and provides tons of excellent examples. We consider this dual graph representation of an arrangement as "model 1".

The graph of a connected arrangement may only be 2-connected. Since the graph is still plane, the dual is nevertheless well defined. To avoid problems with non-unique embeddings and multiple edges, we modelled connected arrangements with their primal-dual graphs where vertices, segments, and faces of the arrangement are represented by a vertex in the graph and two vertices share an edge if the corresponding entities are incident. We consider this primal-dual graph representation of an arrangement as "model 2".

Details on the encoding

We use following three plain-text formats for encoding graphs.


In the txt-format, each line encodes the python-dictionary, whichs entries are pairs of vertices (a,b) that share an edge and the value is a color. The following dictionary encodes the dual graph of the "Krupp" arrangement of 3 pseudocircles:
 {(7, 3): 'green', (5, 4): 'blue', (6, 7): 'blue', (3, 0): 'red', (2, 1): 'red', (7, 4): 'red', (6, 2): 'green', (2, 3): 'blue', (5, 1): 'green', (1, 0): 'blue', (6, 5): 'red', (4, 0): 'green'}

mod1s6 and mod2s6

In the mod1s6 and mod2s6 format, each line encodes the sparse6 string of the dual graph and the primal-dual graph, respectively. The abreviation "modXs6" stands for "model X spase6". The following sparse6-string encodes the (uncolored) dual graph of the "Krupp" arrangement of 3 pseudocircles:
We remark that in SageMath one can simply run for example
sage: G = Graph(":GgXeBQAQAN")
sage: show(G)
to load and plot the dual graph of a Krupp arrangement. The following figure shows the resulting image.

Note that the sparse6 string does not decode the edge colors and, therefore, one needs to recompute the colors of an arrangement whenever needed. However, this can be done efficiently by propagating along the faces.

When encoding "model 2" graphs, we mark every vertex that correspond to a face of the arrangement by adding an auxiliary vertex and a pending edge. Note that auxiliary vertices are the only vertices of degree 1. The following sparse6-string encodes the (uncolored and marked) primal-dual graph of the "Krupp" arrangement of 3 pseudocircles:

Details on the visualization

On this website we provide a couple of figures which visualize certain arrangements of pseudocircles. These figures were automatically generated using iterative weighted Tutte embeddings of the primal graph (model 1) or of the primal-dual graphs (model 2). For more details we refer to Section 4 of our paper Arrangements of Pseudocircles: Triangles and Drawings. Our program is available on demand.

Go back...

Last update: November 16 2017 21:00:02. (c) 2017 Stefan Felsner and Manfred Scheucher