From 4f96e24ee2a73cd2b2daf8a7005a5960ce6d40ae Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Mon, 22 Nov 2010 11:01:33 +0100 Subject: [PATCH 1/1] Add methods drawTriangle and fillTriangle. --- DrawingWindow.cpp | 41 +++++++++++++++++++++++++++++++++++++++++ DrawingWindow.h | 2 ++ 2 files changed, 43 insertions(+) diff --git a/DrawingWindow.cpp b/DrawingWindow.cpp index ae740b7..2ad01de 100644 --- a/DrawingWindow.cpp +++ b/DrawingWindow.cpp @@ -473,6 +473,47 @@ void DrawingWindow::fillCircle(int x, int y, int r) painter->setBrush(Qt::NoBrush); } +//! Dessine un triangle. +/*! + * Dessine un triangle défini par les coordonnées de ses sommets: + * (x1, y1), (x2, y2) et (x3, y3). Utilise la couleur de dessin + * courante. + * + * \param x1, y1 coordonnées du premier sommet du triangle + * \param x2, y2 coordonnées du deuxième sommet du triangle + * \param x3, y3 coordonnées du troisième sommet du triangle + * + * \see fillTriangle, setColor + */ +void DrawingWindow::drawTriangle(int x1, int y1, int x2, int y2, int x3, int y3) +{ + QPolygon poly(3); + poly.putPoints(0, 3, x1, y1, x2, y2, x3, y3); + safeLock(imageMutex); + painter->drawConvexPolygon(poly); + dirty(poly.boundingRect()); + safeUnlock(imageMutex); +} + +//! Dessine un trianle plein. +/*! + * Dessine un triangle plein défini par les coordonnées de ses + * sommets: (x1, y1), (x2, y2) et (x3, y3). Utilise la couleur de + * dessin courante. + * + * \param x1, y1 coordonnées du premier sommet du triangle + * \param x2, y2 coordonnées du deuxième sommet du triangle + * \param x3, y3 coordonnées du troisième sommet du triangle + * + * \see drawTriangle, setColor + */ +void DrawingWindow::fillTriangle(int x1, int y1, int x2, int y2, int x3, int y3) +{ + painter->setBrush(getColor()); + drawTriangle(x1, y1, x2, y2, x3, y3); + painter->setBrush(Qt::NoBrush); +} + //! Écrit du texte. /*! * Écrit le texte text, aux coordonnées (x, y) et avec les paramètres diff --git a/DrawingWindow.h b/DrawingWindow.h index 4e96105..524a3c8 100644 --- a/DrawingWindow.h +++ b/DrawingWindow.h @@ -51,6 +51,8 @@ public: void fillRect(int x1, int y1, int x2, int y2); void drawCircle(int x, int y, int r); void fillCircle(int x, int y, int r); + void drawTriangle(int x1, int y1, int x2, int y2, int x3, int y3); + void fillTriangle(int x1, int y1, int x2, int y2, int x3, int y3); void drawText(int x, int y, const char *text, int flags = 0); void drawTextBg(int x, int y, const char *text, int flags = 0); -- 2.20.1