Hi,
sagt dir der Begriff Vektorrechnung was?
Du hast einen Beschleunigungssensor. Der spuckt dir X, Y und Z Koordinaten aus. Diese sind dein Vektor. Sprich du ermittelst einmal die Werte wenn das Gerät mit der App normal auf dem Tisch, sprich in Ruheposition, liegt. Diese sind dein Vektor (A->). Dann hältst du das Gerät in der Hand. Dadurch entstehen andere Werte. Diese nennst du Vektor (B->). Auch dieser Vektor besteht aus X, Y und Z Koordinaten.
Mit diesen zwei Vektoren kannst du nun jeden Winkel ausrechnen den du willst. Willst du den Winkel zwischen zwei Vektoren haben (das wäre in deinem Fall der Vektor A-> = Gerät liegt auf dem Tisch und der Vektor B-> Gerät wurde z.B. um einen gewissen Winkel nach oben geneigt), rechntest du das Skalarprodukt aus, sprich A x B = axbx + ayby + azbz. Dieses Skalarprodukt teilst du durch die Beträge beider Vektoren (Betrag A = Wurzel(ax² + ay² + az²), Betrag B = Wurzel(bx² + by² + bz²) und machst von dem Ergebniss den arccos und schon hast du den Winkel.
Das kannst du dann natürlich auf jeden Winkel im Raum übertragen.
Kannst ja einfach mal hier schauen:
http://de.wikipedia.org/wiki/Skalarprodukt
bzw. im Internet nach Vektorrechnung suchen.
Lesezeichen