Hello,
Let's say i have curve with coordinates (x, y)(1, 1) (2, 1) (3, 1) and a marker. I want to get more x points for my marker to snap on when i move it with mouse. In other words i want my marker to snap to 1.1 , 1.2 , 1.3 x coordinates( now it only snaps to 1, 2 ,3).
Code snippet of how i move my marker:
marker->attach(tracePlot);
picker->setStateMachine(pickerMachine);
connect(picker, &QwtPicker::moved, this, &Widget::moveMarker);
void Widget
::moveMarker(QPoint actualMousePosition
) {
if(!flagZoom)
{
int x = curve->closestPoint(actualMousePosition, NULL);
QPointF position
= curve
->sample
(x
);
marker->setValue(position);
temp
= QString::number(marker
->xValue
());
label.setText(temp);
marker->setLabel(label);
}
tracePlot->replot();
}
marker->setLineStyle(QwtPlotMarker::VLine);
marker->attach(tracePlot);
picker = new QwtPlotPicker(tracePlot->xBottom, tracePlot->yLeft, QwtPicker::NoRubberBand,
QwtPicker::AlwaysOff, tracePlot->canvas());
pickerMachine = new QwtPickerDragPointMachine();
picker->setStateMachine(pickerMachine);
connect(picker, &QwtPicker::moved, this, &Widget::moveMarker);
void Widget::moveMarker(QPoint actualMousePosition)
{
if(!flagZoom)
{
QwtText label;
QString temp;
int x = curve->closestPoint(actualMousePosition, NULL);
QPointF position = curve->sample(x);
marker->setValue(position);
temp = QString::number(marker->xValue());
label.setText(temp);
marker->setLabel(label);
}
tracePlot->replot();
}
To copy to clipboard, switch view to plain text mode
From what i know marker moves between curve vector indexes because
curve->closestPoint(actualMousePosition, NULL);
curve->closestPoint(actualMousePosition, NULL);
To copy to clipboard, switch view to plain text mode
returns index of my data vector. So even tho i could use a fitter and get my curve interpolated my marker still would not move between those interpolated points only indexes. Does qwt have data interpolation methods? Or is there a way to move my marker differently? What's the best approach here?
Bookmarks