drawobject.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #ifndef DRAWOBJECT_H
  2. #define DRAWOBJECT_H
  3. #include <QObject>
  4. #include <QPainter>
  5. #include <math.h>
  6. #include <QtMath>
  7. #include <QDebug>
  8. class DrawObject : public QObject
  9. {
  10. Q_OBJECT
  11. public:
  12. explicit DrawObject(QObject* parent = nullptr);
  13. void reSetPoints(QPoint& pt1, QPoint& pt2);
  14. int pointsXDistance(QPoint& pt1, QPoint& pt2);
  15. int pointsYDistance(QPoint& pt1, QPoint& pt2);
  16. int distance(QPoint pt1, QPoint pt2);
  17. double distanced(QPoint pt1, QPoint pt2);
  18. void drawRect(QPainter& painter, QPoint& pt1, QPoint& pt2);
  19. void drawRect(QPainter& painter, int startX, int startY, QRect rc);
  20. void drawRect(QPainter& painter, int startX, int startY, QPoint center, int width, int height);
  21. void drawPixmap(QPainter& painter, int startX, int startY, QRect rc, QPixmap& pix);
  22. void drawPixmap(QPainter& painter, int startX, int startY, QPoint center, int width, int height, QPixmap& pix);
  23. void drawPixmap(QPainter& painter, double angle, int startX, int startY, QPoint center, int width, int height, QPixmap& pix);
  24. void drawLine(QPainter& painter, int startX, int startY, QPoint pt1, QPoint pt2);
  25. bool pointInLine(QPoint pt1, QPoint pt2, QPoint pt);
  26. void drawStraightLine(QPainter& painter, QPoint& pt1, QPoint pt2);
  27. QPoint getStraightLineEndPoint(QPoint& pt1, QPoint pt2);
  28. QPoint getTwoPointsCenter(QPoint& pt1, QPoint pt2);
  29. bool rectContainsPoint(int startX, int startY, QRect& rc, QPoint& pt);
  30. bool pointInLine(int startX, int startY, QPoint pt1, QPoint pt2, QPoint& pt);
  31. bool pointInLined(int startX, int startY, QPoint pt1, QPoint pt2, QPoint& pt);
  32. int rectAreaSize(QRect& rect);
  33. void resetRect(QRect& rc, QPoint center, int width, int height);
  34. double radianToAngle(double d);
  35. double angleToRadian(double d);
  36. QRect getRect(QPoint pt1, QPoint pt2);
  37. double getLineRadian(QPoint pt1, QPoint pt2);
  38. double getLineAngle(QPoint pt1, QPoint pt2);
  39. signals:
  40. private:
  41. };
  42. #endif // DRAWOBJECT_H