2010-06-08 40 views
2

J'ai juste commencé à réaliser un projet basé sur la réalité augmentée, j'ai obtenu l'emplacement GPS, le cap, et les deux variables manquantes pour manipuler la caméra virtuelle sont Pitch/Roll. Je me demande s'il existe une formule prête à l'emploi que je peux fusionner avec le projet. Pourrait m'épargner beaucoup de temps. Merci d'avance.Existe-t-il une formule prête à l'emploi pour obtenir les valeurs Pitch/Roll à partir de l'accéléromètre X/Y/Z de l'iPhone 3GS?

Répondre

2

Je pense que this post à propos de l'accéléromètre iphone répondra à la plupart de vos questions, y compris l'exemple de code.

+0

Ohh, si simplement pitch = accélération.x, roll = accélération.y. Et le composant acceleration.z me dit si l'appareil est à l'envers d'une manière ou d'une autre. Celui-ci m'aidera à créer en quelque sorte la "caméra gratuite à 360 degrés". Merci jilles. – Geri

0

Vous pouvez accéder à la rotation de l'appareil par l'CMMotionManager qui calcule les radians basé sur des données brutes (accéléromètre, gyro etc.). Assurez-vous d'activer les mises à jour du capteur:


if (motionMng.deviceMotionAvailable && !motionMng.deviceMotionActive) { 
    motionMng.deviceMotionUpdateInterval = 1.0/50.0; 
    [motionMng startDeviceMotionUpdates]; 
} 

accès Après rotation - pitch (x), roll (y) et yaw (z) - en interrogeant l'objet attitude:


CMDeviceMotion *motion = [motionMng deviceMotion]; 

if (motion != NULL) { 

    float pitch = motion.attitude.pitch; 
    float roll = motion.attitude.roll; 
    float yaw = motion.attitude.yaw; 

    NSLog(@"ROTATION: x:%f y:%f z:%f", pitch, roll, yaw); 
}