BlenderCN论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

12
返回列表 发新帖
楼主: luxuy

最近在读《The NURBS Book 2nd》,有同好吗?

[复制链接]
 楼主| 发表于 2014-7-2 14:20:46 | 显示全部楼层
Nurbs比我之前想象的要复杂许多。

我在rhino下用vbs,python都写过一些脚本,所以对nurbs多少还是熟悉的,起码,对于curve,有一个参数 u 就可以取得对应的点,对于surface,有一对参数 u,v 就行,一般的脚本知道这些就可以玩得转了。这就是基本的参数化的思路了。

看了《the nurbs book》发觉nurbs 的数学基础没有想象的那么简单,也查了一些k大推荐的网站和电子书帮助理解。

目前对一些基本概念的认知比之前深入多了。

下面说几个基本概念:

nurbs > b-spline > bezier,大于号表示包含的意思,也就是说bezier是bspline的特例,bspline是nurbs的特例。

NURBS= Non Uniform Rational Bspline Surface 非 均匀 有理 B样条 曲面

每个字母都是有具体含义或者说故事的。一个个来说。

Non-Uniform,非均匀,是说参数和图形的对应关系不是均匀的,比如在区间[0,1],u=0.5并不能得到长度上的中点。
Rational,有理,要表达圆和椭圆等曲线,通常意义的多项式做不到,需要引入多项式的商这样的形式,也就是和有理数类似的有理多项式才行。
Bspline,就是一个基本公式,前面已经提过了。是对bezier的扩充,是一个分段递归函数。



回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-7-2 14:31:50 | 显示全部楼层
这是所谓的fitting,或者interpolation 也就是曲线或曲面通过给定的点。
我最近几天刚刚搞定的部分。边看边用blender做。

02.jpg

做这个玩意需要解一个6元的线性方程组。本来以为用blender自己的matrix就能搞定,后来发现不行,matrix只支持最多4x4的矩阵,于是搜索发现scipy可以,又发现scipy和python 3.4 不兼容,要自己编译,太麻烦了。于是自己倒腾了一个解线性方程组的函数,就基本算是搞定了。

图中的曲线是3次的,所以可以做到G2连续。





回复 支持 反对

使用道具 举报

发表于 2019-9-21 13:56:14 | 显示全部楼层
请问blender转换成nurbs有办法吗?
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Blender最新中文教学视频|Blender头条|小黑屋|手机版|Archiver|Blender中国 ( 蜀ICP备17002929号 )360网站安全检测平台

GMT+8, 2019-12-9 07:50 , Processed in 0.015872 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表