Hi,
Problem "Gradzahl". Ich berechne bereits (wie ich finde) sehr umständlich und zeitintensiv den Einheitsvektor, bzw. den Richtungslaufvektor der Objekte per
(Selbstverständlich berechne ich in echt das Ergebniss der Wurzel nur einmal)
Kostet jedoch fast genau stolze 300Nanosekunden pro Berechnung auf meinem i5.
Jetzt kommt OpenGL daher und will von mir jetzt aber die Gradzahl um die Richtung des Objektes auch visualisieren zu können.
Also opengl.glRotatef( grad, x, y, z );
Das heißt ich muss nochmal umrechnen per Sinus und Cosinus. Das kostet nochmal ein paar Nanosekunden mehr.
Sinn der Sache ist es, wenn ich das Programm/Spiel/Simulation auf meinem Handy laufen lasse, wird es relativ schnell warm und verliert auch an Batteriepower.
Deshalb versuche ich irgendwie die Berechnungen zu optimieren, klein aber fein eben.
Also im Grundegenommen lautet die Frage: Was mach ich falsch? Gibt es bessere Lösungsansätze/Berechnungen. Oder kann man OpenGL direkt den Drehvektor übergeben?
Ich finde für dieses Problem einfach keine Lösung, weder Internet noch Hirn.jar spuckt Ergebnisse aus.
Vielen Dank
Gruß
Net
Problem "Gradzahl". Ich berechne bereits (wie ich finde) sehr umständlich und zeitintensiv den Einheitsvektor, bzw. den Richtungslaufvektor der Objekte per
Java:
vx = streckex1x2 / Math.sqrt( streckex1x2 * streckex1x2 + streckey1y2 * streckey1y2 );
vy = streckey1y2 / Math.sqrt( streckex1x2 * streckex1x2 + streckey1y2 * streckey1y2 );
Kostet jedoch fast genau stolze 300Nanosekunden pro Berechnung auf meinem i5.
Jetzt kommt OpenGL daher und will von mir jetzt aber die Gradzahl um die Richtung des Objektes auch visualisieren zu können.
Also opengl.glRotatef( grad, x, y, z );
Das heißt ich muss nochmal umrechnen per Sinus und Cosinus. Das kostet nochmal ein paar Nanosekunden mehr.
Sinn der Sache ist es, wenn ich das Programm/Spiel/Simulation auf meinem Handy laufen lasse, wird es relativ schnell warm und verliert auch an Batteriepower.
Deshalb versuche ich irgendwie die Berechnungen zu optimieren, klein aber fein eben.
Also im Grundegenommen lautet die Frage: Was mach ich falsch? Gibt es bessere Lösungsansätze/Berechnungen. Oder kann man OpenGL direkt den Drehvektor übergeben?
Ich finde für dieses Problem einfach keine Lösung, weder Internet noch Hirn.jar spuckt Ergebnisse aus.
Vielen Dank
Gruß
Net