Example #1
0
        public void BasisFunsTest0()
        {
            // page 71
            double[] U      = { 0, 0, 0, 1, 2, 3, 4, 4, 5, 5, 5 };
            int      degree = 0;

            double[] N = NURBS.BasisFuns(4, degree, U, 5.0 / 2.0);
            Assert.AreEqual(1.0, N[0]);
        }
Example #2
0
        public void DerBasisFunsTest()
        {
            double[] U      = { 0, 0, 0, 1, 2, 3, 4, 4, 5, 5, 5 };
            int      degree = 2;

            double[][] ders = NURBS.DerBasisFuns(4, 5.0 / 2.0, degree, n: 1, U: U);
            Assert.AreEqual(-1.0 / 2, ders[1][0]);
            Assert.AreEqual(0, ders[1][1]);
            Assert.AreEqual(1.0 / 2, ders[1][2]);
        }
Example #3
0
        public void NipTest1()
        {
            double[] U      = { 0, 0, 0, 1, 2, 3, 4, 4, 5, 5, 5 };
            int      degree = 1;
            double   N3_1   = NURBS.Nip(3, degree, U, 5.0 / 2.0);

            Assert.AreEqual(1.0 / 2, N3_1);
            double N4_1 = NURBS.Nip(4, degree, U, 5.0 / 2.0);

            Assert.AreEqual(1.0 / 2, N4_1);
        }
Example #4
0
        public void NipTest2()
        {
            double[] U      = { 0, 0, 0, 1, 2, 3, 4, 4, 5, 5, 5 };
            int      degree = 2;
            double   N2_2   = NURBS.Nip(2, degree, U, 5.0 / 2.0);

            Assert.AreEqual(1.0 / 8, N2_2);
            double N3_2 = NURBS.Nip(3, degree, U, 5.0 / 2.0);

            Assert.AreEqual(6.0 / 8, N3_2);
            double N4_2 = NURBS.Nip(4, degree, U, 5.0 / 2.0);

            Assert.AreEqual(1.0 / 8, N4_2);
        }
Example #5
0
        public void FindSpanTest()
        {
            int p = 2;

            double[] U    = { 0, 0, 0, 1, 2, 3, 4, 4, 5, 5, 5 };
            int      span = NURBS.FindSpan(p, 5.0 / 2.0, U);

            Assert.AreEqual(4, span);

            span = NURBS.FindSpan(p, 4.0, U);
            Assert.AreEqual(7, span);

            span = NURBS.FindSpan(p, 4.5, U);
            Assert.AreEqual(7, span);
        }