Calculer un angle entre 3 points en C
Résolu/FerméPierr10 Messages postés 12663 Date d'inscription mardi 13 février 2018 Statut Modérateur Dernière intervention 5 mars 2025 - 4 avril 2023 à 20:09
Bonjour,
Je doit faire un code en C qui permet de calculer un angle entre 3 point dans un repère.
Je cherche un peut mais sans trouver mes connaissance en C étant très limiter j'ai commencer il n'y a pas longtemps,
et mes math c'est assez moyen.(je me trouve dans la partie en bas a gauche du repère donc avec les moins en ordonnée).
Merci d'avance a la ou les personnes qui pourront m'aider.
(Désoler pour les faute d'orthographe ce n'est pas mon fort non plus)
- Calculer un angle entre 3 points en C
- Comment calculer la moyenne sur excel - Guide
- Mettre des points sur une carte - Guide
- Picasa 3 - Télécharger - Albums photo
- Points de suite word - Guide
- Dessin avec des points ✓ - Forum Windows
2 réponses
4 avril 2023 à 19:38
Bonjour,
Je ne connais rien à la programmation. Je pense quand même que ça doit être assez élémentaire. C'est le genre de truc qu'on peut programmer sur une simple calculatrice.
Pour moi c'est juste un calcul élémentaire de mathématiques, qu'il faudra traduire en langage de programmation.
Pour calculer l'angle, j'utiliserais le théorème d'Al-Kashi.
On calcule le cosinus de l'angle en fonction des longueurs des côtés du triangle constitué par les 3 points.
cos α = (b² + c² - a²)/2bc
Le calcul des longueurs des côtés en fonction des coordonnées des points est un peu fastidieux, mais sans difficultés.
L'avantage de cette méthode, est que suivant le signe de cos α, on saura si on a un angle aigu ou obtus.
Après il reste à traduire tout ça en C ; c'est ton boulot !
4 avril 2023 à 19:54
Merci beaucoup de m'avoir répondu,
Mais il faut que se soit a partir des coordonnées j'ai rouvert mon cahier de math é j'ai trouver cette solution:
a1 = x1 - x2 ;
a2 = y1 - y2 ;
b1 = x3 - x2 ;
b2 = y3 - y2 ;
a = sqrt ( (a1*a1) + (a2*a2) );
b = sqrt ( (b1*b1) + (b2*b2) );
if ( (a == 0.0) || (b == 0.0) )
return (0.0) ;
cosinus = (a1*b1+a2*b2) / (a*b) ;
t = acos ( cosinus );
t = t * 180.0 / pi ;
angle = t
4 avril 2023 à 20:09
Ça marche !
C'est fait avec un produit scalaire. C'est plus simple que ce que j’ai proposé. (Je suis un peu rouillé ! )