Алгоритм работы джойстика на сенсорном экране

Я хотел бы смоделировать аналоговый джойстик на сенсорном экране, как на этом рисунке.

Final Fantasy 3 для Android

Когда центр области джойстика установлен на (cx, cy), как мне рассчитать отношение X-направления и Y-направления (-1,0~1,0) из положения касания (tx, ty)?

Изображение местоположения


person Tank2005    schedule 04.08.2012    source источник


Ответы (1)


Отношение направления x равно (tx-cx)/r, где r — величина радиуса круга. Точно так же отношение направления y равно (ty-cy)/r.

Я предполагаю правостороннюю декартову координату с осью x в направлении справа от изображения. В противном случае вам может понадобиться умножить (-1), чтобы отрегулировать направление.

person NRR    schedule 04.08.2012
comment
Обратите внимание, что это решение создает джойстик с квадратными воротами, в котором для одновременного достижения максимальных значений X и Y нужно вывести палец за пределы круга. - person lazd; 14.06.2014