public ActionResult Index(BezierCurveModel model) { try { if (ModelState.IsValid) { IBezierCurve cubicBezierCurve = CurveFactory.CreateCubicBezierCurve(); Point[] interMediapoints = new Point[] { new Point { X = model.pointP1_X, Y = model.pointP1_Y }, new Point { X = model.pointP2_X, Y = model.pointP2_Y }, new Point { X = model.pointP3_X, Y = model.pointP3_Y }, new Point { X = model.pointP4_X, Y = model.pointP4_Y } }; PointF[] result = Curves.BezierCurve(cubicBezierCurve, interMediapoints, 1 / model.interval); model.result = ConvertArrayToString(result); } return(View(model)); } catch (Exception ex) { throw new Exception("Failed to calculate Bezier Curve.", ex); } }
public void TestMethod1() { IBezierCurve cubicBezierCurve = CurveFactory.CreateCubicBezierCurve(); float interval = 10; Point[] interMediapoints = new Point[] { new Point { X = 0, Y = 0 }, new Point { X = 1, Y = 2 }, new Point { X = 2, Y = 2 }, new Point { X = 4, Y = 0 } }; PointF[] curvePoints = Curves.BezierCurve(cubicBezierCurve, interMediapoints, 1 / interval); Assert.IsTrue(curvePoints.Length == interval); }