答案 0 :(得分:0)
本文详细介绍了https://www.safaribooksonline.com/library/view/basic-sensors-in/9781449309480/ch04.html
相关的代码段在Objective-C中提供,但可以根据需要轻松翻译:
float x = -[acceleration x];
float y = [acceleration y];
float angle = atan2(y, x);
if(angle >= −2.25 && angle <= −0.75) {
//OrientationPortrait
} else if(angle >= −0.75 && angle <= 0.75){
//OrientationLandscapeRight
} else if(angle >= 0.75 && angle <= 2.25) {
//OrientationPortraitUpsideDown
} else if(angle <= −2.25 || angle >= 2.25) {
//OrientationLandscapeLeft];
}
解释:对于任何不等于零的实参x和y,atan2(y,x)是平面的正x轴与点之间的弧度角由指定的坐标给出。对于逆时针角度,角度为正,对于顺时针角度,角度为负。