闭合B样条曲线算法?

Maverix3 2012-11-12 01:52:26
现在我有一些离散点,我需要利用B样条拟合这些离散点得到一条光滑曲线的各个坐标点。如果是非闭合的b样条曲线,网上可以找到现成的算法(http://paulbourke.net/geometry/spline/index2.html),但是闭合的曲线我实在找不到了。主要问题是闭合以后首位点的斜率不连续。
...全文
682 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
libralibra 2012-11-12
  • 打赏
  • 举报
回复
引用 2 楼 Maverix3 的回复:
引用 1 楼 libralibra 的回复:你发的那个网页是根据控制点和节点生成曲线的吧 你需要找的是B样条曲线"反算"的算法,从型值点反算控制点与节点.好好找找,资料还是有些.另外北航施法中有本关于样条曲线的书也不错. 开与闭无所谓,因为反算的时候,为了减少方程个数,肯定会弄成[0,0,0,0,....1,1,1,1](如果是三次样条)这种的节点,那样曲线会通过……
正算不就是公式吗? 控制点有,节点序列有,套公式计算就可.根据阶次(一般是3次),针对每一个t∈[0,1],可以计算得到一个点,这些点连起来就是样条曲线;根据t取值的稠密,可以得到不同光滑度的曲线.
Maverix3 2012-11-12
  • 打赏
  • 举报
回复
引用 1 楼 libralibra 的回复:
你发的那个网页是根据控制点和节点生成曲线的吧 你需要找的是B样条曲线"反算"的算法,从型值点反算控制点与节点.好好找找,资料还是有些.另外北航施法中有本关于样条曲线的书也不错. 开与闭无所谓,因为反算的时候,为了减少方程个数,肯定会弄成[0,0,0,0,....1,1,1,1](如果是三次样条)这种的节点,那样曲线会通过首末控制点,所以那里的曲率你可以自己指定,一……
不是反算,是正算。 我现在生成了不圆滑的多边形,然后我想使用b-spline插值得到全部插值点的坐标。
libralibra 2012-11-12
  • 打赏
  • 举报
回复
你发的那个网页是根据控制点和节点生成曲线的吧 你需要找的是B样条曲线"反算"的算法,从型值点反算控制点与节点.好好找找,资料还是有些.另外北航施法中有本关于样条曲线的书也不错. 开与闭无所谓,因为反算的时候,为了减少方程个数,肯定会弄成[0,0,0,0,....1,1,1,1](如果是三次样条)这种的节点,那样曲线会通过首末控制点,所以那里的曲率你可以自己指定,一般弄成邻接控制点的直线斜率即可,因为样条曲线肯定位于控制点凸包内,那条边与曲线是相切的.
本系统是在Windows XP系统和MapGis6.7(B20051118)基础上,以Microsoft VC++ 6.0为编程语言,MapGis 6.7 SDK为开发平台进行开发的地质图件制作软件。系统基于MapGis输入编辑子系统强大的图形编辑能力,添加专业的地质图件制作工具,大大提高了地质图件的制作效率,能够很完美的转换CAD数据格式为MapGis格式。地质数据采集系统采用Microsoft Access的MDB格式,自动计算绘制符合行业标准的MapGis格式地质图件。 本软件完全免费使用。在使用过程中,如果是本软件的缺陷造成你的损失,本人不承担任何责任。一旦开始使用,视为你同意。 本软件可以自由复制传播,但不可用于商业用途。 操作演示请切换到“操作视频”帮助页面,网上下载高清有声视频。 现Section版本具有的主要功能模块: 1、绘制剖面图功能; 2、绘制柱状图功能; 3、辅助工具Ⅰ和辅助工具Ⅱ(CAD转MapGis文件); 4、其他功能(暂时未归类功能)。 编辑本段Section快捷键对照表 Ctrl+A 选择相同图元功能 B 选择区 Ctrl +C 复制图元功能 C 选择点 Ctrl +V 粘贴图元功能 N 选择弧段 Ctrl +X 剪切图元功能 V 选择线 Ctrl +Z 后悔操作 X 选择子图 Shift+Z 选多类型图元功能 Z 选择文本 Shift +C 超级拷贝功能 E 扩展工具箱 Shift +V 超级粘贴功能 T 系统工具箱 F2 正交功能 Del 删除选择图元 Tab 全屏功能 空格键 捕捉功能 → 向右移动选择图元 ↑ 向上移动选择图元 ← 向左移动选择图元 ↓ 向下移动选择图元 Y 捕捉点图元 U 捕捉节点及端点 I(i) 捕捉交叉点 O 捕捉垂点 P 捕捉最近点 [ 捕捉中点 鼠标中键 按住可以移动图形 鼠标滚轮 放大缩小功能 双击鼠标中键 复原窗口功能 双击鼠标右键 取消所有操作,回到初始状态 (以上快捷键不区分大小写),其它快捷键与mapgis相同。 在编辑视图中,如果状态为准备状态,按住Ctrl右击,将弹出常用图元编辑快捷菜单;按住Shift右击,将弹出扩展功能快捷菜单。 编辑本段安装与卸载 系统要求 基础软件:MapGis软件。推荐MapGis 6.7版本Build051118。 系统支持:Section软件支持Microsoft Windows 的2000, XP, Vista和 7系列的操作系统。(32位,64位未测试)。 语言:支持中文,简体。 下载 进入地信网论坛和华夏土地网论坛下载最新版本的Section程序。 安装软件步骤 1)对于Section单个程序:把section.exe和section.chm等放入MapGis67\program目录内即可。 2)对于独立安装包:(相对于单个程序文件,还包含了先前的各种自定义配置文件) 第一步:双击运行安装程序Section2010.exe,打开安装向导页面开始安装Section软件; 第二步:仔细阅读“许可协议”,点击“同意”,继续下一步安装,否则点击“取消”,退出软件安装; 第三步:仔细阅读“信息”,阅读软件重要信息,点击“下一步”,继续下一步安装,否则点击“取消”,退出软件安装; 第四步:选择安装路径:默认情况下,软件安装在系统的C:\MapGis67\program目录下,单击“浏览”可更改路径;注意非默认位置时,目录只要指向program的上级目录,即mapgis67。 第五步:请“选择组件”,有完全安装,简洁安装和自定义安装3种供选择。点击“下一步”,继续下一步安装; 第六步:在开始菜单文件夹中创建程序的文件夹名称。点击“下一步”,继续下一步安装; 第七步:选择附加任务:创建桌面快捷方式和快捷启动栏快捷方式,以及Section关联MapGis文件等。勾选所需选项,点击“下一步”,开始准备安装; 第八步:点击“安装”。直至最后,不想在安装完成后运行Section程序请去勾,点击完成。 卸载 1)对于非安装包:把section.exe程序和section.chm等文件删除即可。 2)对于独立安装包:打开控制面板,进入添加/删除程序(Win7的为程序和功能)找到Section卸载项目,双击“Section卸载”或者右键菜单中的卸载。 FAQ: 1、 双击section.exe后出现 “无法启动此程序,因计算机丢失basroot.dll……”的提示,程序不能使用? 答:没有在mapgis环境下缺少基本组件和动态链接库,运行程序会出现此提示,把section.exe放入MapGis67\program目录内即可。 0327d正式版0612 软件更新日志 1、修正不能删除角度花纹有残留的Bu

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