As I hold the mouse button down and move the vector around it's p1 anchor point, the grey image I am trying to draw sometimes shows up and when it dies, it is a partial draw.

No i am not calling update().

Qt Code:
  1. void PhysGraphicsScene::drawBackground(QPainter *painter, const QRectF &rect) {
  2. Q_UNUSED(rect);
  3.  
  4. QMatrix mtx;
  5. int w_2 = width() / 2;
  6. int h_2 = height() / 2;
  7.  
  8. painter -> setPen(Qt::blue);
  9. painter -> drawLine(0, h_2, width(), h_2); // X-Axis
  10. painter -> drawLine(w_2, 0 , w_2, height()); // Y-Axis
  11.  
  12. mtx.translate(w_2, h_2);
  13. mtx.scale(1, -1);
  14.  
  15. painter -> setMatrix(mtx);
  16. painter -> setPen(Qt::NoPen);
  17. painter -> setBrush(QBrush(Qt::blue, Qt::Dense4Pattern));
  18. painter -> drawRect(-10, -10, 20, 20);
  19.  
  20. QLineF y_axis(-10, -10, -10, 10);
  21. QLineF x_axis(-10, -10, 10, -10);
  22. QPen pen;
  23. QLineF angleLine1, angleLine2;
  24.  
  25. pen.setWidth(2);
  26. pen.setColor(Qt::red);
  27. painter -> setPen(pen);
  28.  
  29. setupAngleLine(angleLine1, x_axis.p2(), x_axis.p1(), 135.0);
  30. setupAngleLine(angleLine2, x_axis.p2(), x_axis.p1(), -135.0);
  31. painter -> drawLine(x_axis); // X-Axis
  32. painter -> drawLine(angleLine1);
  33. painter -> drawLine(angleLine2);
  34.  
  35. pen.setColor(Qt::green);
  36. setupAngleLine(angleLine1, y_axis.p2(), y_axis.p1(), 45.0);
  37. setupAngleLine(angleLine2, y_axis.p2(), y_axis.p1(), 135.0);
  38. painter -> setPen(pen);
  39. painter -> drawLine(y_axis); // Y-Axis
  40. painter -> drawLine(angleLine1);
  41. painter -> drawLine(angleLine2);
  42.  
  43. if (m_Mode == InsertLine && m_pLine)
  44. drawAngledPlane(painter);
  45. }
  46.  
  47. void PhysGraphicsScene::drawAngledPlane(QPainter *painter) {
  48. QPointF lineMidPoint = findLineMidPoint(m_pLine ->line());
  49. QRectF lineRect(m_pLine ->line().p1(), m_pLine ->line().p2());
  50.  
  51. // Draw the temporary cartesian axis' origin'ed at p1 of the line
  52. QPen pen(Qt::lightGray);
  53. pen.setStyle(Qt::DashDotDotLine);
  54. pen.setWidth(2);
  55. painter ->setPen(pen);
  56. QLineF xAxis, yAxis;
  57. xAxis.setAngle(90);
  58. xAxis.setP1(m_pLine ->line().p1()); xAxis.setP2(QPointF(m_pLine ->line().dx(), 0));
  59. xAxis.setLength(m_pLine ->line().dx());
  60.  
  61. yAxis.setAngle(0);
  62. yAxis.setLength(m_pLine ->line().dy());
  63.  
  64. painter -> drawLine(xAxis); // x-axis
  65. painter -> drawLine(yAxis); // y-axis
  66.  
  67.  
  68. // Draw the arc from the false cartesian axis to the line
  69. double angle = m_pLine ->line().angle();
  70. }
To copy to clipboard, switch view to plain text mode