예제 #1
0
        public static void GetGridPosition()
        {
            // F11
            TriangleCoordinates coordinates1 = new TriangleCoordinates(50, 60, 50, 50, 60, 60);
            GridPosition        position1    = _calc.GetGridPosition(coordinates1);

            Assert.AreEqual(position1.Row, "F");
            Assert.AreEqual(position1.Column, 11);

            // A1
            TriangleCoordinates coordinates2 = new TriangleCoordinates(0, 10, 0, 0, 10, 10);
            GridPosition        position2    = _calc.GetGridPosition(coordinates2);

            Assert.AreEqual(position2.Row, "A");
            Assert.AreEqual(position2.Column, 1);

            // A2
            TriangleCoordinates coordinates3 = new TriangleCoordinates(10, 0, 0, 0, 10, 10);
            GridPosition        position3    = _calc.GetGridPosition(coordinates3);

            Assert.AreEqual(position3.Row, "A");
            Assert.AreEqual(position3.Column, 2);

            // B4
            TriangleCoordinates coordinates4 = new TriangleCoordinates(20, 10, 10, 10, 20, 20);
            GridPosition        position4    = _calc.GetGridPosition(coordinates4);

            Assert.AreEqual(position4.Row, "B");
            Assert.AreEqual(position4.Column, 4);

            // F12
            TriangleCoordinates coordinates5 = new TriangleCoordinates(60, 50, 50, 50, 60, 60);
            GridPosition        position5    = _calc.GetGridPosition(coordinates5);

            Assert.AreEqual(position5.Row, "F");
            Assert.AreEqual(position5.Column, 12);

            // B3
            TriangleCoordinates coordinates6 = new TriangleCoordinates(10, 20, 10, 10, 20, 20);
            GridPosition        position6    = _calc.GetGridPosition(coordinates6);

            Assert.AreEqual(position6.Row, "B");
            Assert.AreEqual(position6.Column, 3);
        }
예제 #2
0
        // Create shape by given parameters
        private async void CreateShape()
        {
            if (SelectedShapeItem != null)
            {
                if (SelectedShapeItem.IsCalculationRequired)
                {
                    switch (SelectedShapeItem.Shapes)
                    {
                    case Shape.IsoscelesTriangle:
                        IsoscelesTrianglePoints =
                            TriangleCoordinates.CalculateCoordinateOfIsoscelesTriangle(HeightUnit, WidthUnit);
                        break;

                    case Shape.ScaleneTriangle:
                        ScaleneTrianglePoints = TriangleCoordinates.CalculateCoordinateOfScaleneTriangle(HeightUnit, WidthUnit);
                        break;

                    case Shape.Parallelogram:
                        ParallelogramPoints =
                            ParallelogramCoordinates.CalculateCoordinateOfParallelogram(WidthUnit);
                        break;

                    default:
                    {
                        var numberOfSie = GetNumberOfSideOfShape(SelectedShapeItem.Shapes);
                        PolygonPoints = PolygonCoordinates.CalculateCoordinateOfShape(numberOfSie, WidthUnit);
                        break;
                    }
                    }
                }

                SetCurrentShape(SelectedShapeItem.Shapes);
            }
            else
            {
                var messageDialog = new MessageDialog("Please select the shape.", "Shapes");
                await messageDialog.ShowAsync();
            }
        }
