我不知道
这是我必须计算的基本数学,还是我对俯仰、横滚和偏航值缺乏经验。目前,我有一个根据加速度计值移动的图像对象。
//Move the ball based on accelerator values
delta.x = CGFloat(acceleration.x * 10)
delta.y = CGFloat(acceleration.y * 10)
ball.center = CGPointMake(ball.center.x + delta.x, ball.center.y + delta.y)
我可以通过姿态计算音高并得到角度。我想做的是,只有当手机的角度是一定角度时,我才将我的"球"排在屏幕中央,比如说 45 度。如何移动我的球,使其根据给定的特定角度在中心对齐?
您的屏幕高度为 Η
像素。屏幕宽度为 W
像素。
屏幕的水平中心是x = W / 2
我假设从你的问题中,您希望球中心在屏幕平坦时的顶部(x, 0)
和屏幕垂直时的底部(x, H)
之间变化。
如果手机θ
的角度在 0
和 π
之间变化,则y = θ / π * H
ball.center = CGPoint(x: W / 2, y: θ / π * H)
您所需要的只是三角形,根据陀螺仪读数计算出θ