Ich lade das Projekt einfach mal hoch.
QGraphicsScene, QGraphicsView, QGraphicsItem, Hilfe?
Ok, ich habe es jetzt so gemacht, dass ich den besagten Winkel eintrage. Das funktioniert wunderbar, nun habe ich testweise verschiedene Fenstergrößen probiert, und nun dreht sich der Pfeil unterschiedlich schnell
. Der Winkel ist doch aber eigentlich unabhängig von der Fenstergröße?!
Ich lade das Projekt einfach mal hoch.
Ich lade das Projekt einfach mal hoch.
- Dateianhänge
-
- QGraphics.7z
- (1.42 KiB) 137-mal heruntergeladen
Code: Alles auswählen
direction->setTransformOriginPoint(direction->boundingRect().width()/2,direction->boundingRect().height()/2);Code: Alles auswählen
direction->setTransformOriginPoint(direction->boundingRect().center());Die 100Hz braucht es auch nicht, flüssig ist es auch mit 25/30 Hz:
Code: Alles auswählen
timer->start(1000/30);Klar gibt es mit ner Timereinstellung ne Änderung in der Drehgeschwindigkeit. Oder versteh ich dich jetzt komplett verkehrt?t_b hat geschrieben:mit meiner Timer einstellung gab es diese Unterschiede, mit der vorgeschlagenen Änderung hab ich keine "sichtbaren" Unterschiede.
Versuch mal folgendes zum experimentieren:
Code: Alles auswählen
const int framesPerSec = 30; // Hier Frames pro Sekunde (=Hertz) einsetellen
const int updateInterval = 1000/framesPerSec;
const double rotPerSec = 0.5; // Hier Umdrehungen pro Sekunde regeln
const double addAngle = rotPerSec*360.0/framesPerSec;
GraphicsWidget::GraphicsWidget(QWidget *parent) :
QWidget(parent)
{
///// [...]
timer->start(updateInterval);
////
}
void GraphicsWidget::rotate()
{
if (angle >= 360) {
angle = 0;
} else
{
angle += addAngle;
}
direction->setRotation(angle);
// das scene->update(); view->update() sind total überflüssig und kosten nur Rechenzeit ;)
}