コード例 #1
0
        public static void Area()
        {
            IsoscelesRightTriangle triangle = new IsoscelesRightTriangle(4);
            double area = triangle.Area();

            Assert.AreEqual(8, area, Tolerance);
        }
コード例 #2
0
        public static void LocalCoordinates()
        {
            IsoscelesRightTriangle      triangle    = new IsoscelesRightTriangle(4);
            IList <CartesianCoordinate> coordinates = triangle.LocalCoordinates();

            Assert.AreEqual(3, coordinates.Count);
            Assert.AreEqual(triangleCoordinates[0].X, coordinates[0].X);
            Assert.AreEqual(triangleCoordinates[0].Y, coordinates[0].Y, Tolerance);
            Assert.AreEqual(triangleCoordinates[1], coordinates[1]);
            Assert.AreEqual(triangleCoordinates[2], coordinates[2]);
        }
コード例 #3
0
 public async Task OnPostAsync()
 {
     //todo: remove try/catch once exception middleware is put in place
     try
     {
         FoundTriangle = await _funWithGeoApiClient.FindTriangleByLabelAsync(Label);
     }
     catch (Exception)
     {
         //todo: create exception handling middleware, should be able to bubble api exceptions from internal micro-services to the UI
         //im taking a shortcut for now...swallowing exception not goody!
         FoundTriangle = null;
     }
 }
コード例 #4
0
        public static void Initialization_with_Coordinates_Creates_Shape()
        {
            IsoscelesRightTriangle triangle = new IsoscelesRightTriangle(4);

            Assert.AreEqual(GeometryLibrary.ZeroTolerance, triangle.Tolerance);

            Assert.AreEqual(3, triangle.Points.Count);
            Assert.AreEqual(triangleCoordinates[0].X, triangle.SideA.I.X);
            Assert.AreEqual(triangleCoordinates[0].Y, triangle.SideA.I.Y, Tolerance);
            Assert.AreEqual(triangleCoordinates[1], triangle.SideA.J);
            Assert.AreEqual(triangleCoordinates[1], triangle.SideB.I);
            Assert.AreEqual(triangleCoordinates[2], triangle.SideB.J);
            Assert.AreEqual(triangleCoordinates[2], triangle.SideC.I);
            Assert.AreEqual(triangleCoordinates[0].X, triangle.SideC.J.X);
            Assert.AreEqual(triangleCoordinates[0].Y, triangle.SideC.J.Y, Tolerance);

            Assert.AreEqual(3, triangle.Sides.Count);
            Assert.AreEqual(4, triangle.SideA.Length(), Tolerance);
            Assert.AreEqual(5.656854249, triangle.SideB.Length(), Tolerance);
            Assert.AreEqual(4, triangle.SideC.Length(), Tolerance);

            Assert.AreEqual(3, triangle.Angles.Count);
            Assert.AreEqual(45, triangle.AngleA.Degrees, Tolerance);
            Assert.AreEqual(90, triangle.AngleB.Degrees, Tolerance);
            Assert.AreEqual(45, triangle.AngleC.Degrees, Tolerance);

            Assert.AreEqual(2.82843, triangle.h, Tolerance);

            Assert.AreEqual(1.333333, triangle.Centroid.X, Tolerance);
            Assert.AreEqual(1.333333, triangle.Centroid.Y, Tolerance);

            Assert.AreEqual(0, triangle.OrthoCenter.X, Tolerance);
            Assert.AreEqual(0, triangle.OrthoCenter.Y, Tolerance);

            Assert.AreEqual(2.828427125, triangle.CircumRadius, Tolerance);
            Assert.AreEqual(2, triangle.CircumCenter.X, Tolerance);
            Assert.AreEqual(2, triangle.CircumCenter.Y, Tolerance);

            Assert.AreEqual(1.171572875, triangle.InRadius, Tolerance);
            Assert.AreEqual(1.171572875, triangle.InCenter.X, Tolerance);
            Assert.AreEqual(1.171572875, triangle.InCenter.Y, Tolerance);
        }
コード例 #5
0
        private IsoscelesRightTriangle CreateTriangleFromCoordinates(Coordinate coor1, Coordinate coor2,
                                                                     Coordinate coor3, string label)
        {
            //right sight up triangle:
            Coordinate newCoor1 = (Coordinate)coor1.Clone();
            Coordinate newCoor2 = (Coordinate)coor2.Clone();
            Coordinate newCoor3 = (Coordinate)coor3.Clone();

            List <Coordinate> triangleCoorindates = new List <Coordinate>
            {
                newCoor1,
                newCoor2,
                newCoor3
            };


            var newTriangle = new IsoscelesRightTriangle(_properties.NonHypotenuseSideLengthInPixels, triangleCoorindates, label);

            return(newTriangle);
        }
コード例 #6
0
        public Vertex[] GetTriangleByLabel(string Label)
        {
            string UCLabel = Label.ToUpper().Trim();

            this.InitializeTriangleGrid();

            Vertex[] verts = null;

            var triangles = from triangle in lstIRT
                            where triangle.Label == UCLabel
                            select triangle;

            if (triangles.Count() == 1)
            {
                IsoscelesRightTriangle irt = triangles.ToArray()[0];
                verts = irt.Vertices;
            }

            return(verts);
        }
コード例 #7
0
        public string GetTriangleByVertices(int x1, int y1, int x2, int y2, int x3, int y3)
        {
            this.InitializeTriangleGrid();

            Vertex v1    = new Vertex(x1, y1);
            Vertex v2    = new Vertex(x2, y2);
            Vertex v3    = new Vertex(x3, y3);
            string Label = string.Empty;

            var triangles = from triangle in lstIRT
                            where triangle.Vertices.Contains(v1) && triangle.Vertices.Contains(v2) && triangle.Vertices.Contains(v3)
                            select triangle;

            if (triangles.Count() == 1)
            {
                IsoscelesRightTriangle irt = triangles.ToArray()[0];
                Label = irt.Label;
            }

            return(Label);
        }