spline.h
上传用户:zfj3589
上传日期:2022-07-13
资源大小:635k
文件大小:3k
源码类别:

微处理器开发

开发平台:

C/C++

  1. /****************************************************************************************
  2. * 文件名:SPLINE.H
  3. * 功能:二次参数样条曲线生成程序。头文件
  4. * 作者:黄绍斌
  5. * 日期:2003.09.09
  6. ****************************************************************************************/
  7. #ifndef  SPLINE_H
  8. #define  SPLINE_H
  9. /* 样条曲线类变量及相关函数 */
  10. #define  NPMAX 10 /* 最大特征点个数 */
  11. typedef  struct
  12. {  float Px[NPMAX];
  13.    float Py[NPMAX];
  14.  
  15.    float Ax[NPMAX]; // 定义指向A、B、C三点的指针
  16.    float Ay[NPMAX];
  17.    float Bx[NPMAX];
  18.    float By[NPMAX];
  19.    float Cx[NPMAX];
  20.    float Cy[NPMAX];
  21.    float Mat[3][NPMAX];
  22.    int   Np;  // 曲线点个数
  23. } SPLINE; 
  24. /****************************************************************************
  25. * 名称:SPLINE_Spline()
  26. * 功能:样条曲线初始化函数,将特征点输入到样条曲线对象中。
  27. * 入口参数:sl 要操作的样条曲线对象,SPLINE结构
  28. *    pt 特征点数据
  29. *          np 特征点个数
  30. * 出口参数:无
  31. * 说明:
  32. ****************************************************************************/
  33. extern  void  SPLINE_SetSpline(SPLINE *sl, PointXY pt[], int np);
  34. /****************************************************************************
  35. * 名称:SPLINE_Generate()
  36. * 功能:产生样条曲线图形。产生的各个端点保存到sl的结构内。
  37. * 入口参数:sl 要操作的样条曲线对象,SPLINE结构
  38. * 出口参数:无
  39. * 说明:sl要先使用SPLINE_SetSpline()设置各个特征点。
  40. ****************************************************************************/
  41. extern  void  SPLINE_Generate(SPLINE *sl);
  42. /****************************************************************************
  43. * 名称:SPLINE_GetCurveCount()
  44. * 功能:取得样条曲线上端点个数值。
  45. * 入口参数:sl 要操作的样条曲线对象,SPLINE结构
  46. * 出口参数:返回值即是样条曲线各个端点个数
  47. * 说明:sl要先使用SPLINE_SetSpline()设置各个特征点。
  48. ****************************************************************************/
  49. extern  int  SPLINE_GetCurveCount(SPLINE *sl);
  50. /****************************************************************************
  51. * 名称:SPLINE_GetCurve()
  52. * 功能:取出样条曲线上各个端点,以便于使用GUI_Line()函数画出曲线。
  53. * 入口参数:sl 要操作的样条曲线对象,SPLINE结构
  54. *          points 用于接收曲线点的缓冲区,PointXY数组
  55. *          PointCount 用于接收曲线点个数的指针
  56. * 出口参数:无
  57. * 说明:接收曲线点由points返回,曲线点个数由PointCount返回;
  58. *      sl要先使用SPLINE_SetSpline()设置各个特征点。
  59. ****************************************************************************/
  60. extern  void  SPLINE_GetCurve(SPLINE *sl, PointXY points[], int *PointCount);
  61. /****************************************************************************
  62. * 名称:GUI_Spline()
  63. * 功能:作出多个特征点(3个以上)样条曲线。
  64. * 入口参数