**XYL** is a data directory which
contains examples of XYL files, a simple format
for recording points and lines in 2D space.

An **XYL** file assumes first the existence of an **XY** file,
which lists the (X,Y) coordinates of points. Then the **XYL**
file is used to define lines. Each line is described by a list of the
indices of the points to connect. This list should be contained in a single
line of the file. The number of nonblank noncomment
lines of text is the number of lines. The total number of point indices
is the number of "line items".

Since the XYL file includes point indexes, this raises the issue of whether to use 0 or 1-based indexing. For now, the issue is left open. A program reading an XYL file presumably also has access to the XY file. The index base can usually be inferred from the presence or absence of an index with value 0, or the presence or absence of an index value equal to the number of points.

```
# square.xy
# Vertices of a square
#
0.0 0.0
0.0 1.0
1.0 0.0
1.0 1.0
```

```
# square.xyl
# Indices of vertices to connect
#
1 2 4 3 1
```

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

GRF_TO_XYL, a FORTRAN90 program which converts information describing the adjacency and embedding of an abstract graph from GRF to XYL format.

XY_IO, a C++ library which reads and writes files in the XY and XYL formats.

XYL_DISPLAY, a MATLAB program which reads XYL information defining points and lines in 2D, and displays an image using MATLAB.

XYL_DISPLAY_OPENGL, a C++ program which reads XYL information defining points and lines in 2D, and displays an image using OpenGL.

XYZL, a data directory which contains examples of XYZL files, a simple 3D graphics point and line format;

ANNULUS is a set of 65 points and 48 lines creating quadrilateral faces.

- annulus.xy the coordinates.
- annulus.xyl the line information.
- annulus.png a PNG image.

COXETER is the Coxeter graph, originally stored as a GRF file.

- coxeter.xy the coordinates.
- coxeter.xyl the line information.
- coxeter.png a PNG image.

**HEXAGONAL** describes 105 points, and the lines that connect some of
them to form a 14 hexagons.

- hexagonal.xy, the point coordinates.
- hexagonal.xyl, the indices of points to connect.
- hexagonal.png, a PNG image.

**HOUSE** describes points and lines that form a house.

- house.xy, the point coordinates.
- house.xyl, the indices of points to connect.
- house.png, a PNG image.

K5 is the complete graph on 5 nodes, originally stored as a GRF file.

PETERSEN is the Petersen graph, originally stored as a GRF file.

- petersen.xy the coordinates.
- petersen.xyl the line information.
- petersen.png a PNG image.

**QUADS** describes 100 points, and the lines that connect them
to form 81 quadrilaterals on a distorted rectangular mesh.

- quads.xy, the point coordinates.
- quads.xyl, the indices of points to connect.
- quads.png, a PNG image.

**SQUARES** describes 30 points, and the lines that connect them
to form 20 squares.

- squares.xy, the point coordinates.
- squares.xyl, the indices of points to connect.
- squares.png, a PNG image.

TUTTE is the Tutte graph, originally stored as a GRF file.

You can go up one level to the DATA page.