Происходит бесконечное вращение объекта
нужно вращать объект. Я пробовал вращать таким образом, но вращение происходит бесконечно, а нужно, чтобы доходило до угла в 45 градусов, а затем вращалось в обратную сторону. Может увидете, где ошибка?
static int angle = 0;
int step = 1;
QPoint p0(600, 500);
QTransform t;
t.translate(p0.x(),p0.y());
t.rotate(angle-step);
step++;
if (step == 45) {
step = -1;
t.rotate(angle-step);
step--;
}
else
{
t.rotate(angle-step);
step++;
}
t.translate(-p0.x(),-p0.y());
carPainter.setTransform(t);
Ответы (1 шт):
Автор решения: eri
→ Ссылка
У вас какой-то странный код в плане переменной step. Вы её переписываете
step++ два раза - поэтому крутится в одну сторону. если убрать лишний раз, то оно бы начало дергаться на 44-55.
установи начально переменную step=1. при переходе через 45 и 0 step=-step. безусловно angle+=step и t.setRotation(angle) будет шагать и туда и обратно.