Mapping finite nD lattices to 2D

unitX1 pts0 comments

THLP — Mapping Hyperspaces into the Plane

>><br>PRINT<br>DE

A QUICK INTRODUCTION

On a first reading, it is not necessary to understand every detail of the steps that follow. I suggest reading through them briefly and then asking yourself: Did anything particularly complicated happen? Ideally, the answer will be no.

It is best to begin by taking a look at the visualizations. Use the Number Garden button in the title area to explore them interactively. In Number Garden, double-click anywhere in the display or press N to generate new examples. Sometimes it takes several attempts before a particularly striking pattern appears. They emerge from the simple operations described below, yet they do not appear as mere tiling patterns: they form remarkably different visual worlds that nevertheless arise from the same defined construction process.

Anyone wishing to reproduce the results on a computer will, of course, need to understand the procedure in full. When implementing it on a computer, one will then most likely encounter the real challenges.

Points are written as:

P = [x, y, ...]<br>In the following explanation, no distinction is made between a point and its position vector. When P is called a vector, it means the vector from the origin to the point P.

Imagine this:

In three-dimensional space, we allow three possible positions on each of the x-, y-, and z-axes. On every axis, we may move one step in the negative direction, remain at zero, or move one step in the positive direction:

x, y, z in {-1, 0, 1}

Figure 1. A 3 x 3 x 3 lattice cube. Each coordinate can take one of the three values -1, 0, or 1.

Following this rule, 27 different points can be reached. Each axis provides three states, so the total number of possible points is:

3(x) * 3(y) * 3(z) = 27<br>Now let us try the same idea with a lattice in six-dimensional space.

This time, we also increase the extent to three steps in either direction. Each axis therefore allows the positions:

{-3, -2, -1, 0, 1, 2, 3}<br>There are seven possible positions on each of six axes. The complete six-dimensional lattice therefore contains:

76 = 117,649 points<br>We can assign all these points to a two-dimensional square grid.

For such a square arrangement, the dimension of the original lattice must be even: 2, 4, 6, 8, and so on. An even dimension makes this square arrangement possible; an odd dimension does not produce such a square in this form.

Let us examine this in more detail using the relation:

q2m = (qm)2<br>Here, q is the number of possible states on each axis. The lattice extends equally far in the negative and positive directions, with zero as the central state. If the extent in either direction is r, then q = 2r + 1, so q is always odd. The value m is a positive integer, so 2m is the even dimension of the original lattice.

As a result of this relation, the higher-dimensional lattice can be arranged in the plane as a qm by qm square containing the same number of lattice points. Since q is odd, the side length qm is odd as well. The square therefore has one lattice point exactly at its center, and this point serves as the origin.

Our six-dimensional object with seven possible positions on every axis has the same property: the origin lies at the center of all the lattice points.

But how are the points assigned?

That is what the following example demonstrates.

UNDERSTANDING THE METHOD THROUGH ONE EXAMPLE

We use a six-dimensional lattice with the following available coordinate values:

{-3, -2, -1, 0, 1, 2, 3}<br>As our example, we choose the point:

P = [-3, 0, 1, -1, 3, -2]

First, split the six components into two blocks of equal length:

Px = [-3, 0, 1]<br>Py = [-1, 3, -2]<br>Px will produce the horizontal coordinate in the 2D plane. Py will produce the vertical coordinate.

Other arrangements are possible, but the chosen component order must remain consistent throughout the transformation.

For the moment, concentrate only on the first block:

Px = [-3, 0, 1]

To convert the components, add the extent r to each component. In our example, the extent is r = 3. Therefore:

digit = component + 3<br>This relation produces the following mapping:

component becomes digit

-3 -> 0<br>-2 -> 1<br>-1 -> 2<br>0 -> 3<br>1 -> 4<br>2 -> 5<br>3 -> 6<br>The first block therefore changes from:

Px = [-3, 0, 1]<br>to:

Px' = [0, 3, 4]

Now take the three components in their existing order as a number:

034

At this point, we need to treat 034 as a numeral in the base-7 numeral system. We use base 7 because every axis has seven possible coordinate states.

This also makes the purpose of the digit range from 0 to 6 clear: the base-7 system permits exactly these seven digits. As shown in step 3, adding r shifts the coordinate values from the range {-r, ..., r} into the nonnegative digit range {0, ..., 2r}. This is what makes the numeral-system representation applicable.

Converting 034 from base 7 into a decimal number gives:

034(base 7)<br>= 0 * 72 + 3 * 71 + 4 * 70<br>= 0 + 21 + 4<br>= 25<br>Specialized In an array,...

lattice points possible number from dimensional

Related Articles