Hexagon Prime Spiral

A spiral drawn on a hexagon grid with the prime numbers colored in red or black. The numbers go from 1 to 90000. The red dots are twin primes.

Hex Primes

Motivation:
The Ulam spiral is generated by drawing a spiral on a square grid and highlighting the prime numbers.

source: Wikimedia

I tried to find if this had been performed using a hexagonal grid and could only find this image:

source: Mathworld

The Mathworld image seemed interesting but one can not see apparent patterns from this visualization.

Implementation:

Hex Grid System:
I decided to use an x and a slanted y axis to index the hexagons. Doing some math I was able to derive the center of a hexagon given an x and y offset.


float center_x = radius * cos_30 * (2 * x - y);
float center_y = -y * (radius * 3/2);

The Spiral:
From the diagram one can see a pattern of movement for the spiral. For the direction I created an array:


var directions = [[0,-1], [-1,-1], [-1,0], [0,1], [1,1], [1,0]];

The magnitudes of the direction of travel follows the pattern n,n,n,n,n+1,n where n is the current ring you are on. This excludes the first move where I move right one hex. The magnitude of travel can be expressed with the following:


int mag = Math.floor((counter-1)/6) + 1

if ((hex_loc_counter+1) % 6 == 0){
mag += 1
}

Red vs Black Dots:
I am interested in twin primes so I decided to highlight the twin primes in red.


if (isPrime(n+2) || isPrime(n-2)){
red_hexagon
}
else{
black_hexagon
}

Future Work:
I would be interested to see how the 6n+1 and 6n-1 primes appear on the hex grid.

About these ads
This entry was posted in Uncategorized and tagged , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s