public void AsCubic() { var p0 = new Vector3(-4, -4, -3); var p1 = new Vector3(2, -4, 3); var p2 = new Vector3(4, 4, 0); var myCurve = new QuadraticBezierCurve3D(p0, p1, p2); var myCubicCurve = myCurve.AsCubic(); myCurve.Point(0f).Should().BeEquivalentTo(myCubicCurve.Point(0f)); myCurve.Point(0.25f).Should().BeEquivalentTo(myCubicCurve.Point(0.25f)); myCurve.Point(0.75f).Should().BeEquivalentTo(myCubicCurve.Point(0.75f)); myCurve.Point(1f).Should().BeEquivalentTo(myCubicCurve.Point(1f)); }
public void PointNormalized() { var p0 = new Vector3(-4, -4, -3); var p1 = new Vector3(2, -4, 3); var p2 = new Vector3(4, 4, 0); var myCurve = new QuadraticBezierCurve3D(p0, p1, p2); myCurve.Point(15, 15, 17).Should().BeEquivalentTo(p0); myCurve.Point(2, 1, 5).Should().BeEquivalentTo(new Vector3(-1.25f, -3.5f, -0.5625f)); myCurve.Point(8, 2, 10).Should().BeEquivalentTo(new Vector3(2.75f, 0.5f, 0.9375f)); myCurve.Point(1, -8, 1).Should().BeEquivalentTo(p2); myCurve.Invoking(x => x.Point(15, 2, 5)).Should().Throw <ArgumentException>(); }
public void PointNormalized() { var p0 = new Vector3(-4, -4, -3); var p1 = new Vector3(2, -4, 3); var p2 = new Vector3(4, 4, 0); QuadraticBezierCurve3D.Point(p0, p1, p2, 15, 15, 17).Should().BeEquivalentTo(p0); QuadraticBezierCurve3D.Point(p0, p1, p2, 2, 1, 5).Should().BeEquivalentTo(new Vector3(-1.25f, -3.5f, -0.5625f)); QuadraticBezierCurve3D.Point(p0, p1, p2, 8, 2, 10).Should().BeEquivalentTo(new Vector3(2.75f, 0.5f, 0.9375f)); QuadraticBezierCurve3D.Point(p0, p1, p2, 1, -8, 1).Should().BeEquivalentTo(p2); Action invalidTime = () => QuadraticBezierCurve3D.Point(p0, p1, p2, 15, 2, 5); invalidTime.Should().Throw <ArgumentException>(); }