コード例 #1
0
        public void Point()
        {
            var myCurve = new CubicBezierCurve2D(
                new Vector2(-4, -4),
                new Vector2(-2, 4),
                new Vector2(2, -4),
                new Vector2(4, 4)
                );

            myCurve.Point(0.5f).Should().BeEquivalentTo(new Vector2(0, 0));
            myCurve.Point(0.25f).Should().BeEquivalentTo(new Vector2(-2.1875f, -0.5f));
            myCurve.Point(0.75f).Should().BeEquivalentTo(new Vector2(2.1875f, 0.5f));

            myCurve.Invoking(x => x.Point(1.5f)).Should().Throw <ArgumentException>();
        }
コード例 #2
0
        public void VelocityNormalized()
        {
            var p0 = new Vector2(-4, -4);
            var p1 = new Vector2(-2, 4);
            var p2 = new Vector2(2, -4);
            var p3 = new Vector2(4, 4);

            CubicBezierCurve2D.Velocity(p0, p1, p2, p3, 3, 2, 4).Should().BeEquivalentTo(new Vector2(9, 0));
            CubicBezierCurve2D.Velocity(p0, p1, p2, p3, 2, 1, 5).Should().BeEquivalentTo(new Vector2(8.25f, 6f));
            CubicBezierCurve2D.Velocity(p0, p1, p2, p3, 11, 2, 14).Should().BeEquivalentTo(new Vector2(8.25f, 6f));

            Action invalidTime = () => CubicBezierCurve2D.Velocity(p0, p1, p2, p3, 15, 2, 5);

            invalidTime.Should().Throw <ArgumentException>();
        }
コード例 #3
0
        public void PointNormalized()
        {
            var p0 = new Vector2(-4, -4);
            var p1 = new Vector2(-2, 4);
            var p2 = new Vector2(2, -4);
            var p3 = new Vector2(4, 4);

            CubicBezierCurve2D.Point(p0, p1, p2, p3, 3, 2, 4).Should().BeEquivalentTo(new Vector2(0, 0));
            CubicBezierCurve2D.Point(p0, p1, p2, p3, 2, 1, 5).Should().BeEquivalentTo(new Vector2(-2.1875f, -0.5f));
            CubicBezierCurve2D.Point(p0, p1, p2, p3, 11, 2, 14).Should().BeEquivalentTo(new Vector2(2.1875f, 0.5f));

            Action invalidTime = () => CubicBezierCurve2D.Point(p0, p1, p2, p3, 15, 2, 5);

            invalidTime.Should().Throw <ArgumentException>();
        }
コード例 #4
0
        public void VelocityNormalized()
        {
            var myCurve = new CubicBezierCurve2D(
                new Vector2(-4, -4),
                new Vector2(-2, 4),
                new Vector2(2, -4),
                new Vector2(4, 4)
                );

            myCurve.Velocity(3, 2, 4).Should().BeEquivalentTo(new Vector2(9, 0));
            myCurve.Velocity(2, 1, 5).Should().BeEquivalentTo(new Vector2(8.25f, 6f));
            myCurve.Velocity(11, 2, 14).Should().BeEquivalentTo(new Vector2(8.25f, 6f));

            myCurve.Invoking(x => x.Velocity(15, 2, 5)).Should().Throw <ArgumentException>();
        }
コード例 #5
0
        public void Velocity()
        {
            var myCurve = new CubicBezierCurve2D(
                new Vector2(-4, -4),
                new Vector2(-2, 4),
                new Vector2(2, -4),
                new Vector2(4, 4)
                );

            myCurve.Velocity(0.5f).Should().BeEquivalentTo(new Vector2(9, 0));
            myCurve.Velocity(0.25f).Should().BeEquivalentTo(new Vector2(8.25f, 6f));
            myCurve.Velocity(0.75f).Should().BeEquivalentTo(new Vector2(8.25f, 6f));

            myCurve.Invoking(x => x.Velocity(1.5f)).Should().Throw <ArgumentException>();
        }
コード例 #6
0
        public void NotEquals()
        {
            var myCurve = new CubicBezierCurve2D(
                new Vector2(-9, -4),
                new Vector2(-2, 4),
                new Vector2(2, -4),
                new Vector2(4, 4)
                );

            var otherCurve = new CubicBezierCurve2D(
                new Vector2(-4, -4),
                new Vector2(-2, 4),
                new Vector2(2, -4),
                new Vector2(4, 4)
                );

            (myCurve != otherCurve).Should().BeTrue();
        }