Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

05. B-Splines

文件夹 [codes\](codes) 中含有代码,运行脚本 codes\App_BSpline.m 即可

1571489286069

软件使用说明

  • 红色圆圈是 $C^2$ 点,绿色圆圈是直线点,蓝色圆圈是尖点,青色点是控制点,虚线是控制点间的连线,蓝色实线是 B 样条曲线
  • 运行脚本后,进入输入模式
  • Control 按键可以显示 / 隐藏控制点
  • Back 按键可以删除最后一个型值点,进入输入模式
  • Reset 清空型值点,进入输入模式
  • 型值点的类型在左边的下拉框选择,有 $C^2$、直线点和尖点
  • 输入模式
    • 在坐标系内左键点击可以输入型值点
    • 在坐标系内右键点击停止输入型值点,进入调节模式
  • 调节模式
    • 靠近控制点会显示红圈
    • 靠近型值点,点击鼠标左键不放可以拖动型值点
    • 靠近型值点,点击鼠标右键可以修改型值点类型
    • 调解模式下,隐藏控制点时,暂时无法修改型值点

代码说明

  • UIMngr.m:管理 UI 的类
  • PointData.m:储存型值点数据的类型
  • N.m:B-Spline 基函数
  • testN.m:简单测试 B-Spline 基函数
  • DrawCircle.m:绘制圆
  • DrawBSpline.m:绘制 B 样条曲线
  • DeBoorPoints.m:根据型值点求控制点,核心
  • BSpline.m:根据控制点和结序列,求特定点 $t$ 的曲线值 $\pmb{x}(t)$
  • App_BSpline.m:应用,运行这个脚本以运行程序
  • App_BSpline.fig:UI 相关二进制文件,有 guide 自动生成

性能说明

求解步骤每次消耗 0.001s 左右,绘制大概在 0.001s 左右,一般情况帧率能有几百帧每秒。

且随着型值点数增多,绘制消耗增速大于求解速度,所以再优化没有太大意义。