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)); } }
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)); }