コード例 #1
0
ファイル: SSLOperationsTests.cs プロジェクト: svramusi/CS623
        public void TestAngleBisectorsNonConvexPolygon()
        {
            LAV listOfActiveVertices2 = new LAV();
            listOfActiveVertices2.Add(new Vertex(0, 6));
            listOfActiveVertices2.Add(new Vertex(0, 0));
            listOfActiveVertices2.Add(new Vertex(4, 0));
            listOfActiveVertices2.Add(new Vertex(4, 3));
            listOfActiveVertices2.Add(new Vertex(8, 3));
            listOfActiveVertices2.Add(new Vertex(8, 6));
            SSLOperations.SetVertexType(listOfActiveVertices2);
            SSLOperations.ComputeAngleBisectors(listOfActiveVertices2);

            Assert.AreEqual(3.29, Math.Round(listOfActiveVertices2.Get(4).AngleBisector.GetX(), 2));
            Assert.AreEqual(3.71, Math.Round(listOfActiveVertices2.Get(4).AngleBisector.GetY(), 2));
        }
コード例 #2
0
ファイル: SSLOperationsTests.cs プロジェクト: svramusi/CS623
        public void TestVertexType()
        {
            //ALL CONVEX POLYGONS
            //RECTANGLE
            SSLOperations.SetVertexType(listOfActiveVertices);

            foreach (Vertex v in listOfActiveVertices)
                Assert.AreEqual(Vertex.VertexType.Edge, v.Type);

            //DIAMOND
            LAV listOfActiveVertices2 = new LAV();
            listOfActiveVertices2.Add(new Vertex(2, 4));
            listOfActiveVertices2.Add(new Vertex(0, 2));
            listOfActiveVertices2.Add(new Vertex(2, 0));
            listOfActiveVertices2.Add(new Vertex(4, 2));
            SSLOperations.SetVertexType(listOfActiveVertices2);

            foreach (Vertex v in listOfActiveVertices2)
                Assert.AreEqual(Vertex.VertexType.Edge, v.Type);

            //OCTAGON
            LAV listOfActiveVertices3 = new LAV();
            listOfActiveVertices3.Add(new Vertex(3, 10));
            listOfActiveVertices3.Add(new Vertex(0, 7));
            listOfActiveVertices3.Add(new Vertex(0, 3));
            listOfActiveVertices3.Add(new Vertex(3, 0));
            listOfActiveVertices3.Add(new Vertex(7, 0));
            listOfActiveVertices3.Add(new Vertex(10, 3));
            listOfActiveVertices3.Add(new Vertex(10, 7));
            listOfActiveVertices3.Add(new Vertex(7, 10));
            SSLOperations.SetVertexType(listOfActiveVertices3);

            foreach (Vertex v in listOfActiveVertices3)
                Assert.AreEqual(Vertex.VertexType.Edge, v.Type);

            //ALL NON-CONVEX POLYGONS
            //PEAK -- W type shape
            LAV listOfActiveVertices4 = new LAV();
            listOfActiveVertices4.Add(new Vertex(0, 3));
            listOfActiveVertices4.Add(new Vertex(2, 0));
            listOfActiveVertices4.Add(new Vertex(4, 2));
            listOfActiveVertices4.Add(new Vertex(6, 0));
            listOfActiveVertices4.Add(new Vertex(8, 3));
            SSLOperations.SetVertexType(listOfActiveVertices4);

            for (int i = 0; i < listOfActiveVertices4.Length; i++)
                if (i != 3)
                    Assert.AreEqual(Vertex.VertexType.Edge, listOfActiveVertices4.Get(i).Type);
                else
                    Assert.AreEqual(Vertex.VertexType.Split, listOfActiveVertices4.Get(i).Type);

            //VALLEY
            LAV listOfActiveVertices5 = new LAV();
            listOfActiveVertices5.Add(new Vertex(0, 4));
            listOfActiveVertices5.Add(new Vertex(0, 0));
            listOfActiveVertices5.Add(new Vertex(4, 0));
            listOfActiveVertices5.Add(new Vertex(4, 4));
            listOfActiveVertices5.Add(new Vertex(2, 2));
            SSLOperations.SetVertexType(listOfActiveVertices5);

            for (int i = 0; i < listOfActiveVertices5.Length; i++)
                if (i != 5)
                    Assert.AreEqual(Vertex.VertexType.Edge, listOfActiveVertices5.Get(i).Type);
                else
                    Assert.AreEqual(Vertex.VertexType.Split, listOfActiveVertices5.Get(i).Type);

            //>
            LAV listOfActiveVertices6 = new LAV();
            listOfActiveVertices6.Add(new Vertex(0, 4));
            listOfActiveVertices6.Add(new Vertex(2, 2));
            listOfActiveVertices6.Add(new Vertex(0, 0));
            listOfActiveVertices6.Add(new Vertex(4, 0));
            listOfActiveVertices6.Add(new Vertex(4, 4));
            SSLOperations.SetVertexType(listOfActiveVertices6);

            for (int i = 0; i < listOfActiveVertices6.Length; i++)
                if (i != 2)
                    Assert.AreEqual(Vertex.VertexType.Edge, listOfActiveVertices6.Get(i).Type);
                else
                    Assert.AreEqual(Vertex.VertexType.Split, listOfActiveVertices6.Get(i).Type);

            //<
            LAV listOfActiveVertices7 = new LAV();
            listOfActiveVertices7.Add(new Vertex(0, 4));
            listOfActiveVertices7.Add(new Vertex(0, 0));
            listOfActiveVertices7.Add(new Vertex(4, 0));
            listOfActiveVertices7.Add(new Vertex(2, 2));
            listOfActiveVertices7.Add(new Vertex(4, 4));
            SSLOperations.SetVertexType(listOfActiveVertices7);

            for (int i = 0; i < listOfActiveVertices7.Length; i++)
                if (i != 4)
                    Assert.AreEqual(Vertex.VertexType.Edge, listOfActiveVertices7.Get(i).Type);
                else
                    Assert.AreEqual(Vertex.VertexType.Split, listOfActiveVertices7.Get(i).Type);

            /*
             * X------------------------X
             * |                        |
             * |                        |
             * |            X-----------X
             * |            |
             * |            |
             * X------------X
            */
            LAV listOfActiveVertices8 = new LAV();
            listOfActiveVertices8.Add(new Vertex(0, 6));
            listOfActiveVertices8.Add(new Vertex(0, 0));
            listOfActiveVertices8.Add(new Vertex(4, 0));
            listOfActiveVertices8.Add(new Vertex(4, 3));
            listOfActiveVertices8.Add(new Vertex(8, 3));
            listOfActiveVertices8.Add(new Vertex(8, 6));
            SSLOperations.SetVertexType(listOfActiveVertices8);

            for (int i = 0; i < listOfActiveVertices8.Length; i++)
                if (i != 4)
                    Assert.AreEqual(Vertex.VertexType.Edge, listOfActiveVertices8.Get(i).Type);
                else
                    Assert.AreEqual(Vertex.VertexType.Split, listOfActiveVertices8.Get(i).Type);

            /*
             * X------------------------X
             * |                        |
             * |                        |
             * X------------X           X
             *              |           |
             *              |           |
             *              |           |
             *              X-----------X
            */
            LAV listOfActiveVertices9 = new LAV();
            listOfActiveVertices9.Add(new Vertex(0, 8));
            listOfActiveVertices9.Add(new Vertex(0, 3));
            listOfActiveVertices9.Add(new Vertex(4, 3));
            listOfActiveVertices9.Add(new Vertex(4, 0));
            listOfActiveVertices9.Add(new Vertex(8, 0));
            listOfActiveVertices9.Add(new Vertex(8, 6));
            SSLOperations.SetVertexType(listOfActiveVertices9);

            for (int i = 0; i < listOfActiveVertices9.Length; i++)
                if (i != 3)
                    Assert.AreEqual(Vertex.VertexType.Edge, listOfActiveVertices9.Get(i).Type);
                else
                    Assert.AreEqual(Vertex.VertexType.Split, listOfActiveVertices9.Get(i).Type);
        }