我正在使用此代码来定义设备位置。 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;
}
答案 0 :(得分:4)
当偏航为0时,手机必须指向北方,不是吗?
“电话”是什么意思?问题是,手机的部分是什么。我们来看看文档:
CMAttitudeReferenceFrameXTrueNorthZVertical
描述一个参考系,其中Z轴是垂直的,X轴指向真北。
X轴用完设备的右侧。因此,当设备的右侧偏北时,您应该预期偏航为0。