static public List <Hexagon> HexLinedraw(Hexagon a, Hexagon b) { int N = a.Distance(b); FractionalHex anudge = new FractionalHex(a.x + 1e-06, a.y + 1e-06, a.z - 2e-06); FractionalHex bnudge = new FractionalHex(b.x + 1e-06, b.y + 1e-06, b.z - 2e-06); List <Hexagon> results = new List <Hexagon> { }; double step = 1.0 / Math.Max(N, 1); for (int i = 0; i <= N; i++) { results.Add(anudge.HexLerp(bnudge, step * i).HexRound()); } return(results); }
public FractionalHex HexLerp(FractionalHex b, double t) { return(new FractionalHex(x * (1.0 - t) + b.x * t, y * (1.0 - t) + b.y * t, z * (1.0 - t) + b.z * t)); }