public void GetLengthOfLineSegments3F() { var points = new[] { new Vector3(1, 2, 0.123f), new Vector3(12, 13, 123), new Vector3(1231, 2.2f, 0.123f), new Vector3(5, 122, 123), new Vector3(-11, 2, 0.123f), new Vector3(-1, 123, 123), new Vector3(-123.123f, 122, 0.123f), new Vector3(-2312, -123, 123), }; var length = (points[1] - points[0]).Length + (points[3] - points[2]).Length + (points[5] - points[4]).Length + (points[7] - points[6]).Length; Assert.AreEqual(length, CurveHelper.GetLength(points.ToList())); }
public void Flatten() { var s = new ArcSegment2F { Point1 = new Vector2F(1, 2), Point2 = new Vector2F(10, -3), }; var points = new List <Vector2F>(); var tolerance = 1f; s.Flatten(points, 10, tolerance); Assert.IsTrue(Vector2F.AreNumericallyEqual(points[0], s.Point1)); Assert.IsTrue(Vector2F.AreNumericallyEqual(points.Last(), s.Point2)); var curveLength = s.GetLength(0, 1, 10, tolerance); Assert.IsTrue(CurveHelper.GetLength(points) >= curveLength - tolerance * points.Count / 2); Assert.IsTrue(CurveHelper.GetLength(points) <= curveLength); }
public void Flatten() { var s = new BSplineSegment2F { Point1 = new Vector2F(1, 2), Point2 = new Vector2F(4, 5), Point3 = new Vector2F(7, 8), Point4 = new Vector2F(10, 12), }; var points = new List <Vector2F>(); var tolerance = 0.01f; s.Flatten(points, 10, tolerance); Assert.IsTrue(points.Contains(s.GetPoint(0))); Assert.IsTrue(points.Contains(s.GetPoint(1))); var curveLength = s.GetLength(0, 1, 10, tolerance); Assert.IsTrue(CurveHelper.GetLength(points) >= curveLength - tolerance); Assert.IsTrue(CurveHelper.GetLength(points) <= curveLength); }
public void Flatten() { var s = new HermiteSegment3F { Point1 = new Vector3F(1, 2, 3), Tangent1 = (new Vector3F(10, 3, 6) - new Vector3F(1, 2, 3)) * 3, Tangent2 = (new Vector3F(10, 2, 12) - new Vector3F(7, 8, 19)) * 3, Point2 = new Vector3F(10, 2, 12), }; var points = new List <Vector3F>(); var tolerance = 0.01f; s.Flatten(points, 10, tolerance); Assert.IsTrue(points.Contains(s.Point1)); Assert.IsTrue(points.Contains(s.Point2)); var curveLength = s.GetLength(0, 1, 10, tolerance); Assert.IsTrue(CurveHelper.GetLength(points) >= curveLength - tolerance * points.Count / 2); Assert.IsTrue(CurveHelper.GetLength(points) <= curveLength); }
public void Flatten() { var s = new BezierSegment2F { Point1 = new Vector2F(1, 2), ControlPoint1 = new Vector2F(4, 5), ControlPoint2 = new Vector2F(7, 8), Point2 = new Vector2F(10, 2), }; var points = new List <Vector2F>(); var tolerance = 0.01f; s.Flatten(points, 10, tolerance); Assert.IsTrue(points.Contains(s.Point1)); Assert.IsTrue(points.Contains(s.Point2)); var curveLength = s.GetLength(0, 1, 10, tolerance); Assert.IsTrue(CurveHelper.GetLength(points) >= curveLength - tolerance * points.Count / 2); Assert.IsTrue(CurveHelper.GetLength(points) <= curveLength); }
public void Flatten() { var s = new CatmullRomSegment3F { Point1 = new Vector3(1, 2, 3), Point2 = new Vector3(10, 3, 6), Point3 = new Vector3(7, 8, 19), Point4 = new Vector3(10, 2, 12), }; var points = new List <Vector3>(); var tolerance = 0.01f; s.Flatten(points, 10, tolerance); Assert.IsTrue(points.Contains(s.Point2)); Assert.IsTrue(points.Contains(s.Point3)); var curveLength = s.GetLength(0, 1, 10, tolerance); Assert.IsTrue(CurveHelper.GetLength(points) >= curveLength - tolerance * points.Count / 2); Assert.IsTrue(CurveHelper.GetLength(points) <= curveLength); }
public void Flatten() { var s = new CardinalSegment2F { Point1 = new Vector2F(1, 2), Point2 = new Vector2F(10, 3), Point3 = new Vector2F(7, 8), Point4 = new Vector2F(10, 2), Tension = 0.3f }; var points = new List <Vector2F>(); var tolerance = 0.01f; s.Flatten(points, 10, tolerance); Assert.IsTrue(points.Contains(s.Point2)); Assert.IsTrue(points.Contains(s.Point3)); var curveLength = s.GetLength(0, 1, 10, tolerance); Assert.IsTrue(CurveHelper.GetLength(points) >= curveLength - tolerance * points.Count / 2); Assert.IsTrue(CurveHelper.GetLength(points) <= curveLength); }