如何用bezier曲线拟合离散点 c++代码链接
时间: 2023-02-08 16:39:52 浏览: 145
C++ Bezier曲线拟合算法
使用bezier曲线拟合离散点可以使用第三方库如 scipy 和 scikit-learn。
scipy中的interpolate.splprep可以用来拟合离散点,示例代码如下:
```
from scipy.interpolate import splprep, splev
import numpy as np
# 离散点
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
# 拟合
tck, u = splprep([x, y], s=0)
# 根据拟合结果计算新点
x_new, y_new = splev(np.linspace(0, 1, 100), tck)
```
scikit-learn 中的 make_interp_spline可以用来拟合离散点,示例代码如下:
```
from scipy.interpolate import make_interp_spline
import numpy as np
# 离散点
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
# 拟合
spl = make_interp_spline(x, y, k=3)
# 根据拟合结果计算新点
x_new = np.linspace(1, 5, 100)
y_new = spl(x_new)
```
最后是一个具体的代码实现链接:https://codepen.io/abhinav_tiwari/pen/oNgZMxV
阅读全文