protected virtual void InitialCurve(ICurveParam curveParam)
 {
     if (curveParam.getCurveType() == InterpolationCurveType.bsCurve)
     {
         BSplineCurveParam param = (BSplineCurveParam)curveParam;
         this.curve = new BSplineParametricCurveElement(param);
     }
     else
     {
         throw new UnmatchedCurveParamTypeException(InterpolationCurveType.bsCurve, curveParam.getCurveType());
     }
 }
예제 #2
0
        private List<DataPoint> sampleABSplineCurve(BSplineParametricCurveElement curve)
        {
            double stepSize = 0.005;
            int step = 200;
            if (curve.Interval.Length > 1)
            {
                stepSize = curve.Interval.Length.AccurateValue / step;
            }
            else
            {
                step = (int)(curve.Interval.Length.AccurateValue / stepSize);
            }

            DoubleExtension parametricValue = curve.Interval.LeftBorder;
            List<DataPoint> pts = new List<DataPoint>();
            int count = 0;
            while (count++ < step)
            {
                pts.Add(curve.calculatePoint(parametricValue));
                parametricValue += stepSize;
            }
            return pts;
        }