16 June 2020

● 版本 0.0.2 alpha

● 版权 (c) 2019-2020 mahaidong

● Supported by http://ikuku.cn & caad.xyz

这个插件能做什么?

演示Nurbs曲线的DeBoor算法

仅仅靠自己的抽象想象力去理解不同的控制点位置(point)、权重向量(weight)和结点向量(knot)对NURBS曲线的影响是很难获得直观的理解与认识的.

这个grasshopper组件可以让你通过设定曲线的度数、控制点、重量向量和结点向量来演示如何生成NURBS曲线。其结果是让用户可以直观的看到最一般意义上的NURBS曲线的生成.

同时在曲线的绘制的时, 直接展示了与DeBoor算法相关的辅助线,及辅助线如何生成曲线.

什么是DeBoor算法?

● DeBoor算法是DeCasteljau算法的B-spline版本

● 通过DeBoor算法可以精准的描绘B-spline

● 通过控制点及结点向量knot的值u,通过递归求得曲线上的点的位置

● DeBoor算法也可以用于Nurbs曲线的生成

BSpline的DeBoor算法伪代码, python源码见github

5阶BSpline的演示

10个控制点

knots= [0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 5, 5, 5, 5]

weight= [1, 1, 1, 1, 1, 1, 1, 1, 1,1]

NURBS曲线的DeBoor算法

De Boor的算法也适用于NURBS曲线。我们只需将每个控制点乘以它的权重,将NURBS曲线转换为4D B-spline曲线,在这条4D B-spline曲线上执行de Boor算法,然后将得到的曲线上的点的xyz除以w,就可以将曲线投影回来. python源码见github

圆的Nurbs拟合演示

9个控制点

knots= [0, 0, 1, 1, 2, 2, 3, 3, 4, 4]

weight=[1, 0.707107, 1, 0.707107, 1, 0.707107, 1, 0.707107, 1]

演示Bezier曲线与Bernstein多项式

参数曲线的范畴

什么是Bezier曲线

Bezier曲线的数学基础–伯恩斯坦多项式–早在1912年就已为人所知,但直到大约50年后,法国工程师皮埃尔-贝兹尔(Pierre Bézier)才将这些多项式应用于图形,并将其广泛宣传,他用它们在雷诺公司设计汽车车身。这些曲线的研究最早是在1959年由数学家Paul de Casteljau利用de Casteljau的算法发展起来的,该算法是一种数值稳定的方法,用于评估法国另一家汽车制造商Citroën的Bézier曲线。

Bezier曲线的数学公式

Bernstein多项式

其中:

n阶贝塞尔曲线的定义

n=1:

当n=1的时候可以用来表示直线.

n=2:

当n=2的时候可以用来表示曲线.

5阶贝塞尔曲线的演示

如何安装与使用?

方法一

● 拷贝dist文件夹中的ghuser 文件到 User Objects 文件夹

● 打开dist文件夹中的案例文件 DeBoorAlgorithmNurbs.gh 查看演示效果

方法二

● 打src文件夹中的案例文件 DeBoorAlgorithmNurbs.gh 查看演示效果

b-spline:

nurbs circle:

bezier curve:

todo

● Single Insertion

● Inserting a Knot Multiple Times

● compute tangent and normal vectors at a point on a Bézier curve

● b-spline surface

● curve interpolation

许可证

你可以根据自由软件基金会发布的GNU Lesser General Public License版本3的条款重新发布它和/或修改它。

插件下载

相关文章

建筑师编程课推广ikuku精选课 Python4Rhino建筑师编程课 第3期 2020.6.27开始直播!|ikuku.cn|在库言库​www.ikuku.cn

