#curve #spline #control #points #generic #computing #b-splines

bspline

一个用于计算B样条的简单泛型库

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 渲染

Download history 75/week @ 2024-03-13 80/week @ 2024-03-20 168/week @ 2024-03-27 115/week @ 2024-04-03 83/week @ 2024-04-10 183/week @ 2024-04-17 286/week @ 2024-04-24 232/week @ 2024-05-01 94/week @ 2024-05-08 111/week @ 2024-05-15 164/week @ 2024-05-22 236/week @ 2024-05-29 49/week @ 2024-06-05 40/week @ 2024-06-12 88/week @ 2024-06-19 87/week @ 2024-06-26

每月297次下载

MIT授权

17KB
111

logo

一个用于计算泛型控制点上的B样条插值曲线的库。bspline可用于评估任何可以进行线性插值的类型的B样条,包括浮点数、位置、RGB颜色、变换矩阵等。

bspline标志使用该库生成,使用二维三次B样条定位曲线,并在RGB空间中使用二次B样条进行着色(查看标志示例!)还可以在示例中找到其他更简单的1D和2D二次、三次和四次B样条示例。

安装

只需在crates.io上抓取crate即可!

Crates.io Build Status

文档

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样条的好地方,以便有效地使用此库:

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