protected override void InitialCurve(ICurveParam curveParam)
 {
     if (curveParam.getCurveType() == InterpolationCurveType.nurbsCurve)
     {
         NurbsCurveParam param = (NurbsCurveParam)curveParam;
         this.curve = new NurbsParametricCurveElement(param);
     }
     else
     {
         throw new UnmatchedCurveParamTypeException(InterpolationCurveType.nurbsCurve, curveParam.getCurveType());
     }
 }
Пример #2
0
        private List<DataPoint> sampleANurbsCurve(NurbsParametricCurveElement 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;
        }