module Waxy::Geometry

This is an implmentation of www.redblobgames.com/grids/hexagons/implementation.html. Thank you for that wonderful tutorial.

Constants

HEX_DIRECTIONS_FLAT

www.redblobgames.com/grids/hexagons/#neighbors-axial POINTY q, r, s

HEX_DIRECTIONS_POINTY
SIZE

Public Class Methods

hexagon(center, size) click to toggle source
# File lib/waxy/geometry.rb, line 45
def self.hexagon(center, size)
  Hex.new(   
          outer_coords: (1..6).collect{|i| point(center, size, i)} 
         ) 
end
point(center, size, i) click to toggle source
# File lib/waxy/geometry.rb, line 39
def self.point(center, size, i)
  angle_deg = 60.0 * i
  angle_rad = Math::PI / 180 * angle_deg
  return ((center.x + size) * Math.cos(angle_rad)), ((center.y + size ) * Math.sin(angle_rad))
end
triangle(center, size, i) click to toggle source
# File lib/waxy/geometry.rb, line 51
def self.triangle(center, size, i)
  points = [[0,0]]
  points.push point(center, size, i)
  points.push point(center, size, (i + 1 == 7 ? 1 : i + 1)) 
  points
end