public void GetTangent() { HermiteSegment1F s = new HermiteSegment1F { Point1 = 1, Tangent1 = (3 - 1) * 3, Tangent2 = (8 - 4) * 3, Point2 = 8, }; Assert.IsTrue(Numeric.AreEqual(3 * (3 - 1), s.GetTangent(0))); Assert.IsTrue(Numeric.AreEqual(3 * (8 - 4), s.GetTangent(1))); }
public void GetPoint() { HermiteSegment1F s = new HermiteSegment1F { Point1 = 1, Tangent1 = (3 - 1) * 3, Tangent2 = (8 - 4) * 3, Point2 = 8, }; Assert.IsTrue(Numeric.AreEqual(1, s.GetPoint(0))); Assert.IsTrue(Numeric.AreEqual(8, s.GetPoint(1))); Assert.IsTrue(Numeric.AreEqual(2.638f, s.GetPoint(0.3f))); }
public void Flatten() { HermiteSegment1F s = new HermiteSegment1F { Point1 = 1, Tangent1 = (3 - 1) * 3, Tangent2 = (8 - 4) * 3, Point2 = 8, }; var points = new List<float>(); s.Flatten(points, 1, 1); Assert.AreEqual(2, points.Count); Assert.IsTrue(points.Contains(s.Point1)); Assert.IsTrue(points.Contains(s.Point2)); }
public void Flatten() { HermiteSegment1F s = new HermiteSegment1F { Point1 = 1, Tangent1 = (3 - 1) * 3, Tangent2 = (8 - 4) * 3, Point2 = 8, }; var points = new List <float>(); s.Flatten(points, 1, 1); Assert.AreEqual(2, points.Count); Assert.IsTrue(points.Contains(s.Point1)); Assert.IsTrue(points.Contains(s.Point2)); }
public void GetLength() { HermiteSegment1F s = new HermiteSegment1F { Point1 = 1, Tangent1 = (3 - 1) * 3, Tangent2 = (8 - 4) * 3, Point2 = 8, }; Assert.IsTrue(Numeric.AreEqual(7, s.GetLength(0, 1, 100, Numeric.EpsilonF))); HermiteSegment1F sSymmetric = new HermiteSegment1F { Point1 = 1, Tangent1 = (3 - 1) * 3, Tangent2 = (6 - 4) * 3, Point2 = 6, }; Assert.IsTrue(Numeric.AreEqual(2.5f, sSymmetric.GetLength(0.5f, 1, 100, Numeric.EpsilonF))); }
public void GetTangent() { HermiteSegment1F h = new HermiteSegment1F { Point1 = 3, Tangent1 = (7 - 1) * 0.5f, Tangent2 = (8 - 3) * 0.5f, Point2 = 7, }; CatmullRomSegment1F s = new CatmullRomSegment1F { Point1 = 1, Point2 = 3, Point3 = 7, Point4 = 8, }; Assert.IsTrue(Numeric.AreEqual(h.Tangent1, s.GetTangent(0))); Assert.IsTrue(Numeric.AreEqual(h.Tangent2, s.GetTangent(1))); Assert.IsTrue(Numeric.AreEqual(h.GetTangent(0.81f), s.GetTangent(0.81f))); }
public void GetPoint() { HermiteSegment1F h = new HermiteSegment1F { Point1 = 3, Tangent1 = (1 - 0.3f) * (7 - 1) * 0.5f, Tangent2 = (1 - 0.3f) * (8 - 3) * 0.5f, Point2 = 7, }; CardinalSegment1F s = new CardinalSegment1F { Point1 = 1, Point2 = 3, Point3 = 7, Point4 = 8, Tension = 0.3f, }; Assert.IsTrue(Numeric.AreEqual(3, s.GetPoint(0))); Assert.IsTrue(Numeric.AreEqual(7, s.GetPoint(1))); Assert.IsTrue(Numeric.AreEqual(h.GetPoint(0.3f), s.GetPoint(0.3f))); }
public void GetTangent() { HermiteSegment1F h = new HermiteSegment1F { Point1 = 3, Tangent1 = (1 - 0.3f) * (7 - 1) * 0.5f, Tangent2 = (1 - 0.3f) * (8 - 3) * 0.5f, Point2 = 7, }; CardinalSegment1F s = new CardinalSegment1F { Point1 = 1, Point2 = 3, Point3 = 7, Point4 = 8, Tension = 0.3f, }; Assert.IsTrue(Numeric.AreEqual(h.Tangent1, s.GetTangent(0))); Assert.IsTrue(Numeric.AreEqual(h.Tangent2, s.GetTangent(1))); Assert.IsTrue(Numeric.AreEqual(h.GetTangent(0.81f), s.GetTangent(0.81f))); }