Le calcul de l'angle entre deux points - java
J'ai besoin de calculer l'angle en degrés entre deux points, avec un point fixe qui est connecté avec la donnée de deux points par une ligne.
Voici une image qui illustre ce dont j'ai besoin:
Voici ce que j'ai essayé jusqu'à présent:
public static float GetAngleOfLineBetweenTwoPoints(float x1, float x2, float y1, float y2) {
float xDiff = x2 - x1;
float yDiff = y2 - y1;
return (float) (Math.atan2(yDiff, xDiff) * (180 / Math.PI));
}
Il est inutile de dire qu'il ne fournit pas la bonne réponse.
Vous ne pensez même pas les coordonnées de "l'origine" point actuellement, non?
quel est votre point fixe?vous devez également ce point
ajouter un troisième point (comme @getlost mentionné) et l'utilisation de vecteur de l'angle de formule: vitutor.com/geometry/vec/angle_vectors.html
@RomeoKienzler post (parce que ce n'est pas une réponse), vous devez lire ceci: Comment calculer l'angle entre une ligne et l'axe horizontal?
quel est votre point fixe?vous devez également ce point
ajouter un troisième point (comme @getlost mentionné) et l'utilisation de vecteur de l'angle de formule: vitutor.com/geometry/vec/angle_vectors.html
@RomeoKienzler post (parce que ce n'est pas une réponse), vous devez lire ceci: Comment calculer l'angle entre une ligne et l'axe horizontal?
OriginalL'auteur David Lasry | 2014-09-27
Vous devez vous connecter pour publier un commentaire.
Vous pouvez avoir la méthode suivante qui calcule l'angle en radians à l'aide de la
Math.atan2
méthode:Et de l'appeler avec trois points (à l'aide de
Math.toDregrees
à transformer l'angle résultant de radians en degrés):De sortie: 90.0
N'hésitez pas à utiliser Java standard
Point
ouLine2D
classes dans votre solution. C'était juste pour démontrer que cela fonctionne.if (result < 0) result += 360;
Sinon mon résultat a été la commutation entre les ~270 et ~90 degrés (avec un point fixe en bas à droite).OriginalL'auteur Voicu
Voici un extrait de code à partir de mon Android Geste de la bibliothèque. Il fonctionne et est entièrement testé.
Comment puis-je obtenir la valeur de
x
OriginalL'auteur user2288580
Je ne sais pas @user2288580 mais même pour de simples, cas de test de code par défaut.
firstPoint = (0,0)
secondPoint = (0, 5), (5,5), (5,0), (5, -5) (0, -5) (-5, -5), (-5, 0)
Veuillez voir si cela fonctionne pour vous @David -
OriginalL'auteur Srikant Jakilinki