本人手头有个问题一直无法解决:给出一系列坐标点数据,如何绘制出较为象样的曲线?听说用2次样条即可解决问题,但苦思无果,请帮忙.

解决方案 »

  1.   

    TCanvas::PolyBezier 
      画一簇Bezier曲线。 
     void __fastcall PolyBezier (const tagPOINT* Points,const int Points_Size ); 
      PolyBezier用于根据 Points参数指定的控制点画三次Bezier曲线。其中第一条曲线经过第一、第四点。2、3点为控制点。按顺序,每条曲线需至少四个点;上一曲线的终点为下一曲线的开始点,紧接着的两个点为控制点,第四点为终点。画线时使用当前的笔。 
      可以使用Sice函数把点数组传给PolyBezierTo方法。例如,把100 个点的前10个点画成一条Bezier曲线,使用方法如下: 
      Canvas::PolyBezier(Slice(PointArray,10)); TPanvas::PolyBezierTo 
      画一簇Bezier曲线并更新PenPos的值。 
     void__fastcall PolyBezierPo(const tagPOINT* Points ,const inty Points_Size ); 
      PolyBezierTo 用于根据 Points 参数指定的控制点画三次 Bezier 曲线 。其中第一条曲线经过第一、第四点,2、3点为控制点。按顺序,每条曲线需至少四个点;上一曲线的终点为下一曲线的开始点,紧接着的两个点为控制点,第四点为终点。画线时使用当前的笔并把 PenPos 更新为最后一个点的值。 
      可以使用Slice函数把点数组传给PokybezierTo方法。例如,把100个点的数组的前10个画成一条Brzier曲线,使用方法如下: 
      Canvas::PolyBezierTo(Slice(PointArray,10));