예제 #3
0
        public static void GetCoordinatesTest()
        {
            GridPosition        position1    = new GridPosition("A", 1);
            TriangleCoordinates coordinates1 = _calc.GetCoordinates(position1);

            Assert.AreEqual(coordinates1.V1X, 0);
            Assert.AreEqual(coordinates1.V1Y, 10);

            Assert.AreEqual(coordinates1.V2X, 0);
            Assert.AreEqual(coordinates1.V2Y, 0);

            Assert.AreEqual(coordinates1.V3X, 10);
            Assert.AreEqual(coordinates1.V3Y, 10);



            GridPosition        position2    = new GridPosition("A", 2);
            TriangleCoordinates coordinates2 = _calc.GetCoordinates(position2);

            Assert.AreEqual(coordinates2.V1X, 10);
            Assert.AreEqual(coordinates2.V1Y, 0);

            Assert.AreEqual(coordinates2.V2X, 0);
            Assert.AreEqual(coordinates2.V2Y, 0);

            Assert.AreEqual(coordinates2.V3X, 10);
            Assert.AreEqual(coordinates2.V3Y, 10);



            GridPosition        position4    = new GridPosition("B", 3);
            TriangleCoordinates coordinates4 = _calc.GetCoordinates(position4);

            Assert.AreEqual(coordinates4.V1X, 10);
            Assert.AreEqual(coordinates4.V1Y, 20);

            Assert.AreEqual(coordinates4.V2X, 10);
            Assert.AreEqual(coordinates4.V2Y, 10);

            Assert.AreEqual(coordinates4.V3X, 20);
            Assert.AreEqual(coordinates4.V3Y, 20);



            GridPosition        position5    = new GridPosition("D", 6);
            TriangleCoordinates coordinates5 = _calc.GetCoordinates(position5);

            Assert.AreEqual(coordinates5.V1X, 30);
            Assert.AreEqual(coordinates5.V1Y, 30);

            Assert.AreEqual(coordinates5.V2X, 20);
            Assert.AreEqual(coordinates5.V2Y, 30);

            Assert.AreEqual(coordinates5.V3X, 30);
            Assert.AreEqual(coordinates5.V3Y, 40);



            GridPosition        position6    = new GridPosition("D", 7);
            TriangleCoordinates coordinates6 = _calc.GetCoordinates(position6);

            Assert.AreEqual(coordinates6.V1X, 30);
            Assert.AreEqual(coordinates6.V1Y, 40);

            Assert.AreEqual(coordinates6.V2X, 30);
            Assert.AreEqual(coordinates6.V2Y, 30);

            Assert.AreEqual(coordinates6.V3X, 40);
            Assert.AreEqual(coordinates6.V3Y, 40);



            GridPosition        position8    = new GridPosition("F", 11);
            TriangleCoordinates coordinates8 = _calc.GetCoordinates(position8);

            Assert.AreEqual(coordinates8.V1X, 50);
            Assert.AreEqual(coordinates8.V1Y, 60);

            Assert.AreEqual(coordinates8.V2X, 50);
            Assert.AreEqual(coordinates8.V2Y, 50);

            Assert.AreEqual(coordinates8.V3X, 60);
            Assert.AreEqual(coordinates8.V3Y, 60);



            GridPosition        position9    = new GridPosition("F", 12);
            TriangleCoordinates coordinates9 = _calc.GetCoordinates(position9);

            Assert.AreEqual(coordinates9.V1X, 60);
            Assert.AreEqual(coordinates9.V1Y, 50);

            Assert.AreEqual(coordinates9.V2X, 50);
            Assert.AreEqual(coordinates9.V2Y, 50);

            Assert.AreEqual(coordinates9.V3X, 60);
            Assert.AreEqual(coordinates9.V3Y, 60);
        }
예제 #4
0
        public TriangleCoordinates GetCoordinates(string row, int column)
        {
            TriangleCoordinates coord = null;

            try
            {
                if (column < 1 || column > 12)
                {
                    throw new Exception("Invalid Column Entry");
                }

                int rowMult = 0;
                switch (row)
                {
                case "A":
                    rowMult = 1;
                    break;

                case "B":
                    rowMult = 2;
                    break;

                case "C":
                    rowMult = 3;
                    break;

                case "D":
                    rowMult = 4;
                    break;

                case "E":
                    rowMult = 5;
                    break;

                case "F":
                    rowMult = 6;
                    break;

                default:
                    throw new Exception("Invalid Row Entry");
                }

                coord = new TriangleCoordinates();

                if (column % 2 == 0)
                {
                    coord.V1x = (column / 2) * 10;
                    coord.V1y = ((rowMult) * 10) - 10;
                    coord.V2x = coord.V1x - 10;
                    coord.V2y = coord.V1y;
                    coord.V3x = coord.V1x;
                    coord.V3y = coord.V1y + 10;
                }
                else
                {
                    coord.V1x = (column / 2) * 10;
                    coord.V1y = (rowMult) * 10;
                    coord.V2x = coord.V1x;
                    coord.V2y = coord.V1y - 10;
                    coord.V3x = coord.V1x + 10;
                    coord.V3y = coord.V1y;
                }
                return(coord);
            }
            catch (Exception e)
            {
                throw e;
            }
        }