2011-08-25 5 views
0

Je voudrais programmer une petite fonctionnalité où l'utilisateur touche l'écran, et p. Ex. 2 flèches pointent vers l'emplacement tactile.Programmation des angles entre les points

S'il y a un emplacement tactile au milieu, près du bas, comment calcule-t-on l'angle entre ceux-ci ou la direction de celui-ci?

enter image description here

Je veux obtenir l'angle entre la source de la flèche, permet de dire qu'il est un cercle, et je veux que l'angle au point à partir du bord du cercle à l'endroit du toucher. Je veux être capable de savoir d'où part la flèche dans le cercle, afin d'avoir l'angle correct par rapport à l'emplacement tactile.

+0

Ainsi, à partir de deux points fixes, vous souhaitez que les flèches apparaissent et pointent vers l'emplacement tactile. Avez-vous été en mesure de recevoir des événements tactiles et des coordonnées de touchesBegan? Si c'est le cas, le rendu de ces flèches devrait simplement impliquer un trig simple. – James

Répondre

3

Pour trouver l'angle entre un angle de 90 degrés et votre point, vous pouvez simplement utiliser une trigonométrie de base.

enter image description here

Si vous imaginez un troisième point B au (x du toucher, y du point), vous vous retrouverez avec un triangle. Ensuite, trouver votre angle est simple puisque tan (angle) = côté opposé/côté adjacent, ou (xa - xb)/(yb - yt). Donc angle = tan^-1((xa - xb)/(yb - yt)).

+1

Pour le code actuel, je recommanderais d'utiliser 'atan2', il prend la différence x et la différence Y en tant qu'arguments séparés afin qu'il gère bien les cas spéciaux. –

Questions connexes