【轨迹规划】4:NURBS曲线轨迹生成C++实现

和准均匀B样条曲线的主要区别在NURBS多乘了权重。

核心代码,

  // 计算样条曲线上的点
    Point  CalculatePoint(double u) {
        int n = control_points.size() - 1;
        Point result;
        double denominator = 0.0;
        for (int i = 0; i <= n; i++) {
            double factor = N(i, degree, u) * weights[i];
            denominator += factor;        
            result.x += factor * control_points[i].x;
            result.y += factor * control_points[i].y;
            result.z += factor * control_points[i].z;            
        }    
        result.x /= denominator;
        result.y /= denominator;
        result.z /= denominator;    
        return result;
    }

#include <iostream>
#include <fstream>
#include <vector>
#include<cmath>

using namespace std;
class Point {
public:
    float x, y,z;
    Point(float x = 0, float y = 0,float z = 0) : x(x), y(y) ,z(z){}
    double norm(){
        return sqrt(x * x + y * y + z * z);
    } 
};
class NURBSCurve {
public:
    vector<Point> control_points; // 控制点,数量未定
    vector<double> weights;//权重
    vector<double> knots; // 结点向量
    int degree; // 曲线次数
    NURBSCurve(vector<Point> points, int k) {
    control_points = points;
    degree = k;
    // 初始化结点向量, m = n + 1+ k   ,m+1节点数量, n+1控制点数量 ,k 次数
    int num_knots = control_points.size() + degree+ 1 ;
    double delta = 1.0 /  (double)(num_knots - 2*degree - 1);
    for (int i = 0; i < num_knots; i++) {
        if (i < degree+1) {
            knots.push_back( 0.0);
        } else if (i >= num_knots - degree) {
            knots.push_back(1.0);
        } else {
            knots.push_back(knots.back() + delta);
        }
            cout << "knot"<<i<<"=" << knots[i] <<endl;
        }
    }
    // 计算基函数值
    double N(int i, int k, double u) {
        if (k == 0) {
            if (u >= knots[i] && u < knots[i+1]) {
                return 1.0;
            }
            return 0.0;
        }
        float a = 0.0, b = 0.0;
            if(knots[i+k] - knots[i] !=0.0){
                a = (u - knots[i]) / (knots[i+k] - knots[i]);
            }
            if(knots[i+k+1] - knots[i+1] !=0.0){
                b = (knots[i+k+1] - u) / (knots[i+k+1] - knots[i+1]);
            }  
        return a * N(i, k-1, u) + b * N(i+1, k-1, u);
    }
    // 计算样条曲线上的点
    Point  CalculatePoint(double u) {
        int n = control_points.size() - 1;
        Point result;
        double denominator = 0.0;
        for (int i = 0; i <= n; i++) {
            double factor = N(i, degree, u) * weights[i];
            denominator += factor;        
            result.x += factor * control_points[i].x;
            result.y += factor * control_points[i].y;
            result.z += factor * control_points[i].z;            
        }    
        result.x /= denominator;
        result.y /= denominator;
        result.z /= denominator;    
        return result;
    }
};



