#include <qwt_polar_curve.h>
class QwtPolarCurveJamming : public QwtPolarCurve
{
protected:
const QPointF &pole,
int from,
int to
) const;
};
#include <qwt_polar_curve.h>
class QwtPolarCurveJamming : public QwtPolarCurve
{
protected:
void drawLines( QPainter *,
const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
const QPointF &pole, int from, int to ) const;
};
To copy to clipboard, switch view to plain text mode
#include "qwt_polar_curve.h"
#include "qwt_polar.h"
#include <qwt_painter.h>
#include <qwt_scale_map.h>
#include <qwt_math.h>
#include <qwt_symbol.h>
#include <qwt_legend.h>
#include <qwt_curve_fitter.h>
#include <qwt_clipper.h>
#include <qpainter.h>
#include "QwtPolarCurveJamming.h"
static inline bool qwtInsidePole
( const QwtScaleMap &map,
double radius
) {
return map.isInverting() ? ( radius > map.s1() ) : ( radius < map.s1() );
}
void QwtPolarCurveJamming
::drawLines( QPainter *painter,
const QPointF &pole,
int from,
int to
) const {
int size = to - from + 1;
if ( size <= 0 )
return;
polyline.resize( size );
QPointF *polylineData
= polyline.
data();
for ( int i = from; i <= to; i++ )
{
QwtPointPolar point = sample( i );
if ( !qwtInsidePole( radialMap, point.radius() ) )
{
double r = radialMap.transform( point.radius() );
const double a = azimuthMap.transform( point.azimuth() );
polylineData[i - from] = qwtPolar2Pos( pole, r, a );
}
else
{
polylineData[i - from] = pole;
}
}
/*QRectF clipRect;
if ( painter->hasClipping() )
clipRect = painter->clipRegion().boundingRect();
else
{
clipRect = painter->window();
if ( !clipRect.isEmpty() )
clipRect = painter->transform().inverted().mapRect( clipRect );
}
if ( !clipRect.isEmpty() )
{
double off = qCeil( qMax( qreal( 1.0 ), painter->pen().widthF() ) );
clipRect = clipRect.toRect().adjusted( -off, -off, off, off );
polyline = QwtClipper::clipPolygonF( clipRect, polyline );
}*/
painter
->setBrush
(QBrush(Qt
::red));
painter->setPen(Qt::red);
// painter->drawPolygon(polyline);
// QwtPainter::fillRect(painter, polyline.boundingRect(), QBrush(Qt::red));
// QwtPainter::drawPolyline( painter, polyline );
// painter->drawPolyline( polyline );
}
#include "qwt_polar_curve.h"
#include "qwt_polar.h"
#include <qwt_painter.h>
#include <qwt_scale_map.h>
#include <qwt_math.h>
#include <qwt_symbol.h>
#include <qwt_legend.h>
#include <qwt_curve_fitter.h>
#include <qwt_clipper.h>
#include <qpainter.h>
#include "QwtPolarCurveJamming.h"
static inline bool qwtInsidePole( const QwtScaleMap &map, double radius )
{
return map.isInverting() ? ( radius > map.s1() ) : ( radius < map.s1() );
}
void QwtPolarCurveJamming::drawLines( QPainter *painter,
const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap,
const QPointF &pole, int from, int to ) const
{
int size = to - from + 1;
if ( size <= 0 )
return;
QPolygonF polyline;
polyline.resize( size );
QPointF *polylineData = polyline.data();
for ( int i = from; i <= to; i++ )
{
QwtPointPolar point = sample( i );
if ( !qwtInsidePole( radialMap, point.radius() ) )
{
double r = radialMap.transform( point.radius() );
const double a = azimuthMap.transform( point.azimuth() );
polylineData[i - from] = qwtPolar2Pos( pole, r, a );
}
else
{
polylineData[i - from] = pole;
}
}
/*QRectF clipRect;
if ( painter->hasClipping() )
clipRect = painter->clipRegion().boundingRect();
else
{
clipRect = painter->window();
if ( !clipRect.isEmpty() )
clipRect = painter->transform().inverted().mapRect( clipRect );
}
if ( !clipRect.isEmpty() )
{
double off = qCeil( qMax( qreal( 1.0 ), painter->pen().widthF() ) );
clipRect = clipRect.toRect().adjusted( -off, -off, off, off );
polyline = QwtClipper::clipPolygonF( clipRect, polyline );
}*/
painter->setBrush(QBrush(Qt::red));
painter->setPen(Qt::red);
// painter->drawPolygon(polyline);
// QwtPainter::fillRect(painter, polyline.boundingRect(), QBrush(Qt::red));
QwtPainter::drawPolygon(painter, polyline);
// QwtPainter::drawPolyline( painter, polyline );
// painter->drawPolyline( polyline );
}
To copy to clipboard, switch view to plain text mode
Bookmarks