rock_widget_collection  0.1
ArrowItem.cc
Go to the documentation of this file.
1 /*
2  * File: ArrowItem.cc
3  * Author: blueck
4  *
5  * Created on 30. Juni 2010, 10:41
6  */
7 
8 #include "ArrowItem.h"
9 
10 ArrowItem::ArrowItem(int posX, int posY, int groupNr, const QColor &color, int endX, int endY)
11  :FillItem(posX, posY, groupNr, color),endX(endX),endY(endY)
12 {
13 
14 }
15 
17 {
18 }
19 
20 void ArrowItem::draw(QPainter* painter,QRectF &source,QRectF &target)
21 {
22  FillItem::draw(painter,source,target);
23  QPen pen = painter->pen();
24  painter->drawLine(posX, posY, endX, endY);
25  double arrowWidth = 10 + (2*lineWidth);
26  double deltaX = endX - posX;
27  double deltaY = endY - posY;
28  double xLength = pow(deltaX, 2);
29  double yLength = pow(deltaY, 2);
30  double total = sqrt(xLength + yLength);
31  double sumX = arrowWidth*(-deltaY/total);
32  double sumY = arrowWidth*(deltaX/total);
33  QPoint* points = new QPoint[3];
34  points[0] = QPoint(endX - sumX, endY - sumY);
35  points[1] = QPoint(endX + sumX, endY + sumY);
36  points[2] = QPoint(endX + arrowWidth*(deltaX/total), endY + arrowWidth*(deltaY/total));
37  painter->drawPolygon(points, 3);
38 }
39 
ArrowItem(int posX, int posY, int groupNr, const QColor &color, int endX, int endY)
Definition: ArrowItem.cc:10
virtual ~ArrowItem()
Definition: ArrowItem.cc:16
int posY
Definition: DrawItem.h:182
int posX
Definition: DrawItem.h:180
void draw(QPainter *painter, QRectF &source, QRectF &target)
Definition: ArrowItem.cc:20
int lineWidth
Definition: DrawItem.h:186
void draw(QPainter *painter, QRectF &source, QRectF &target)
Definition: FillItem.cc:26