2
"ScaleAnimation"을 내포하는 적절한 방법을 찾고있었습니다. 내 목적은 QImage 애니메이션을하는 것입니다QGraphicsItemAnimation에서의 스케일링
timeline = new QTimeLine(time);
timeline->setFrameRange(0, 100);
animation = new QGraphicsItemAnimation;
QRectF rect = item->boundingRect();
int h = rect.bottom() - rect.top();
int w = rect.right() - rect.left();
animation->setItem(item);
animation->setTimeLine(timeline);
for (int i = 0; i < 100; i++) {
int x = w + (int)((float)w*(float)(i/100.0));
qreal xx = (qreal)(x)/(qreal)w;
int y = (h) + (int)((float)h*(float)(i/100.0));
qreal yy = (qreal)(y)/(qreal)h;
animation->setScaleAt(i/100, xx, yy);
}
이 작동하는 것 같다하지만 애니메이션의 기원은 (0, 0)
것 같다. (w/2, h/2)
에 애니메이션을 적용 할 수있는 방법이 있습니까? 애니메이션을 재 작성하는 데 더 효과적이고 (또는 올바른) 방법이 있습니까? 나는 Qt 세계에서 뉴비를 그만 뒀다.
양해 해 주셔서 감사합니다.
사실이 아닙니다. 애니메이션이 적용되는 지점이 아닌 항목을 이동합니다. – Blackbelt
시도해 보셨습니까? 애니메이션은 위치 (0,0) 주위로 비례합니다. 0,0이 가운데에 오게되면 괜찮을 것입니다. 그냥 밖으로 시도하고 볼 수 있습니다. –
예. 내 센터가 w/2, h/2입니다. – Blackbelt