84void QArrow::paint(QPainter* painter,
const QStyleOptionGraphicsItem* option,
92 double theta = atan(ddeltaY / ddeltaX);
93 double theta2 = (ddeltaX < 0.0) ? (theta +
PI) : theta;
94 int lengthdeltaX = -
static_cast<int>(cos(theta2) *
_headLength);
95 int lengthdeltaY = -
static_cast<int>(sin(theta2) *
_headLength);
96 auto widthdeltaX =
static_cast<int>(sin(theta2) *
_headWidth);
97 auto widthdeltaY =
static_cast<int>(cos(theta2) *
_headWidth);
98 auto deltaX =
static_cast<int>(ddeltaX);
99 auto deltaY =
static_cast<int>(ddeltaY);
101 painter->drawLine(0, 0, deltaX, deltaY);
102 painter->drawLine(deltaX,
104 deltaX + lengthdeltaX + widthdeltaX,
105 deltaY + lengthdeltaY - widthdeltaY);
106 painter->drawLine(deltaX,
108 deltaX + lengthdeltaX - widthdeltaX,
109 deltaY + lengthdeltaY + widthdeltaY);
QArrow(qreal l, qreal a, qreal hl, qreal hw, QPen &pen, QGraphicsItem *parent=nullptr)