我不知道这是否是我必须计算的基本数学,或者我对音高,滚动和偏航值的经验不足。目前,我有一个基于我的加速度计值移动的图像对象。
//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)
我可以通过姿态计算音高并获得角度。我想做的是排队我的球#34;只有当手机的角度是一定角度时才在屏幕中央,比方说45度。如何根据给定的特定角度移动我的球,使其在中心对齐?
答案 0 :(得分:1)
您的屏幕高度为Η
像素。
您的屏幕宽度为W
像素。
屏幕的水平中心为x = W / 2
我假设您的问题是,当屏幕垂直时,球中心在顶部(x, 0)
和屏幕垂直时(x, H)
之间变化。
如果您的手机θ
的角度在0
和π
之间变化,那么y = θ / π * H
ball.center = CGPoint(x: W / 2, y: θ / π * H)
根据陀螺仪读数
,你需要的是触发θ