예제 #1
0
        public void TestHexRound()
        {
            CubeFractionCoordinates a = new CubeFractionCoordinates(0, 0, 0);
            CubeFractionCoordinates b = new CubeFractionCoordinates(1, -1, 0);
            CubeFractionCoordinates c = new CubeFractionCoordinates(0, -1, 1);

            EqualHex("hex_round 1", new CubeCoordinates(5, -10, 5), CubeFractionCoordinates.HexLerp(new CubeFractionCoordinates(0, 0, 0), new CubeFractionCoordinates(10, -20, 10), 0.5).Round());
            EqualHex("hex_round 2", a.Round(), CubeFractionCoordinates.HexLerp(a, b, 0.499).Round());
            EqualHex("hex_round 3", b.Round(), CubeFractionCoordinates.HexLerp(a, b, 0.501).Round());
            EqualHex("hex_round 4", a.Round(), new CubeFractionCoordinates(a.Q * 0.4 + b.Q * 0.3 + c.Q * 0.3, a.R * 0.4 + b.R * 0.3 + c.R * 0.3, a.S * 0.4 + b.S * 0.3 + c.S * 0.3).Round());
            EqualHex("hex_round 5", c.Round(), new CubeFractionCoordinates(a.Q * 0.3 + b.Q * 0.3 + c.Q * 0.4, a.R * 0.3 + b.R * 0.3 + c.R * 0.4, a.S * 0.3 + b.S * 0.3 + c.S * 0.4).Round());
        }
예제 #2
0
 public void TestHexLinedraw()
 {
     EqualHexArray("hex_linedraw", new List <CubeCoordinates> {
         new CubeCoordinates(0, 0, 0), new CubeCoordinates(0, -1, 1), new CubeCoordinates(0, -2, 2), new CubeCoordinates(1, -3, 2), new CubeCoordinates(1, -4, 3), new CubeCoordinates(1, -5, 4)
     }, CubeFractionCoordinates.HexLinedraw(new CubeCoordinates(0, 0, 0), new CubeCoordinates(1, -5, 4)));
 }