fix: 修复模型测量点回原点及起终点拟合顺序异常

feature/Fix-Plot-20261028
lvjunjie 2 weeks ago
parent 5f0a91569e
commit 42434b5816

@ -974,12 +974,10 @@ void nmPlotGraphicBinder::createMeasureForGraphic(nmObjLineMeasure* pGraphic)
QPointF pStart = pts[0];
QPointF pEnd = pts[1];
double dLength = QLineF(pStart, pEnd).length();
if (pEnd != pStart) {
// 单击测量也保存起终点,避免重绘时被尚未更新的原点坐标覆盖。
pData->setStartPoint(pStart);
pData->setEndPoint(pEnd);
} else {
pData->setCurrentPoint(pStart);
}
pData->setCurrentPoint(pEnd == pStart ? pStart : QPointF(0, 0));
nmDataAttribute lenAttr = pData->getLength();
lenAttr.setValue(dLength);
pData->setLength(lenAttr);

@ -83,6 +83,12 @@ void nmWxMeasureDlg::initComponents() {
void nmWxMeasureDlg::onFitStartClicked()
{
// 使用当前井列表;没有可拟合的井时保留测量点,避免写入默认原点。
m_vecWellList = nmDataAnalyzeManager::getCurrentInstance()->getWellDataList();
if (m_vecWellList.isEmpty()) {
return;
}
m_pFitStartButton->setEnabled(false);
// 先取出当前点
@ -131,9 +137,9 @@ void nmWxMeasureDlg::onFitStartClicked()
nearest = pt;
}
}
// 更新起点和终点
m_pData->setStartPoint(startPt);
m_pData->setEndPoint(nearest);
// 单点测量先拟合起点时,将起点移到井上,终点保留在点击位置。
m_pData->setStartPoint(nearest);
m_pData->setEndPoint(startPt);
// 重新计算长度
double newLen = QLineF(startPt, nearest).length();
@ -148,6 +154,12 @@ void nmWxMeasureDlg::onFitStartClicked()
void nmWxMeasureDlg::onFitEndClicked()
{
// 使用当前井列表;没有可拟合的井时保留测量点,避免写入默认原点。
m_vecWellList = nmDataAnalyzeManager::getCurrentInstance()->getWellDataList();
if (m_vecWellList.isEmpty()) {
return;
}
m_pFitEndButton->setEnabled(false);
// 先取出当前点

Loading…
Cancel
Save