Skip to content

Commit 1d480cd

Browse files
committed
fix 分段b spline bug
1 parent 91750c2 commit 1d480cd

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

PathPlanning/B-spline/BSpline.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,13 @@ vector<double> u_piecewise_B_Spline(int n, int k) {
7171
vector<double> node_vector(n+k+1);
7272
if(n%(k-1)==0&&(k-1)>0){//满足n是k-1的整数倍且k-1为正整数
7373
for(int i=n+1;i<n+k+1;i++)node_vector[i]=1;//末尾n+1到n+k+1的数重复
74-
double piecewise = n / (k-1); //设定内节点的值
74+
int piecewise = n / (k-1); //设定内节点的值
7575
if(piecewise>1){
7676
//内节点重复k-1次
77-
for(int i=k;i<n+1;i++)node_vector[i]=1/piecewise;
77+
for(int i=1;i<piecewise;i++){
78+
for(int j=0;j<k-1;j++)node_vector[(k-1)*i+j+1]=i/piecewise;
79+
}
80+
7881
}
7982
}else{
8083
cout<<"error!需要满足n是k-1的整数倍且k-1为正整数"<<endl;

PathPlanning/B-spline/main.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
namespace plt = matplotlibcpp;
88

99
int main(){
10-
vector<Vector2d>Ps{Vector2d (0,0),Vector2d(1,1),Vector2d(2,1),Vector2d(3,0),Vector2d(4,2)};
11-
//vector<Vector2d>Ps{Vector2d (9.036145, 51.779661),Vector2d(21.084337, 70.084746),Vector2d(37.607573, 50.254237),Vector2d(51.893287, 69.745763),Vector2d(61.187608, 49.576271)};
10+
// vector<Vector2d>Ps{Vector2d (0,0),Vector2d(1,1),Vector2d(2,1),Vector2d(3,0),Vector2d(4,2)};
11+
vector<Vector2d>Ps{Vector2d (9.036145, 51.779661),Vector2d(21.084337, 70.084746),Vector2d(37.607573, 50.254237),Vector2d(51.893287, 69.745763),Vector2d(61.187608, 49.576271)};
1212

1313
vector<double>x_ref,y_ref;
1414
for(int i=0;i<Ps.size();i++){

0 commit comments

Comments
 (0)