CMAttitudeReferenceFrameXTrueNorthZVertical不指向北方

时间:2016-03-10 14:50:09

标签: objective-c core-motion

我正在使用此代码来定义设备位置。 Roll&音高值看起来很好(当设备在桌面上时它们为0),但是当偏航为0时,罗盘指向西方。怎么了?

 #include <intrin.h> 
 #include <stdio.h>

 unsigned __int64 Start,Stop,Frequency,Time_taken;   // Variables for measurement
 unsigned int test;    // Pointer-buffer for Machine AUX register (non-relevant)

 int YourFunction(void) 
 {
  // Measure current frequency
 Start = __rdtscp(&test);

 Sleep(1000);

 Stop = __rdtscp(&test);

 Frequency = Stop-Start;

 // Measure your function
 Start = __rdtscp(&test);

 // Code to measure

 Stop = __rdtscp(&test);

 Time_taken = (Stop-Start)/Frequency;
 }

1 个答案:

答案 0 :(得分:4)

  

当偏航为0时,手机必须指向北方,不是吗?

“电话”是什么意思?问题是,手机的部分是什么。我们来看看文档:

  

CMAttitudeReferenceFrameXTrueNorthZVertical

     

描述一个参考系,其中Z轴是垂直的,X轴指向真北。

X轴用完设备的右侧。因此,当设备的右侧偏北时,您应该预期偏航为0。