Android-360度旋轉羅盤

Android-360度旋轉羅盤
Android-360度旋轉羅盤

自首台Android手機面世, 已標配熒幕觸摸. 旋轉羅盤以天池為原㸃分肆象限.

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

 

 

評論