示例#1
0
        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);
        }
示例#2
0
 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));
 }