Помогите повернуть QGraphicsItem на курсор мыши.
Есть QGraphicsScene (-200, -200, 400, 400) c одним QGraphicsItem который произвольно перемещается по сцене.
Я так понимаю мне необходимо посчитать угол между прямыми для разворота QGraphicsItem.
А вот формулу для расчета угла подобрать я так и не смог.
Сделал только в полярной системе координат разворот обьекта если он находится в (0,0), а надо чтоб в любом месте сцены!
Вот код:
C++ (Qt)
qreal x = ePoint.x(); // cursor pos X
qreal y = ePoint.y(); // cursor pos Y
qreal angel;
qreal p = sqrt((x*x)+(y*y));
// qreal p = sqrt(pow(x,2)+pow(y,2));
qreal a = 57.295779513 * atan(y/x);
qreal b = 57.295779513 * asin(y/p);
if(a > 0 && b > 0){
angel = a;
}else if(a > 0 && b < 0){
angel = 180 + a;
}else if(a < 0 && b > 0){
angel = 180 - b;
}else if(a < 0 && b < 0){
angel = 360 + a;
}
angel += 90;
// qDebug()<<"a: "<<a;
// qDebug()<<"b: "<<b;
qDebug()<<"angel: "<<angel;
item->setRotation(angel);