11个版本 (2个稳定版本)
1.1.0 | 2022年2月11日 |
---|---|
1.0.0 | 2021年1月30日 |
0.2.3 | 2019年7月4日 |
0.2.2 | 2015年10月26日 |
0.1.4 | 2015年10月16日 |
#92 in 渲染
每月297次下载
17KB
111 行
一个用于计算泛型控制点上的B样条插值曲线的库。bspline可用于评估任何可以进行线性插值的类型的B样条,包括浮点数、位置、RGB颜色、变换矩阵等。
bspline标志使用该库生成,使用二维三次B样条定位曲线,并在RGB空间中使用二次B样条进行着色(查看标志示例!)还可以在示例中找到其他更简单的1D和2D二次、三次和四次B样条示例。
安装
只需在crates.io上抓取crate即可!
文档
Rust文档可在此处找到:here.
1D示例
此示例展示了如何在维基百科的B样条页面上创建1D基数三次B样条示例。有关评估样条到图像并保存输出的示例,请参阅示例。
let points = vec![0.0, 0.0, 0.0, 6.0, 0.0, 0.0, 0.0]
let knots = vec![-2.0, -2.0, -2.0, -2.0, -1.0, 0.0, 1.0, 2.0, 2.0, 2.0, 2.0];
let degree = 3;
let spline = bspline::BSpline::new(degree, points, knots);
B样条阅读材料
该库假设您对B样条的工作原理有一定程度的了解,例如控制点和节点如何影响生成的曲线。未提供交互式编辑器(至少目前没有)。以下是一些阅读B样条的好地方,以便有效地使用此库:
- 维基百科上的B样条页面
- 计算机图形学基础(有关于曲线的良好章节)
- 样条与B样条:入门
- 几何建模
- 一组很好的交互式示例
nalgebra支持
nalgerba是Rust最受欢迎的线性代数包之一。为了使此创建与它兼容,您需要启用nalgebra-support
功能,然后您可以重新创建上面的示例
use nalgebra as na;
let points = na::DVector::from(vec![0.0, 0.0, 0.0, 6.0, 0.0, 0.0, 0.0])
let knots = na::DVector::from(vec![-2.0, -2.0, -2.0, -2.0, -1.0, 0.0, 1.0, 2.0, 2.0, 2.0, 2.0]);
let degree = 3;
let spline = bspline::BSpline::new(degree, points, knots);
依赖关系
~1.3–2.2MB
~50K SLoC