This is a GO (Golang) library used to handle regular hexagons. It's based on the algorithms described at http://www.redblobgames.com/grids/hexagons/implementation.html
go get github.com/pmcxs/hexgrid
import "github.com/pmcxs/hexgrid"
hexagonA := NewHex(1,2) //at axial coordinates Q=1 R=2
hexagonB := NewHex(2,3) //at axial coordinates Q=2 R=3
distance := HexDistance(hexagonA, hexagonB)
origin := NewHex(10,20)
destination := NewHex(30,40)
path := HexLineDraw(origin, destination)
origin := point {0,0} // The coordinate that corresponds to the center of hexagon 0,0
size := point {100, 100} // The length of an hexagon side => 100
layout: = layout{size, origin, orientationFlat}
hex := NewHex(1,0)
pixel := HexToPixel(layout,hex) // Pixel that corresponds to the center of hex 1,0 (in the given layout)
point := point {10,20}
hex := PixelToHex(layout, point).Round()
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request
0.1. First version
- Pedro Sousa
- Red Blob Games (http://www.redblobgames.com/grids/hexagons/implementation.html)
MIT