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