示例#1
0
        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()));
        }
示例#2
0
        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);
        }
示例#5
0
        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);
        }