Ejemplo n.º 1
0
        public void PointInsideLineTest()
        {
            var ray1 = new KtRay2D(new KtPoint2D(0, 2), new KtPoint2D(30, 4));

            Assert.AreEqual(ray1.PointInsideLine(4), new KtPoint2D(120, 10));
            Assert.AreEqual(ray1.PointInsideLine(-4), new KtPoint2D(-120, -6));
        }
Ejemplo n.º 2
0
        public void InlineTest()
        {
            var ray1 = new KtRay2D(new KtPoint2D(0, 2), new KtPoint2D(30, 4));

            Assert.IsTrue(ray1.Inline(new KtPoint2D(120, 10)));
            Assert.IsFalse(ray1.Inline(new KtPoint2D(-120, -6)));
        }
Ejemplo n.º 3
0
        public void Inequality()
        {
            var line    = new KtLine2D(0, 0, 20, 1);
            var segment = new KtSegment2D(0, 0, 20, 1);
            var ray     = new KtRay2D(new KtPoint2D(0, 0), new KtPoint2D(20, 1));

            Assert.AreNotEqual(line, segment);
            Assert.AreNotEqual(line, ray);
            Assert.AreNotEqual(segment, ray);
        }
Ejemplo n.º 4
0
        public void IntersectionTest()
        {
            var ray1 = new KtRay2D(new KtPoint2D(0, 2), new KtPoint2D(30, 4));
            var ray2 = new KtRay2D(new KtPoint2D(5, 0), new KtPoint2D(15, 12));

#pragma warning disable CS0618 // Type or member is obsolete
            Assert.AreEqual(ray1.IntersectWith3(ray2), new KtPoint2D(120.0 / 17, 42.0 / 17));
            var ray3 = new KtRay2D(new KtPoint2D(4, -2), new KtPoint2D(20, -4));
            var ray4 = new KtRay2D(new KtPoint2D(-5, 6), new KtPoint2D(15, 12));
            Assert.IsNull(ray3.IntersectWith3(ray4));
#pragma warning restore CS0618 // Type or member is obsolete
        }
Ejemplo n.º 5
0
        public void KtRay2DTest()
        {
            var ray = new KtRay2D(new KtPoint2D(4, 6), new KtPoint2D(5, -10));

            Assert.AreEqual(ray.Start, new KtPoint2D(4, 6));
            Assert.AreEqual(ray.End, new KtPoint2D(5, -10));
            Assert.AreEqual(ray, new KtRay2D(new KtPoint2D(4, 6), new KtPoint2D(5, -10)));
            var ray2 = new KtRay2D(new KtPoint2D(3, 6), new KtVector2D(2, -1));
            var ray3 = new KtRay2D(new KtPoint2D(3, 6), new KtVector2D(4, -2));

            Assert.AreEqual(ray2.Start, new KtPoint2D(3, 6));
            Assert.AreEqual(ray2.End, new KtPoint2D(3, 6) + new KtPoint2D(2, -1));
            Assert.AreEqual(ray2, ray3);
        }
Ejemplo n.º 6
0
        public void TestIntersectionsOfLineTypes()
        {
            var line    = new KtLine2D(2, 4, 5);
            var segment = new KtSegment2D(0, 2, 30, 4);

#pragma warning disable CS0618 // Type or member is obsolete
            Assert.AreEqual(line.IntersectWith3(segment), null);
            segment = new KtSegment2D(0, 4, -2, 2);
            Assert.AreEqual(line.IntersectWith3(segment), new KtPoint2D(-11.0 / 6, 13.0 / 6));
            segment = new KtSegment2D(-2, 2, 0, 4);
            Assert.AreEqual(line.IntersectWith3(segment), new KtPoint2D(-11.0 / 6, 13.0 / 6));
            var ray = new KtRay2D(new KtPoint2D(0, 2), new KtVector2D(1, 2));
            Assert.AreEqual(line.IntersectWith3(ray), null);
            ray = new KtRay2D(new KtPoint2D(0, 2), new KtVector2D(1, -2));
            Assert.AreEqual(line.IntersectWith3(ray), new KtPoint2D(.5, 1.0));
            var yaxis = KtLine2D.YAxis();
            var line2 = new KtRay2D(new KtPoint2D(0, 20), new KtVector2D(3, 4));
            Assert.AreEqual(yaxis.IntersectWith3(line2), new KtPoint2D(0, 20));
            var line45  = new KtRay2D(new KtPoint2D(), new KtVector2D(30, 30));
            var line45N = new KtRay2D(new KtPoint2D(0, 50), new KtVector2D(30, -30));
            Assert.AreEqual(line45.IntersectWith3(line45N), new KtPoint2D(25, 25));
#pragma warning restore CS0618 // Type or member is obsolete
        }
Ejemplo n.º 7
0
        public void CloneTest()
        {
            var testray = new KtRay2D(new KtPoint2D(1, 4), new KtVector2D(3, 5));

            Assert.AreEqual(testray.Clone(), testray);
        }
Ejemplo n.º 8
0
        public void DistanceTest()
        {
            var ray1 = new KtRay2D(new KtPoint2D(4, -2), new KtVector2D(-2, 4));

            Assert.IsTrue((ray1.Distance(new KtPoint2D(4, 3)) - 2.23606797749979).NearZero(7));
        }