2个版本
0.1.1 | 2020年5月24日 |
---|---|
0.1.0 | 2020年5月14日 |
#117 在 机器人
863 每月下载量
33KB
114 行
Rust Fast Curve 3d
该算法从控制点列表生成曲线。
参考
原始论文:G. M. Chaikin, “高速曲线生成算法,计算机图形与图像处理,” 第3卷,1974年,第346-349页 关于Chaikin算法的R.F.Riesenfeld
该库包含以下函数
- fast_curve_2d 用于在2D中生成曲线。
- fast_curve_3d 用于在3D中生成曲线。
示例
示例使用 rust gnuplot 库。
3D曲线生成
let x = vec![1.0,1.0,4.0,5.0,2.0];
let y = vec![1.0,2.0,0.5,1.0,2.0];
let z = vec![1.0,2.0,0.8,1.0,1.5];
let n: u8 = 4;
let (xn,yn,zn) = fast_curve_3d(&x, &y, &z, n);
// gnu plot Figure
let mut fg = Figure::new();
fg.axes3d()
.lines(&x, &y, &z,&[Caption("Original"), Color("blue")])
.lines(&xn, &yn, &zn, &[Caption("Smoothed"), Color("red")]);
fg.set_scale(1.0, 1.0);
fg.show().unwrap();
2D曲线生成
let x = vec![1.0,1.0,4.0,5.0,2.0];
let y = vec![1.0,2.0,0.5,1.0,2.0];
let n: u8 = 4;
let (xn,yn) = fast_curve_2d(&x, &y, n);
let mut fg = Figure::new();
fg.axes2d()
.lines(&x, &y,&[Caption("Original"), Color("blue")])
.lines(&xn, &yn, &[Caption("Smoothed"), Color("red")]);
fg.set_scale(1.0, 1.0);
fg.show().unwrap();