自首台Android手機面世, 已標配熒幕觸摸. 旋轉羅盤以天池為原㸃分肆象限.
- 係觸屏拖動得到兩觸摸坐標, (x0,y0) 觸摸點. (_x0,_y0) 上壹觸摸點.
- 将(x0,y0) 同(_x0,_y0) 歸壹, 即長為壹,方位唔變.
- 㸃(x0,y0) ,(_x0,_y0) 同天池原㸃(0,0). 形成『等腰三角』, 腰長壹.
- 計㸃(x0,y0) ,(_x0,_y0) 距离, 得到『等腰三角』 底長『length』
- 『等腰三角』由两『直角三角』組成
- 計『直角三角』原㸃夹角
sin(a)= 對邊/斜邊 |
a = asinf(對邊/斜邊) |
- 『旋轉角』= asinf((length / 2) / 1) * 2
angle = RAD_TO_DEG( asinf((length / 2.0f) / 1.0f) ) * 2.0f; |
- 判轉向
笛卡兒坐標 |
象限 |
if( v0.y > 0 && v0.x > _v0.x) length = -length; |
逆轉 |
if( v0.y < 0 && v0.x < _v0.x)length = -length; |
逆轉 |
- 旋轉Y軸
rot.y = (int)(rot.y + angle) % 360; |