Trouver l'angle d'un point par le centre du cercle
Si j'ai une image de 720, 720, qui ressemble à ceci..
Comment puis-je travailler sur l'angle de l'touché x,y, étant donné que le centre x et y sont 360, 360
Beaucoup de calculs que je vois pour cette assumer l'origine est 0,0 (ce qui est en haut à gauche) et j'obtiens des résultats incorrects.
Je suis en supposant que 0 est toujours au top et n'est pas tournée.
Qu'est-ce exactement avez-vous trouvé? Si votre problème n'est que sur les coordonnées du centre, nous serons heureux de vous aider!
Traditionnellement, les 0 degrés, à droite, 90, 180 est à gauche, et 270 est en baisse. (J'ai peut mal comprendre votre phrasé.)
Traditionnellement, les 0 degrés, à droite, 90, 180 est à gauche, et 270 est en baisse. (J'ai peut mal comprendre votre phrasé.)
OriginalL'auteur Kyros | 2012-01-23
Vous devez vous connecter pour publier un commentaire.
Peut-être plus clair de cette façon:
L'ajout d'un virage à 360 degrés et de l'application de l'opérateur modulo vous donne l'angle positif, qui atan2 ne pas.
Si je clique à 12 0 ' clock-je obtenir 180 heures et 6 heures je reçois 0 de sorte que ces sont en quelque sorte inversée.
Corrigé de "fromTop - 360.0" à "360.0 - fromTop". Testé à JavaWIDE.
Merci ça a fonctionné.
Avez-vous testé cet extrait?
atan2
est défini (contre toute attente intuitive) queatan2(y, x)
mais vous êtes de passage(x, y)
...OriginalL'auteur minopret
Voici la formule générale:
angle = atan2(mouseY - circleCenterY, mouseX - circleCenterX);
OriginalL'auteur Sileria
OriginalL'auteur Maurice Perry
coordonnées de l'écran ne pas aller dans le sens de la trigonométriques.
utilisation
java.lang.Math.atan2(-(y-360),x-360);
OriginalL'auteur vlad-ardelean