乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 23|回复: 1

B-样条曲线

[复制链接]

2

主题

6

帖子

1

银币

初来乍到

Rank: 1

铜币
14
发表于 2019-9-21 11:10:51 | 显示全部楼层 |阅读模式

我正在编写一个脚本,它生成一个包含立体几何图形的步骤AP203。
我注意到几乎所有的非简单曲面和曲线都是使用B _ spline _ curve/surface _ with _ knots函数通过B样条以STEP格式描述的。
假设我有一个参数化定义的曲线或曲面。看起来STEP不允许我这样描述,我需要用B样条来逼近它。
我是否需要从头开始编写自己的代码来计算最接近我的曲线的控制点和节点,或者该功能是否可用?
我查看了stepcode和stepmod,但是我不知道它们的确切用法。你们有人用过这些吗?
基本上,现在我只需要一些代码,可以输入一组我希望位于曲线/曲面上的坐标,然后输出定义适当的B样条所需的控制点和节点。

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

2

主题

6

帖子

1

银币

初来乍到

Rank: 1

铜币
14
发表于 2019-10-25 10:44:07 | 显示全部楼层
你好。只是想与你们分享我的解决方案。
我拿起了David Salomon的《Computer Graphics的曲线和曲面》一书,阅读了关于Bezier曲线和B样条的章节。在阅读了这个非常清晰明了的样条描述之后,只需要一点数学就可以得到我需要的东西。
基本上,STEP文件在定义曲线时主要使用NURBS。但是“b_spline_curve_with_knots”命令也允许统一的b样条曲线。它不区分两者。
虽然近似的NURBS曲线(如最小二乘近似)是最适合给定数量的点的最佳解决方案,但它在数学上要复杂得多,因此现在不在我能掌握的范围内。因此,我使用了一个简单的插值B样条,其中每个样条线段都在我的给定点处结束。就我目前的目的而言,这已经足够了。
STEP文件几乎只使用“打开b样条曲线”,这意味着曲线在第一个和最后一个控制点开始和结束。因此,任务是找到两者之间的控制点,其中有n-1个。但是只有n-3个插值点,所以我输入最后两个方程作为起点和终点的切线。这现在是一个由n-1向量方程组成的线性系统,很容易求解。
这里的图是我的样条,其中4个插值点是曲线上的黑点,6个蓝色控制点是使曲线通过4个黑点的控制点。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-10 16:07 , Processed in 0.482801 second(s), 56 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表