int main() {
    // example usage
   
   
    //vector<double> weights = {1.0, 1.0, 1.0};    
    //vector<Point> controlPoints = {{0.0, 0.0, 0.0}, {1.0, 1.0, 11.0}, {0.5, 0.0, 0.0}};
    //蝴蝶结
    // vector<double> weights = {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0};    
    // vector<Point> controlPoints = {{150,150,0},{0,0,0},{0,300,0},{150,150,0},{300,0,0},{300,300,0},{150,150,0}};
    //五角星
    //  vector<double> weights = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1};
    //  vector<Point> controlPoints = {{60, 170, 10}, {45, 150, 10}, {20, 150, 10}, {40, 130, 10}, {35, 110, 10}, {60, 125, 10}, {85, 110, 10}, {80, 130, 10}, {100, 150, 10}, {75, 150, 10}, {60, 170, 10}};
    //蝴蝶
    // vector<double> weights = {1,1,1,1.2,1,1,1,1,1,1,1,2,1,1,5,3,1,1.1, 1,1,1,1,1,1,1,1,1,
    //                         1,1,1,1,1,1,1.1,1,3,5,1,1,2,1,1,1,1,1,1,1,1.2,1,1,1};

    // vector<Point> controlPoints = {{104.493,152.139,10},{105.507,152.139,10},{106.082,
    //         149.615,10},{106.78,144.971,10},{119.575,151.358,10},{127.786,158.573,
    //         10},{140.526,167.081,10},{155.973,163.801,10},{150.4,147.326,10},{144.567,
    //         139.913,10},{142.369,130.485,10},{133.44,133.757,10},{141.892,128.509,
    //         10},{139.444,120.393,10},{133.218,115.446,10},{137.621,104.83,10},{130.945,
    //         109.267,10},{129.834,114.535,10},{126.074,108.522,10},{120.183,112.55,
    //         10},{114.171,116.865,10},{109.993,122.122,10},{105.68,136.359,10},{106.925,
    //         124.995,10},{109.765,119.828,10},{104.493,114.94,10},{99.22,119.828,10},
    //         {102.06,124.992,10},{103.305,136.359,10},{98.992,122.122,10},{94.814,
    //         116.865,10},{88.802,112.551,10},{82.911,108.521,10},{79.152,114.535,10},
    //         {78.04,109.267,10},{71.364,104.83,10},{75.768,115.447,10},{69.539,120.391,
    //         10},{67.097,128.512,10},{75.537,133.75,10},{66.602,130.496,10},{64.199,
    //         139.803,10},{58.668,147.408,10},{53,163.794,10},{68.465,167.084,10},
    //         {81.197,158.572,10},{89.411,151.358,10},{102.204,144.971,10},{102.904,
    //         149.614,10},{103.478,152.139,10},{104.492,152.139,10}};
    // vector<double> konts={0,0,0,0,0.008286,0.014978,0.036118,0.085467,0.129349,
    //         0.150871,0.193075,0.227259,0.243467,0.25608,0.269242,0.288858,0.316987,
    //         0.331643,0.348163,0.355261,0.364853,0.383666,0.400499,0.426851,0.451038,
    //         0.465994,0.489084,0.499973,0.510862,0.533954,0.54891,0.573096,0.599447,
    //         0.61628,0.635094,0.644687,0.651784,0.668304,0.682958,0.711087,0.730703,
    //         0.743865,0.756479,0.772923,0.806926,0.84913,0.870652,0.914534,0.963883,
    //         0.985023,0.991714,1,1,1,1};


      vector<double> weights = {1, 1, 1, 1, 1, 1};
      vector<Point> controlPoints = {{60, 100, 0}, {20, 150, 10},  {80, 200, 30}, {100, 100, 30},  {60, 100, 10},  {60, 100, 0}};
     int k = 3;
     NURBSCurve curve(controlPoints, k);
     curve.weights = weights;
     //curve.knots = konts;
     const double step = 0.002; //1000个点
     vector<Point> traj;

      ofstream fout("D:/nurbs.txt"); // 打开或创建名为 data.txt 的文件
     for (double u = 0; u <= 1; u += step)
     { 
        Point point = curve.CalculatePoint(u);
        traj.push_back(point);
        cout << point.x << ", " << point.y << ", " << point.z << endl;
        fout << point.x << ", " << point.y << ", " << point.z << endl;

    }
    cout << "vector<Point> traj.size=" << traj.size() << endl;
    fout.close();
   
    return 0;
}

执行输出: 

图像

