Coremotion を使用すると、次のことができget the change in position of device using attitude, rotation using gyro
ます。しかし、3D 空間でのデバイスの実際の位置を知るには、デバイスの初期位置が必要です。したがって、userAcceleration、ジャイロ データは、変更後の新しい実際の位置を取得するために適用できます。デバイスの実際の初期位置を取得する方法。「顔を上にして左に45度傾いた」、「y軸で30度回転して右に45度傾いた」といった位置を検出したい。
1 に答える
0
CoreMotion 加速度計を使用して、いくつかの式を使用してデバイスの初期位置を推定できます。
let x = data.acceleration.x
let y = data.acceleration.y
let z = data.acceleration.z
let roll = atan (y / sqrt(pow(x,2.0) + pow(z, 2.0)));
let pitch = atan (x / sqrt(pow(y, 2.0) + pow(z, 2.0)));
let yaw = atan (sqrt(pow(x, 2.0) + pow(z, 2.0))/z);
どういうわけか、Yaw はまだデバイスの開始位置に対して相対的です。この問題を解決するには、コンパスを使用して検索する必要があります。
于 2016-09-30T10:24:46.687 に答える