public void Params_Test()
        {
            var a = new Vector3D(0, 0, 0);
            var b = new Vector3D(1, 1, 1);

            var ls = new LineSegment3D(a, b);

            Assert.AreEqual(1, ls.l);
            Assert.AreEqual(1, ls.m);
            Assert.AreEqual(1, ls.n);
            Assert.IsTrue(ls.Contains(a));
            Assert.IsTrue(ls.Contains(b));


            a = new Vector3D(-1, -1, -1);
            b = new Vector3D(1, 1, 1);

            ls = new LineSegment3D(a, b);

            Assert.AreEqual(2, ls.l);
            Assert.AreEqual(2, ls.m);
            Assert.AreEqual(2, ls.n);
            Assert.IsTrue(ls.Contains(a));
            Assert.IsTrue(ls.Contains(b));
            Assert.IsTrue(ls.Contains(new Vector3D(0, 0, 0)));

            a = new Vector3D(-1, 24, 56);
            b = new Vector3D(45, -67, 33);

            ls = new LineSegment3D(a, b);

            Assert.AreEqual(46, ls.l);
            Assert.AreEqual(-91, ls.m);
            Assert.AreEqual(-23, ls.n);
            Assert.IsTrue(ls.Contains(a));
            Assert.IsTrue(ls.Contains(b));
        }
Пример #2
0
        void LineCrossTest(Plane plane)
        {
            var min = -5;
            var max = 5;

            for (int x1 = min; x1 < max; x1++)
            {
                for (int y1 = min; y1 < max; y1++)
                {
                    for (int z1 = min; z1 < max; z1++)
                    {
                        for (int x2 = min; x2 < max; x2++)
                        {
                            for (int y2 = min; y2 < max; y2++)
                            {
                                for (int z2 = min; z2 < max; z2++)
                                {
                                    if (x1 != x2 && y1 != y2 && z1 != z2)
                                    {
                                        var p1 = new Vector3D(x1, y1, z1);

                                        var p2 = new Vector3D(x2, y2, z2);

                                        var ls = new LineSegment3D(p1, p2);

                                        var crossPoint = plane.PointOfLineSegment3DCross(ls);
                                        if (crossPoint != null)
                                        {
                                            Assert.IsTrue(plane.Contains(crossPoint));
                                            Assert.IsTrue(ls.Contains(crossPoint));
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }