#ifndef POINTCALCULATE_H #define POINTCALCULATE_H #include #include "filemanager.h" namespace PointCalculate{ void setExperimentData(const QVector&); QPair getStartAndEndPoint(); void setRegionPointX(const float,const float); QPointF getClosestPointByX(const float); QPointF getPeakPoint(); QString textFormatPeakPoint(const float enthalpyValue, const float peakValue, const float startPoint, const float endPoint); QString textFormatNumbericalLabel(const QPointF); QString textFormatStartPoint(const QPointF); QString textFormatEndPoint(const QPointF); QPair calculateStartAndEndPoint(); double calculateArea(); //​获取曲线拐点处的切线 QPair getCurveInflectionPointTangent(); QVector getRegionPoints(const float,const float); //private void updateStartEndPoint(); QPair calculateMaxDiffPointLeft(); QPair calculateMaxDiffPointRight(); enum MaxDiffPointDetailType{ Left, Right }; QPair calculateMaxDiffPointDetail(const MaxDiffPointDetailType type); QPointF calculateIntersection(const QPointF p1,const QPointF p2, const QPointF p3, const QPointF p4); QVector getPeakPointGroup(); std::vector movingAverage(const std::vector& data, int windowSize); extern QVector _dataVtr; extern QPointF _peakPoint; extern QPointF _leftSelectedPoint,_rightSelectedPoint; } #endif // POINTCALCULATE_H