#ifndef SCURVE_H #define SCURVE_H /* 归一化后的s曲线 */ #include class SCurve{ public: SCurve(){} ~SCurve(){} void setSCurve(double deltaQ, double dQMax, double ddQMax, double dddQMax); void restart(); /* 考虑到归一化,在实际使用时,物理量为: 加速度 = deltaQ * getDDs(); */ double getDDs(); double getDDs(double t); /* 考虑到归一化,在实际使用时,物理量为: 速度 = deltaQ * getDs(); */ double getDs(); double getDs(double t); /* 考虑到归一化,在实际使用时,物理量为: 位置 = deltaQ * gets(); */ double gets(); double gets(double t); double getT(); private: int _getSegment(double t); void _setFunc(); double _runTime(); bool _started = false; double _startTime; double _J, _aMax, _vMax; double _T[7]; // period double _t[7]; // moment double _v0, _v1; // ds at _t[0], _t[1] double _s0, _s1, _s2, _s3, _s4, _s5, _s6; // s at _t[0], _t[1] }; #endif // SCURVE_H