PS D:\MyProject\VScode\B_spline\output> & .\'NURBS.exe'
knot0=0
knot1=0
knot2=0
knot3=0
knot4=0.333333
knot5=0.666667
knot6=1
knot7=1
knot8=1
knot9=1
60, 100, 0
59.2875, 100.897, 0.179999
58.5901, 101.789, 0.359991
57.9076, 102.676, 0.539971
57.2398, 103.557, 0.719931
56.5868, 104.432, 0.899865
55.9484, 105.303, 1.07977 
55.3244, 106.167, 1.25963 
54.7148, 107.027, 1.43945
54.1195, 107.881, 1.61921
53.5384, 108.729, 1.79892
52.9713, 109.572, 1.97856
52.4182, 110.41, 2.15813
51.8789, 111.242, 2.33763
51.3534, 112.068, 2.51704
50.8415, 112.889, 2.69635
50.3431, 113.705, 2.87558
49.8582, 114.515, 3.05469
49.3866, 115.32, 3.2337
48.9282, 116.119, 3.41259
48.4829, 116.913, 3.59136
48.0506, 117.701, 3.77
47.6312, 118.484, 3.9485
47.2246, 119.261, 4.12686
46.8307, 120.032, 4.30507
46.4494, 120.798, 4.48312
46.0805, 121.559, 4.66102
45.724, 122.314, 4.83874
45.3798, 123.063, 5.01629
45.0477, 123.807, 5.19366
44.7277, 124.546, 5.37084
44.4196, 125.278, 5.54783
44.1234, 126.006, 5.72461
43.8389, 126.727, 5.90119
43.566, 127.443, 6.07755
43.3047, 128.154, 6.2537
43.0547, 128.859, 6.42961
42.8161, 129.558, 6.60529
42.5887, 130.252, 6.78074
42.3724, 130.94, 6.95594
42.167, 131.622, 7.13088
41.9726, 132.299, 7.30557
41.7889, 132.971, 7.47998
41.6159, 133.636, 7.65413
41.4535, 134.296, 7.828
41.3016, 134.95, 8.00159
41.16, 135.599, 8.17488
41.0286, 136.242, 8.34787
40.9074, 136.88, 8.52056
40.7962, 137.511, 8.69294
40.695, 138.137, 8.865
40.6036, 138.758, 9.03674
40.5219, 139.373, 9.20814
40.4499, 139.982, 9.37921
40.3873, 140.585, 9.54994
40.3341, 141.183, 9.72031
40.2903, 141.775, 9.89034
40.2556, 142.361, 10.06
40.2301, 142.942, 10.2293
40.2135, 143.516, 10.3982
40.2058, 144.086, 10.5667
40.2068, 144.649, 10.7349
40.2165, 145.207, 10.9026
40.2348, 145.759, 11.07
40.2615, 146.305, 11.2369
40.2966, 146.845, 11.4034
40.3399, 147.38, 11.5695
40.3914, 147.909, 11.7352
40.4509, 148.432, 11.9004
40.5183, 148.95, 12.0652
40.5935, 149.461, 12.2296
40.6764, 149.967, 12.3935
40.7669, 150.467, 12.5569
40.865, 150.962, 12.7199
40.9704, 151.45, 12.8824
41.0831, 151.933, 13.0444
41.203, 152.41, 13.2059
41.33, 152.881, 13.3669
41.4639, 153.346, 13.5275
41.6048, 153.806, 13.6875
41.7523, 154.259, 13.847
41.9065, 154.707, 14.006
42.0673, 155.149, 14.1645
42.2345, 155.585, 14.3225
42.4081, 156.015, 14.4799
42.5878, 156.44, 14.6367
42.7737, 156.858, 14.7931
42.9656, 157.271, 14.9488
43.1635, 157.678, 15.104
43.3671, 158.079, 15.2586
43.5764, 158.474, 15.4127
43.7914, 158.863, 15.5661
44.0118, 159.246, 15.719
44.2376, 159.624, 15.8713
44.4687, 159.995, 16.023
44.7049, 160.361, 16.174
44.9462, 160.721, 16.3245
45.1925, 161.074, 16.4743
45.4436, 161.422, 16.6235
45.6995, 161.764, 16.7721
45.96, 162.1, 16.92
46.2251, 162.43, 17.0673
46.4945, 162.754, 17.2139
46.7683, 163.072, 17.3599
47.0464, 163.384, 17.5051
47.3285, 163.691, 17.6498
47.6146, 163.991, 17.7937
47.9047, 164.285, 17.937
48.1985, 164.573, 18.0795
48.4961, 164.856, 18.2214
48.7972, 165.132, 18.3625
49.1017, 165.402, 18.503
49.4097, 165.667, 18.6427
49.7209, 165.925, 18.7817
50.0353, 166.177, 18.9199
50.3528, 166.424, 19.0575
50.6732, 166.664, 19.1942
50.9964, 166.898, 19.3303
51.3224, 167.126, 19.4655
51.651, 167.349, 19.6
51.9821, 167.565, 19.7338
52.3156, 167.775, 19.8667
52.6515, 167.979, 19.9989
52.9895, 168.177, 20.1303
53.3297, 168.369, 20.2608
53.6719, 168.555, 20.3906
54.0159, 168.734, 20.5196
54.3618, 168.908, 20.6477
54.7093, 169.076, 20.7751
55.0584, 169.237, 20.9016
55.4089, 169.393, 21.0272
55.7608, 169.542, 21.1521
56.114, 169.685, 21.276
56.4683, 169.822, 21.3992
56.8237, 169.953, 21.5214
57.18, 170.078, 21.6428
57.5371, 170.197, 21.7633
57.895, 170.309, 21.8829
58.2534, 170.416, 22.0017
58.6124, 170.516, 22.1195
58.9718, 170.61, 22.2365
59.3315, 170.698, 22.3525
59.6914, 170.78, 22.4676
60.0514, 170.856, 22.5819
60.4114, 170.925, 22.6951
60.7713, 170.989, 22.8075
61.1309, 171.046, 22.9189
61.4902, 171.097, 23.0294
61.849, 171.142, 23.1389
62.2073, 171.18, 23.2474
62.565, 171.212, 23.355
62.9219, 171.239, 23.4616
63.2779, 171.259, 23.5672
63.633, 171.272, 23.6719
63.987, 171.28, 23.7756
64.3399, 171.281, 23.8782
64.6914, 171.276, 23.9799
65.0415, 171.265, 24.0805
65.3902, 171.247, 24.1801
65.7372, 171.224, 24.2787
66.0826, 171.194, 24.3763
66.4261, 171.157, 24.4729
66.7677, 171.115, 24.5683
67.1073, 171.066, 24.6628
67.4447, 171.011, 24.7562
67.7799, 170.95, 24.8485
68.1128, 170.882, 24.9398
68.4432, 170.808, 25.0299
68.7711, 170.728, 25.119
69.0965, 170.641, 25.2071
69.4193, 170.549, 25.294
69.7396, 170.45, 25.3799
70.0574, 170.345, 25.4646
70.3727, 170.234, 25.5483
70.6854, 170.118, 25.631
70.9956, 169.995, 25.7125
71.3033, 169.867, 25.793
71.6084, 169.733, 25.8723
71.911, 169.593, 25.9506
72.211, 169.448, 26.0279
72.5085, 169.297, 26.104
72.8034, 169.14, 26.1791
73.0958, 168.978, 26.253
73.3856, 168.811, 26.3259
73.6729, 168.638, 26.3978
73.9576, 168.461, 26.4685
74.2398, 168.277, 26.5382
74.5194, 168.089, 26.6067
74.7964, 167.896, 26.6742
75.0709, 167.697, 26.7407
75.3428, 167.494, 26.806
75.6121, 167.286, 26.8703
75.8788, 167.073, 26.9334
76.143, 166.855, 26.9955
76.4046, 166.632, 27.0566
76.6636, 166.405, 27.1165
76.9201, 166.173, 27.1754
77.174, 165.936, 27.2331
77.4252, 165.695, 27.2898
77.6739, 165.45, 27.3455
77.92, 165.2, 27.4
78.1635, 164.946, 27.4535
78.4044, 164.687, 27.5058
78.6427, 164.425, 27.5571
78.8784, 164.158, 27.6074
79.1115, 163.887, 27.6565
79.3421, 163.612, 27.7046
79.57, 163.334, 27.7515
79.7953, 163.051, 27.7974
80.018, 162.764, 27.8423
80.238, 162.474, 27.886
80.4555, 162.18, 27.9287
80.6703, 161.882, 27.9702
80.8826, 161.581, 28.0107
81.0922, 161.276, 28.0502
81.2992, 160.967, 28.0885
81.5035, 160.656, 28.1258
81.7053, 160.34, 28.1619
81.9044, 160.022, 28.197
82.1009, 159.7, 28.2311
82.2947, 159.375, 28.264
82.4859, 159.047, 28.2959
82.6745, 158.716, 28.3266
82.8604, 158.382, 28.3563
83.0437, 158.045, 28.385
83.2244, 157.705, 28.4125
83.4024, 157.362, 28.439
83.5777, 157.016, 28.4643
83.7504, 156.668, 28.4886
83.9205, 156.317, 28.5119
84.0879, 155.963, 28.534
84.2526, 155.607, 28.5551
84.4147, 155.249, 28.575
84.5741, 154.888, 28.5939
84.7309, 154.524, 28.6118
84.885, 154.158, 28.6285
85.0364, 153.791, 28.6442
85.1851, 153.42, 28.6587
85.3312, 153.048, 28.6722
85.4746, 152.674, 28.6847
85.6154, 152.298, 28.696
85.7534, 151.919, 28.7063
85.8888, 151.539, 28.7154
86.0215, 151.157, 28.7235
86.1515, 150.774, 28.7306
86.2788, 150.388, 28.7365
86.4034, 150.001, 28.7414
86.5254, 149.612, 28.7451
86.6446, 149.222, 28.7478
86.7612, 148.831, 28.7495
86.875, 148.438, 28.75
86.9862, 148.043, 28.7495
87.0946, 147.647, 28.7478
87.2003, 147.25, 28.7451
87.3034, 146.852, 28.7414
87.4037, 146.453, 28.7365
87.5013, 146.053, 28.7306
87.5962, 145.652, 28.7235
87.6884, 145.249, 28.7154
87.7779, 144.846, 28.7063
87.8646, 144.442, 28.696
87.9487, 144.038, 28.6847
88.03, 143.632, 28.6722
88.1086, 143.226, 28.6587
88.1844, 142.82, 28.6442
88.2575, 142.413, 28.6285
88.3279, 142.005, 28.6118
88.3956, 141.597, 28.5939
88.4605, 141.189, 28.575
88.5227, 140.78, 28.5551
88.5821, 140.372, 28.534
88.6388, 139.963, 28.5119
88.6928, 139.554, 28.4886
88.744, 139.145, 28.4643
88.7924, 138.736, 28.439
88.8381, 138.327, 28.4125
88.8811, 137.918, 28.385
88.9213, 137.509, 28.3563
88.9587, 137.101, 28.3266
88.9934, 136.693, 28.2959
89.0253, 136.285, 28.264
89.0544, 135.878, 28.2311
89.0808, 135.471, 28.197
89.1044, 135.064, 28.1619
89.1253, 134.659, 28.1258
89.1433, 134.254, 28.0885
89.1586, 133.85, 28.0502
89.1711, 133.446, 28.0107
89.1808, 133.044, 27.9702
89.1878, 132.642, 27.9287
89.192, 132.241, 27.886
89.1933, 131.841, 27.8423
89.1919, 131.443, 27.7974
89.1877, 131.045, 27.7515
89.1807, 130.649, 27.7046
89.1709, 130.254, 27.6565
89.1584, 129.86, 27.6074
89.143, 129.468, 27.5571
89.1248, 129.077, 27.5058
89.1038, 128.688, 27.4535
89.08, 128.3, 27.4
89.0534, 127.914, 27.3455
89.024, 127.529, 27.2898
88.9918, 127.147, 27.2331
88.9567, 126.766, 27.1754
88.9189, 126.386, 27.1165
88.8782, 126.009, 27.0566
88.8347, 125.634, 26.9955
88.7884, 125.261, 26.9334
88.7392, 124.89, 26.8703
88.6872, 124.521, 26.806
88.6324, 124.154, 26.7407
88.5748, 123.79, 26.6742
88.5143, 123.428, 26.6067
88.451, 123.068, 26.5382
88.3849, 122.711, 26.4685
88.3159, 122.356, 26.3978
88.2441, 122.004, 26.3259
88.1694, 121.654, 26.253
88.0919, 121.307, 26.1791
88.0115, 120.963, 26.104
87.9283, 120.622, 26.0279
87.8422, 120.283, 25.9506
87.7533, 119.948, 25.8723
87.6615, 119.615, 25.793
87.5669, 119.286, 25.7125
87.4694, 118.96, 25.631
87.369, 118.636, 25.5483
87.2658, 118.316, 25.4646
87.1597, 118, 25.3799
87.0507, 117.686, 25.294
86.9388, 117.376, 25.2071
86.8241, 117.07, 25.119
86.7065, 116.767, 25.0299
86.586, 116.467, 24.9398
86.4627, 116.172, 24.8485
86.3366, 115.879, 24.7562
86.2077, 115.591, 24.6628
86.076, 115.306, 24.5683
85.9417, 115.024, 24.4729
85.8048, 114.746, 24.3763
85.6653, 114.471, 24.2787
85.5232, 114.2, 24.1801
85.3786, 113.932, 24.0805
85.2316, 113.667, 23.9799
85.0821, 113.406, 23.8782
84.9303, 113.148, 23.7756
84.7761, 112.894, 23.6719
84.6196, 112.643, 23.5672
84.4609, 112.395, 23.4616
84.3, 112.15, 23.355
84.1369, 111.909, 23.2474
83.9717, 111.67, 23.1389
83.8045, 111.435, 23.0294
83.6352, 111.204, 22.9189
83.4639, 110.975, 22.8075
83.2907, 110.75, 22.6951
83.1156, 110.527, 22.5819
82.9386, 110.308, 22.4676
82.7598, 110.092, 22.3525
82.5792, 109.878, 22.2365
82.3969, 109.668, 22.1195
82.2129, 109.461, 22.0017
82.0273, 109.257, 21.8829
81.8401, 109.056, 21.7633
81.6513, 108.857, 21.6428
81.461, 108.662, 21.5214
81.2693, 108.469, 21.3992
81.0761, 108.28, 21.276
80.8815, 108.093, 21.1521
80.6856, 107.909, 21.0272
80.4884, 107.728, 20.9016
80.2899, 107.55, 20.7751
80.0903, 107.374, 20.6477
79.8895, 107.201, 20.5196
79.6875, 107.031, 20.3906
79.4845, 106.864, 20.2608
79.2804, 106.699, 20.1303
79.0753, 106.537, 19.9989
78.8693, 106.378, 19.8667
78.6624, 106.221, 19.7338
78.4546, 106.067, 19.6
78.246, 105.915, 19.4655
78.0366, 105.766, 19.3303
77.8265, 105.619, 19.1942
77.6157, 105.475, 19.0575
77.4043, 105.334, 18.9199
77.1922, 105.194, 18.7817
76.9796, 105.058, 18.6427
76.7664, 104.923, 18.503
76.5528, 104.792, 18.3625
76.3388, 104.662, 18.2214
76.1243, 104.535, 18.0795
75.9095, 104.41, 17.937
75.6944, 104.288, 17.7937
75.4791, 104.167, 17.6498
75.2635, 104.05, 17.5051
75.0478, 103.934, 17.3599
74.8319, 103.82, 17.2139
74.616, 103.709, 17.0673
74.4, 103.6, 16.92
74.184, 103.493, 16.7721
73.9681, 103.388, 16.6235
73.7522, 103.286, 16.4743
73.5365, 103.185, 16.3245
73.3209, 103.087, 16.174
73.1056, 102.99, 16.023
72.8905, 102.896, 15.8713
72.6757, 102.803, 15.719
72.4613, 102.713, 15.5661
72.2472, 102.624, 15.4127
72.0336, 102.538, 15.2586
71.8204, 102.453, 15.104
71.6078, 102.371, 14.9488
71.3958, 102.29, 14.7931
71.1843, 102.211, 14.6367
70.9735, 102.134, 14.4799
70.7634, 102.058, 14.3225
70.554, 101.985, 14.1645
70.3454, 101.913, 14.006
70.1376, 101.843, 13.847
69.9307, 101.775, 13.6875
69.7247, 101.708, 13.5275
69.5196, 101.644, 13.3669
69.3155, 101.58, 13.2059
69.1125, 101.519, 13.0444
68.9105, 101.459, 12.8824
68.7097, 101.4, 12.7199
68.5101, 101.344, 12.5569
68.3116, 101.288, 12.3935
68.1144, 101.235, 12.2296
67.9185, 101.183, 12.0652
67.7239, 101.132, 11.9004
67.5307, 101.083, 11.7352
67.339, 101.035, 11.5695
67.1487, 100.989, 11.4034
66.9599, 100.944, 11.2369
66.7727, 100.9, 11.07
66.5871, 100.858, 10.9026
66.4031, 100.817, 10.7349
66.2208, 100.778, 10.5667
66.0402, 100.739, 10.3982
65.8614, 100.702, 10.2293
65.6845, 100.667, 10.06
65.5093, 100.632, 9.89034
65.3361, 100.599, 9.72031
65.1648, 100.567, 9.54994
64.9955, 100.536, 9.37921
64.8283, 100.506, 9.20814
64.6631, 100.478, 9.03674
64.5, 100.45, 8.865
64.3391, 100.424, 8.69294
64.1804, 100.398, 8.52056
64.0239, 100.374, 8.34787
63.8697, 100.35, 8.17488
63.7179, 100.328, 8.00159
63.5684, 100.307, 7.828
63.4214, 100.286, 7.65413
63.2768, 100.267, 7.47998
63.1347, 100.248, 7.30557
62.9952, 100.23, 7.13088
62.8583, 100.214, 6.95594
62.724, 100.198, 6.78074
62.5923, 100.182, 6.60529
62.4634, 100.168, 6.42961
62.3373, 100.154, 6.25369
62.214, 100.141, 6.07755
62.0935, 100.129, 5.90119
61.9759, 100.118, 5.72461
61.8613, 100.107, 5.54783
61.7496, 100.097, 5.37084
61.641, 100.088, 5.19366
61.5354, 100.079, 5.01629
61.4329, 100.071, 4.83874
61.3336, 100.063, 4.66102
61.2375, 100.056, 4.48312
61.1446, 100.05, 4.30507
61.055, 100.044, 4.12686
60.9688, 100.038, 3.9485
60.8859, 100.033, 3.77
60.8064, 100.029, 3.59136
60.7304, 100.025, 3.41259
60.6578, 100.021, 3.2337
60.5889, 100.018, 3.05469
60.5235, 100.015, 2.87558
60.4617, 100.012, 2.69635
60.4036, 100.01, 2.51704
60.3492, 100.008, 2.33763
60.2986, 100.006, 2.15813
60.2518, 100.005, 1.97856
60.2088, 100.004, 1.79892
60.1697, 100.003, 1.61921
60.1346, 100.002, 1.43945
60.1034, 100.001, 1.25963
60.0762, 100.001, 1.07977
60.0531, 100, 0.899865
60.0341, 100, 0.719931
60.0192, 100, 0.539971
60.0086, 100, 0.359991
60.0022, 100, 0.179999
vector<Point> traj.size=500

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值