74 lines
1.2 KiB
C++
74 lines
1.2 KiB
C++
#include "graphicscrossitem.h"
|
|
|
|
graphicsCrossItem::graphicsCrossItem(qreal px, qreal py)
|
|
{
|
|
x = px;
|
|
y = py;
|
|
dim=3;
|
|
col = QColor(Qt::lightGray);
|
|
scIndex=1;
|
|
|
|
}
|
|
|
|
QRectF graphicsCrossItem::boundingRect() const
|
|
{
|
|
qreal d = dim*scIndex;
|
|
|
|
return QRectF(x-d, y-d, 2*d, 2*d);
|
|
}
|
|
|
|
|
|
void graphicsCrossItem::setColor(QColor c)
|
|
{
|
|
if (col!=c) {
|
|
prepareGeometryChange();
|
|
col = c;
|
|
}
|
|
}
|
|
|
|
void graphicsCrossItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
|
|
{
|
|
qreal d = dim*scIndex;
|
|
painter->setPen(QPen(col));
|
|
QPointF p1(x-d, y-d);
|
|
QPointF p2(x+d, y+d);
|
|
QPointF p3(x-d, y+d);
|
|
QPointF p4(x+d, y-d);
|
|
|
|
painter->drawLine(p1, p2);
|
|
painter->drawLine(p3, p4);
|
|
|
|
}
|
|
|
|
void graphicsCrossItem::setPos(QPointF p)
|
|
{
|
|
qreal px, py;
|
|
px= p.x(); py= p.y();
|
|
|
|
if ((x!=px)||(y!=py) ) {
|
|
prepareGeometryChange();
|
|
x=px; y=py;
|
|
}
|
|
}
|
|
|
|
void graphicsCrossItem::setPosPolar(qreal d, qreal a)
|
|
{
|
|
if (d>0)
|
|
{
|
|
setPos(cos((90-a)/180*M_PI)*d, -sin((90-a)/180*M_PI)*d);
|
|
}
|
|
else
|
|
{
|
|
setPos(0,0);
|
|
}
|
|
}
|
|
|
|
void graphicsCrossItem::setScaleIndex(qreal s)
|
|
{
|
|
if (scIndex!=s){
|
|
prepareGeometryChange();
|
|
scIndex=s;
|
|
}
|
|
|
|
}
|