Giter Site home page Giter Site logo

hexgrid's Introduction

Hexgrid

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

Installation

go get github.com/pmcxs/hexgrid

Usage

Importing

import "github.com/pmcxs/hexgrid"

Examples

Creating hexagons

hexagonA := NewHex(1,2) //at axial coordinates Q=1 R=2
hexagonB := NewHex(2,3) //at axial coordinates Q=2 R=3

Measuring the distance (in hexagons) between two hexagons

distance := HexDistance(hexagonA, hexagonB)

Getting the array of hexagons on the path between two hexagons

origin := NewHex(10,20)
destination := NewHex(30,40)
path := HexLineDraw(origin, destination) 

Creating a layout

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}

Obtaining the pixel that corresponds to a given hexagon

hex := NewHex(1,0)             
pixel := HexToPixel(layout,hex)  // Pixel that corresponds to the center of hex 1,0 (in the given layout)

Obtaining the hexagon that contains the given pixel (and rounding it)

point := point {10,20}
hex := PixelToHex(layout, point).Round()

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request

History

0.1. First version

Credits

License

MIT

hexgrid's People

Contributors

pmcxs avatar steelecliftonberry avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.