没有合适的资源?快使用搜索试试~ 我知道了~
NURBS-Python: 开源面向对象的纯Python NURBS评估库的设计与实现
SoftwareX 9(2019)85原始软件出版物PIBS-Python:PythonOnur Rauf Bingol,Adarsh Krishnamurthy美国爱荷华州立大学机械工程系ar t i cl e i nf o文章历史记录:2018年8月23日收到收到修订版,2018年11月8日接受,2018年12月20日保留字:曲线曲面造型非均匀有理B样条面向对象编程Pythona b st ra ct我们介绍了NURBS-Python,一个面向对象的,开源的,纯Python NURBS评估库,没有外部依赖。该库能够评估单个或多个NURBS曲线和曲面,提供可自定义的可视化界面,并支持使用流行的CAD文件格式导入和导出数据库和实现的算法被设计为可移植的和可扩展的,通过其抽象的基础接口。Python中使用的设计原则允许用户访问,使用和扩展库,而无需任何繁琐的软件编译步骤或许可问题。©2019作者由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本v4.3.8用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX_2018_148法律代码许可证MIT许可证使用Git的代码版本控制系统使用Python、Matplotlib、Plotly的软件代码语言、工具和服务编译要求、操作环境依赖性Python v2.7.x、v3.4.x及更高版本如果可用,链接到开发人员文档/手册https://nurbs-python.readthedocs.io问题支持电子邮件nurbs-python@googlegroups.com1. 介绍非均匀有理B样条(NURBS)被接受为机械计算机辅助设计(CAD)系统中几何表示的工业标准此外,它们还用于许多其他领域,如机器人和自动驾驶汽车,这些领域需要处理几何元素以生成轨迹和平滑。传统上,NURBS算法是使用编译语言开发的,例如C [1]或C++ [2,3],以实现比解释语言更好的性能然而,使用编译库运行简单的几何查询需要繁琐且复杂的设置,这主要取决于操作系统和计算机体系结构。使用解释语言编写的NURBS库可以大大减少*通讯作者。电子邮件地址:orbingol@iastate.edu(O.R. Bingol),adarsh@iastate.edu(A.Krishnamurthy)。https://doi.org/10.1016/j.softx.2018.12.005该方法的优点是减少了程序库的编译开销,并使NURBS算法在不同的应用中得到了广泛的应用。为了开发一个可广泛访问的NURBS库,我们使用Python实现了它。Python [4]是一种解释型高级编程语言,被非程序员和科学家广泛使用。通过设计,Python代码可以在大多数现代平台上工作作为参考实现,CPython提供了一个设计良好的C编程接口,用于与不同的库进行交互。因此,Theano、TensorFlow、CognitiveToolkit(CNTK)等现代库提供了用Python实现的用户界面,以减少编程接口学习工作量和开发时间,同时使用Python本文介绍了VBS-Python程序包及其编程接口。Python是一个计算几何库,专门用于计算有理和非有理B样条曲线和曲面。Python是一个开源库,旨在最小化外部依赖。2352-7110/©2019作者。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softx86手术室Bingol和A.Krishnamurthy/SoftwareX 9(2019)85+∑p!N()=αN()(2a)∑、=−0否则αkj=,(2d)该库提供了一个完全可扩展的面向对象的数据结构,评估和可视化功能,使用Python编程语言实现该库可以使用直接面向对象的应用程序编程接口(API)。它不包含可能限制其灵活性的元素,例如图形用户界面(GUI)或特定于域的语言实现。相反,它允许用户使用其抽象基类实现任何图形用户界面包中包含的可选可视化组件实现了这个抽象基础,并可用于绘制曲线和曲面。抽象库、数据API和求值功能是独立的,没有外部模块依赖性.另一方面, 可视化组 件实现了最常 用的绘图和可视 化库,如Matplotlib和Plotly。本文介绍了NURBS- Python库的不同组件。本文的主要贡献包括:一个面向对象和自包含的NURBS框架,提供易于使用的数据结构和可扩展的算法。一个纯Python NURBS计算库,没有额外的依赖项或编译要求。利用现有的绘图库可视化NURBS曲线和曲面。一个免费和开源的可扩展框架,没有任何许可问题。本文的安排如下。在第2节中,我们强调了我们的设计考虑因素,并将NURBS-Python与现有软件包进行了比较,在第3节中,我们概述了NURBS公式。在第4节中,我们讨论了框架的组件及其实现细节,包括使用的不同最后,在第5节中,我们提供了一些代码示例,通过不同的曲线和曲面示例描述框架2. 设计考虑NURBS-Python是一个面向对象的NURBS求值库我想比较一下我们的库和一些现有的包含NURBS组件的开源库我们要注意的是,以下库不是独立的NURBS评估库,主要用于支持其他用途,如等几何分析。用于等几何分析的最著名和最常用的Python库之一是igakit[5]。虽然igakit有一个完整的NURBS评估实现,严重依赖第三方库,需要编译才能使用。此外,igakit没有为NURBS评估模块提供单独的软件包。此外,igakit和IBS-Python之间的软件设计方法是不同的。igakit的NURBS评估组件使用数学方法,该方法不区分NURBS形状的尺寸。另一方面,PIBS-Python这种方法特别关注曲线和曲面,并且可以扩展到体积。虽然,这只是一个设计偏好的问题,我们相信,我们的方法提高了图书馆的可用性还有几个使用MATLAB/Octave开发的NURBS库[6这些实现也主要是为了支持等几何分析而设计的,然而,它们是在被认为是专有或封闭源代码的编程语言中开发的3. NURBS简介NURBS形状被定义为一个或多个参数的向量值函数,其将k维空间映射到至少k 1维空间。该函数只是一组n维控制点的基函数或混合函数的向量积(或张量积,取决于k值)[9,10]。NURBS中的基函数使用Cox-de Boor递归算法进行评估式中,n是参数值,Ni,p是第i阶基函数,p是为考虑中的参数尺寸定义的形状的度数[9]。具有适合于几何运算的数据结构NURBS具有一个紧凑的定义任何NURBS形状(曲线或曲面)可以是Ni0(N)={1 如果i≤
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功