2025-04-16T17:10:34

This commit is contained in:
yuntang 2025-04-16 17:10:35 +08:00
parent c3c164ed3d
commit 56a84cdc3a
6 changed files with 43 additions and 18 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -178,6 +178,7 @@ QPointF PointCalculate::findClosestPointByX(float x) {
void PointCalculate::setRegionPointX(const float left, const float right) void PointCalculate::setRegionPointX(const float left, const float right)
{ {
logde<<"dataVtr size:"<<_dataVtr.size();
logde<<"select point param left,right:"<<left<<","<<right; logde<<"select point param left,right:"<<left<<","<<right;
_leftSelectedPoint = getClosestPointByX(left); _leftSelectedPoint = getClosestPointByX(left);
@ -479,3 +480,25 @@ QString PointCalculate::textFormatGlassTranstion(const float t1,const float tg,c
.arg(QString::number(tg, 'f', 3)) .arg(QString::number(tg, 'f', 3))
.arg(QString::number(t2, 'f', 3)); .arg(QString::number(t2, 'f', 3));
} }
QPair<float, float> PointCalculate::getMaxMinValue()
{
if (_dataVtr.isEmpty()) {
return QPair<float, float>(0.0f, 0.0f);
}
float maxDsc = std::numeric_limits<float>::lowest(); // 初始化为最小浮点数
float minDsc = std::numeric_limits<float>::max(); // 初始化为最大浮点数
for(const Global::ExperimentData &ed : _dataVtr) {
if (ed.dsc > maxDsc) {
maxDsc = ed.dsc;
}
if (ed.dsc < minDsc) {
minDsc = ed.dsc;
}
}
return QPair<float, float>(minDsc, maxDsc);
}

View File

@ -14,6 +14,7 @@ void setRegionPointX(const float,const float);
QPointF getClosestPointByX(const float); QPointF getClosestPointByX(const float);
QPointF getClosestPointByY(const float left,const float right,const float valueY); QPointF getClosestPointByY(const float left,const float right,const float valueY);
QPointF getPeakPoint(); QPointF getPeakPoint();
QPair<float, float> getMaxMinValue();
QPair<QPointF,QPointF> calculateStartAndEndPoint(); QPair<QPointF,QPointF> calculateStartAndEndPoint();
float calculateArea(); float calculateArea();

View File

@ -175,6 +175,8 @@ void CentralWidget::slotRecvAnalysisFileName(const QString &fileName)
for(int i = 0;i < cfd.phaseTotalVtr.size();i++){ for(int i = 0;i < cfd.phaseTotalVtr.size();i++){
Global::PhaseTotalInfo& pti = cfd.phaseTotalVtr[i]; Global::PhaseTotalInfo& pti = cfd.phaseTotalVtr[i];
logde<<"data Vtr size:"<<pti.dataVtr.size();
PointCalculate::setExperimentData(pti.dataVtr); PointCalculate::setExperimentData(pti.dataVtr);
QPair<QPointF,QPointF>startEndPointPair = PointCalculate::getStartAndEndPoint(); QPair<QPointF,QPointF>startEndPointPair = PointCalculate::getStartAndEndPoint();
@ -182,8 +184,9 @@ void CentralWidget::slotRecvAnalysisFileName(const QString &fileName)
QPointF endPoint = startEndPointPair.second; QPointF endPoint = startEndPointPair.second;
_customPlot->xAxis->setRange(0, endPoint.x() / 3 * 4); _customPlot->xAxis->setRange(0, endPoint.x() / 3 * 4);
QPointF peakPoint = PointCalculate::getPeakPoint(); //QPointF peakPoint = PointCalculate::getPeakPoint();
float absY = std::abs(peakPoint.y()); QPair<float, float> maxMinPair = PointCalculate::getMaxMinValue();
float absY = std::abs(maxMinPair.first - maxMinPair.second);
_customPlot->yAxis->setRange(- absY * 2,absY *2); _customPlot->yAxis->setRange(- absY * 2,absY *2);
// 设置坐标轴标签 // 设置坐标轴标签
@ -205,8 +208,6 @@ void CentralWidget::slotRecvAnalysisFileName(const QString &fileName)
_currentCurve->setData(tVtr, xVtr, yVtr); _currentCurve->setData(tVtr, xVtr, yVtr);
_currentCurve->setSelectable(QCP::stWhole); // 设置曲线可选 _currentCurve->setSelectable(QCP::stWhole); // 设置曲线可选
//
// Global::_curveExperimentDataVtr.push_back();
} }
_customPlot->replot(); _customPlot->replot();