OpenCasCade与NURBS——B样条曲线

NURBS是非均匀有理B样条的简称,NURBS是现在通用CAD软件中比较高级的建模方法,B样条在创建曲线或曲面时有很高的灵活性,会用并善用基本上能获得想要的任意“自然”、光滑的曲线。
OpenCasCade是国外一款开源的CAD建模引擎,功能比较完备、强大。现在OpenCasCade母公司也以提供基于OpenCasCade的定制化CAD软件和服务为主要业务。

B样条曲线的分类

B样条曲线是B样条基曲线的线性组合。其分类包括均匀B样条、准均匀B样条、分段Bezier曲线和非均匀有理B样条曲线。在OpenCasCade中以同样的9个控制点和次数(2次)绘制对应的曲线。

1. 均匀B样条曲线

均匀B样条的节点值向量均匀分布,并且基函数呈周期性,即所有的基函数都有相同的形状。
均匀B样条

2. 准均匀B样条曲线

与均匀B样条的区别在于两端点具有重复度,如果样条曲线的次数为k,则如果要过端点,则需要将重复度设为k+1。
准均匀B样条

3. 分段Bezier曲线

分段Bezier曲线结合了Bezier曲线和B样条曲线的优点,即可以分段控制,又可以采用Bezier曲线的简单算法。分段Bezier曲线在插值圆弧时有很好的准确性。
分段Bezier曲线

4. 非均匀有理B样条曲线

非均匀有理B样条曲线可以通过部分节点的权因子来控制曲线的局部的形状,某点的权因子越大,越靠近该点。在OCC中,与上述三种不同的是,在构造有理B样条时额外需要一个权因子列表,实际上,分段Bezier曲线也可以传入一个权因子列表来修改曲线局部的形状。
有理B样条
在OCC中,上述三种曲线的构造及显式对应的代码如下:

TColgp_Array1OfPnt Poles(1,9);
    Poles.SetValue(1, gp_Pnt(0,-100,0));
    Poles.SetValue(2, gp_Pnt(0,-100,50));
    Poles.SetValue(3, gp_Pnt(0,-50,50));
    Poles.SetValue(4, gp_Pnt(0,0,50));
    Poles.SetValue(5, gp_Pnt(
  • 5
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值