Example #1
0
        public void CompareTangentToQuadratic()
        {
            QuadraticBezier2f quadratic = new QuadraticBezier2f();

            quadratic.C0 = new Vector2f(0.027f, 0.065f);
            quadratic.C1 = new Vector2f(1.234f, 0.012f);
            quadratic.C2 = new Vector2f(0.816f, 1.298f);

            Bezier2f bezier = new Bezier2f(2);

            bezier.Control[0] = quadratic.C0;
            bezier.Control[1] = quadratic.C1;
            bezier.Control[2] = quadratic.C2;

            int count = 8;

            for (int i = 0; i < count; i++)
            {
                float t = i / (count - 1.0f);

                Vector2f t0 = quadratic.Tangent(t);
                Vector2f t1 = bezier.Tangent(t);

                Assert.AreEqual(Math.Round(t0.x, PRECISION), Math.Round(t1.x, PRECISION));
                Assert.AreEqual(Math.Round(t0.y, PRECISION), Math.Round(t1.y, PRECISION));
            }
        }
Example #2
0
        public void CompareLengthToQuadratic()
        {
            QuadraticBezier2f quadratic = new QuadraticBezier2f();

            quadratic.C0 = new Vector2f(0.027f, 0.065f);
            quadratic.C1 = new Vector2f(1.234f, 0.012f);
            quadratic.C2 = new Vector2f(0.816f, 1.298f);

            Bezier2f bezier = new Bezier2f(2);

            bezier.Control[0] = quadratic.C0;
            bezier.Control[1] = quadratic.C1;
            bezier.Control[2] = quadratic.C2;

            float len0 = quadratic.Length;
            float len1 = bezier.Length(100);

            Assert.AreEqual(Math.Round(len0, 4), Math.Round(len1, 4));
        }