本文整理汇总了C++中QwtPlotMarker::xAxis方法的典型用法代码示例。如果您正苦于以下问题:C++ QwtPlotMarker::xAxis方法的具体用法?C++ QwtPlotMarker::xAxis怎么用?C++ QwtPlotMarker::xAxis使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QwtPlotMarker
的用法示例。
在下文中一共展示了QwtPlotMarker::xAxis方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: drawCanvas
//! Redraw grid, curves, and markers. The draw code
// does not clear clipRegion prior to painting.
// \param p painter used for drawing
void QwtPlot::drawCanvas(QPainter *p)
{
QwtDiMap map[axisCnt];
for ( int axis = 0; axis < axisCnt; axis++ )
map[axis] = canvasMap(axis);
QRect rect = d_canvas->contentsRect();
//
// draw grid
//
if ( d_grid.enabled() &&
axisEnabled( d_grid.xAxis() ) &&
axisEnabled( d_grid.yAxis() ) )
{
d_grid.draw(p, rect, map[d_grid.xAxis()], map[d_grid.yAxis()]);
}
//
// draw curves
//
QIntDictIterator<QwtPlotCurve> itc(*d_curves);
for (QwtPlotCurve *curve = itc.toFirst(); curve != 0; curve = ++itc )
{
if ( curve->enabled() &&
axisEnabled( curve->xAxis() ) &&
axisEnabled( curve->yAxis() ) )
{
curve->draw(p, map[curve->xAxis()], map[curve->yAxis()]);
}
}
//
// draw markers
//
QIntDictIterator<QwtPlotMarker> itm(*d_markers);
for (QwtPlotMarker *marker = itm.toFirst(); marker != 0; marker = ++itm )
{
if ( marker->enabled() && axisEnabled( marker->xAxis() ) &&
axisEnabled( marker->yAxis() ) )
{
marker->draw(p,
map[marker->xAxis()].transform(marker->xValue()),
map[marker->yAxis()].transform(marker->yValue()),
rect);
}
}
}
示例2: select
// Select the point at a position.
void XtalOptPlot::select(const QPoint& pos)
{
QwtPlotMarker* selection = nullptr;
// Must be within 10 pixels at least
double dist = 10.0;
const QwtPlotItemList& itmList = itemList();
for (QwtPlotItemIterator it = itmList.begin(); it != itmList.end(); ++it) {
if ((*it)->rtti() == QwtPlotItem::Rtti_PlotMarker) {
QwtPlotMarker* m = static_cast<QwtPlotMarker*>(*it);
// We have to map the plot coordinates onto widget coordinates before
// comparing
const QwtScaleMap& xMap = canvasMap(m->xAxis());
const QwtScaleMap& yMap = canvasMap(m->yAxis());
double mx = xMap.transform(m->xValue());
double my = yMap.transform(m->yValue());
double d = distance(QPointF(mx, my), pos);
if (d < dist) {
selection = m;
dist = d;
}
}
}
selectMarker(selection);
}
示例3: markerXAxis
/*!
\return the x axis to which a marker is attached
\param key Marker key
*/
int QwtPlot::markerXAxis(long key) const
{
QwtPlotMarker *m = d_markers->find(key);
if (m)
return m->xAxis();
else
return -1;
}
示例4: drawCanvasItems
void QwtPlot::drawCanvasItems(QPainter *painter, const QRect &rect,
const QwtArray<QwtDiMap> &map, const QwtPlotPrintFilter &pfilter) const
{
//
// draw grid
//
if ( pfilter.options() & QwtPlotPrintFilter::PrintGrid )
{
if ( d_grid->enabled() )
{
d_grid->draw(painter, rect,
map[d_grid->xAxis()], map[d_grid->yAxis()]);
}
}
//
// draw curves
//
QwtPlotCurveIterator itc = curveIterator();
for (QwtPlotCurve *curve = itc.toFirst(); curve != 0; curve = ++itc )
{
if ( curve->enabled() )
{
curve->draw(painter,
map[curve->xAxis()], map[curve->yAxis()]);
}
}
//
// draw markers
//
QwtPlotMarkerIterator itm = markerIterator();
for (QwtPlotMarker *marker = itm.toFirst(); marker != 0; marker = ++itm )
{
if ( marker->enabled() )
{
marker->draw(painter,
map[marker->xAxis()].transform(marker->xValue()),
map[marker->yAxis()].transform(marker->yValue()),
rect);
}
}
}
示例5: closestMarker
/*!
\brief Find the marker which is closest to a given point.
\param xpos
\param ypos coordinates of a point in the plotting region
\retval dist Distance in points between the marker and the specified point.
\return Key of the closest marker or 0 if no marker was found
*/
long QwtPlot::closestMarker(int xpos, int ypos, int &dist) const
{
QwtDiMap map[axisCnt];
for ( int axis = 0; axis < axisCnt; axis++ )
map[axis] = canvasMap(axis);
long rv = 0;
double dmin = 1.0e10;
QwtPlotMarkerIterator itm = markerIterator();
for (QwtPlotMarker *m = itm.toFirst(); m != 0; m = ++itm )
{
double cx = map[m->xAxis()].xTransform(m->xValue());
double cy = map[m->yAxis()].xTransform(m->yValue());
if (m->lineStyle() == QwtMarker::HLine)
{
if (m->symbol().style() == QwtSymbol::None)
cx = double(xpos);
}
else if (m->lineStyle() == QwtMarker::VLine)
{
if (m->symbol().style() == QwtSymbol::None)
cy = double(ypos);
}
double f = qwtSqr(cx - double(xpos)) + qwtSqr(cy - double(ypos));
if (f < dmin)
{
dmin = f;
rv = itm.currentKey();
}
}
dist = int(sqrt(dmin));
return rv;
}