我的屏幕上有一个轮子,它可以旋转。当用户在车轮上滑动时,它应该基于滑动方向开始旋转。除旋转方向(顺时针或逆时针)外,我完成了所有功能。任何人都可以帮我找到用户在方向盘上滑动的方向。
由于
答案 0 :(得分:0)
轮换是
解决方案1:
<强>顺时针强>
逆时针:
反对者:
有更好的解决方案,数学更复杂,但一个是简单的。
更新这个更简单,也更好!
解决方案2:
计算车轮中心(x,y)与触摸(x,y)之间的角度:
double angleRad = atan2(dy/dx), where dy = touch.y - wheel.y, and dx analog.
为每个触摸事件执行此操作:如果角度增加,则顺时针旋转,否则逆时针旋转
答案 1 :(得分:0)
_direction = 1;
if(_startPoint.y < rotarCenter.y) {
if(_startPoint.x > endTouchPoint.x)
_direction = -1;
}
else if(_startPoint.y > rotarCenter.y) {
if(_startPoint.x < endTouchPoint.x)
_direction = -1;
}
if(_startPoint.x < rotarCenter.x && endTouchPoint.x < rotarCenter.x) {
if(_startPoint.y < endTouchPoint.y)
_direction = -1;
else
_direction = 1;
}
else if(_startPoint.x > rotarCenter.x && endTouchPoint.x > rotarCenter.x) {
if(_startPoint.y > endTouchPoint.y)
_direction = -1;
else
_direction = 1;
}