QPolygonF und containsPoint
Verfasst: 27. Februar 2009 16:57
Hallo,
ich habe ein Problem mit der o.g.Klasse und dessen Membermethode.In meinem Code werden sehr viele gezeichnet. Dazu kapsele ich die Polygone in einer Klasse:
In der Qt-Doku steht, dass der erste und der letzte Punkt von QPolygonF implizit verbunden sind (da QPolygonF ja nur eine Ableitung von QVector< QPointF > ist):
Hintergrund: Ich versuche,die Methode bool QPolygonF::containsPoint ( const QPointF & point, Qt::FillRule fillRule ) const mit der Standard-Fill-Rule Qt::OddEvenFill aufzurufen, dabei scheint mein Programm aber abzustürzen
Bin für jeden Hinweis dankbar, die Qt-Doku ist an dieser Stelle bestenfalls missverständlich
P.S. Ist es abhängig davon, ob das Polygon konvex ist?
AlGaN
ich habe ein Problem mit der o.g.Klasse und dessen Membermethode.In meinem Code werden sehr viele gezeichnet. Dazu kapsele ich die Polygone in einer Klasse:
Code: Alles auswählen
class Polygon
{
public:
Polygon( Item* parent = 0);
[...]
void dump() const;
private:
QPolygonF mPolygon;
Testweise habe ich mal für jedes QPolygonF die Methode isClosed() aufgerufen und erhalte immmer false, auch wenn es sich bei dem Polygon um ein einfaches Rechteck mit vier QPointF's handelt - eigentlich müsste Qt doch selbst dafür sorgen, dass das QPolygonF geschlossen ist, welchen Sinn macht sonst die Angabe mit der impliziten Verkettung von 1. und letztem Punkt im QVector<QPointF> ? Ist es nicht so, dass ein Polygon per definitionem geschlossen ist,ansonsten wäre es ja eine Polyline...void QPainter::drawPolygon ( const QPointF * points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill )
Draws the polygon defined by the first pointCount points in the array points using the current pen and brush.
The first point is implicitly connected to the last point, and the polygon is filled with the current brush().
Hintergrund: Ich versuche,die Methode bool QPolygonF::containsPoint ( const QPointF & point, Qt::FillRule fillRule ) const mit der Standard-Fill-Rule Qt::OddEvenFill aufzurufen, dabei scheint mein Programm aber abzustürzen
Bin für jeden Hinweis dankbar, die Qt-Doku ist an dieser Stelle bestenfalls missverständlich
P.S. Ist es abhängig davon, ob das Polygon konvex ist?
AlGaN