Ejemplo n.º 1
0
        public void TestEdgeIntersection()
        {
            Edge edge;
            Point p1, p2, intersection;
            bool result;
            object[,] tests = { {4.0, 4.0, 6.0, 2.0, false, 0.0, 0.0},
                                {0.0, 2.0, 6.0, -1.0, true, 2.0, 1.0},
                                {0.0, 2.0, 6.0, 2.0, true, 4.0, 2.0},
                                {6.0, -1.0, 2.0, -3.0, false, 0.0, 0.0} };

            edge = new Edge(0, 0, 4, 2);
            for (int i = 0; i < tests.GetLength(0); i++)
            {
                p1 = new Point((double)tests[i, 0], (double)tests[i, 1]);
                p2 = new Point((double)tests[i, 2], (double)tests[i, 3]);

                result = edge.ComputeIntersection(new Edge(p1, p2), out intersection);

                Assert.Equals(result, tests[i, 4]);
                if (result)
                {
                    p1 = new Point((double)tests[i, 5], (double)tests[i, 6]);
                    Assert.Equals(p1.X, intersection.X);
                    Assert.Equals(p1.Y, intersection.Y);
                }
            }
        }