nurbs曲线拟合程序_NURBS曲线DeBoor算法(Grasshopper数学插件)相关推荐

  1. java nurbs几何库_NURBS曲线与曲面

    B样条方法在表示与设计自由型曲线曲面形状时显示了强大的威力,然而 在表示与设计初等曲线曲面时时却遇到了麻烦.因为B样条曲线包括其特例的 Bezier曲线都不能精确表示出抛物线外的二次曲线,B样条曲面包 ...

  2. matlab光顺拐点,基于MATLAB的最大误差双圆弧逼近曲线的算法及实现.pdf

    基于MATLAB的最大误差双圆弧逼近曲线的算法及实现.pdf 第31卷第6期 基于MⅢB的最大误差双圆弧逼近曲线的算法及实现 文章编号:1004-2539120町]06一唧一∞ 基于MAⅡ.AB的最大 ...

  3. 电子凸轮追剪曲线生成算法

    电子凸轮追剪曲线生成算法. 品牌:麦格米特(算法,理解后可转成其他品牌PLC或任何一种编程语言) 只有程序6150633554519425混圆形意太极门掌门人

  4. 电子凸轮追剪曲线生成算法 麦格米特

    电子凸轮追剪曲线生成算法. 品牌:麦格米特(算法,理解后可转成其他品牌PLC或任何一种编程语言) 只有程序 ID:6950633554519425

  5. 电子凸轮追剪曲线生成算法 理解后可转成其他品牌PLC或任何一种编程语言

    电子凸轮追剪曲线生成算法. 品牌:麦格米特(算法,理解后可转成其他品牌PLC或任何一种编程语言) 只有程序 YID:6350633554519425混圆形意太极门掌门人

  6. 含抽水蓄能电站系统的调峰经济调度研究matlab程序(粒子群算法)

    含抽水蓄能电站系统的调峰经济调度研究matlab程序(粒子群算法) 参考文献:抽水蓄能电站的最佳调度方案研究 调峰电源的优化调度是促进电力系统安全稳定运行,实现可靠供电的要措施.因为目前我国的调峰电源 ...

  7. matlab 主曲线,基于粒计算的复杂数据多粒度主曲线提取算法

    引言 主曲线是第一主成分的非线性推广[,第一主成分是对数据集的一维线性最优描述.主曲线通过将高维数据映射到嵌入在高维空间中的低维流形,以一种新的方式表示数据,使数据分析任务更容易.更准确.由主曲线定义 ...

  8. 较高人工智能的人机博弈程序实现(多个算法结合)含C++源码

    较高人工智能的人机博弈程序实现(多个算法结合)含C++源码 本文由恋花蝶最初发表于http://blog.csdn.net/lanphaday 上,您可以转载.引用.打印和分发等,但必须保留本文完整和 ...

  9. 程序员面试、算法研究、编程艺术、红黑树4大系列集锦与总结

    程序员面试.算法研究.编程艺术.红黑树4大经典原创系列集锦与总结 作者:July--结构之法算法之道blog之博主. 时间:2010年10月-2011年6月. 出处:http://blog.csdn. ...

  10. Ken Block 漂移大叔,程序实现精准漂移算法。

    Ken Block 漂移大叔的好多生化啊的漂移,说完,我和你说话了,邱华怎么也无法让她开心起来,每一个人都很高兴,除了杰米外挂王控制了我们,她昂了昂高傲的脖子,什么都看不见,为展览重新制作了一块牌匾, ...

最新文章

  1. 用于药物反应预测的自适应大小的子结构学习
  2. matlab 代码开头,诸位大神请帮我讲解一下每个程序开头这些行的意思
  3. 成功解决RuntimeWarning: invalid value encountered in double_scalars
  4. Linux(五) 权限
  5. apache 限制IP网段访问
  6. java slf4j_SLF4J 使用手册
  7. Android:DELETE_FAILED_INTERNAL_ERROR Error while Installing APKs
  8. React Native 开发环境搭建
  9. 跟着石头哥哥学cocos2d-x(四)--cocos2dx中的动画以及TexturePacker使用
  10. 我要养成写博客的好习惯!
  11. coreldraw x4忽略视图样式补丁_80%的人都忽略了PPT画布之外的用法,但这6点真的很实用...
  12. 会场安排问题(贪心算法) Comparator类排序的学习
  13. java dump分析工具_java线程dump分析工具
  14. 基于SpringBoot的旅游景点与酒店预定系统
  15. android系统apk文件,如何安装apk文件 安卓手机apk文件安装方法
  16. 了解TrustZone,读了这篇就够了
  17. 【MySQL】用假期时间学习数据库,稳赚不亏(存储、视图、事务、优化、安全)
  18. ajax data=text,jQuery ajax dataType值为text json探索分享
  19. zookeeper基础知识以及常用命令
  20. Java中常用的String方法解析和使用示例

热门文章

  1. 《Go程序设计语言》- 第12章:反射
  2. LaTeX 安装及环境配置
  3. 大数据之Hadoop命令
  4. DC-DC电路多种调制方式的介绍及对比
  5. ws2_32.dll下载-ws2_32.dll调用失败如何修复
  6. HTML 个人简历源码
  7. file js new 传到后台_JS读取文件且AJAX传输到后台
  8. 30种EMC标准电路
  9. 几纳米间风云:手机摄影的制高点争夺战
  10. Android安卓小程序-随机数生成器