Rechercher : dans
Par :

Calcul d'angle

Dernière réponse le 18 nov 2009 à 15:59:51 batmat, le 11 mai 2003 à 11:46:41 
 Signaler ce message aux modérateurs

Bijour tout le monde,
Je suis en train de coder un algo de calcul de trajectoire et je suis bloqué par un pb auquel je ne m'attendais pas, bon sang ! n'est ce point fou ?

Bref, j'ai trois A(xa,ya) B(xb,yb) C(xc,yc) (stockés dans une structure point_t{float x,y}.

Je cherche l'angle B (ABC quoi), mais je ne sais pas comment faire...

Des idées ? Allez, on se motive ;-)

Merci d'avance les gens

@++

Vous hésitez entre Linux et Windows?
Vous voulez dépenser du temps ou de l'argent ?

Meilleures réponses pour « Calcul d'angle » dans :
Tableur - Les feuilles de calcul VoirLa notion de feuille de calcul Un tableur présente les données et les formules sous forme d'un tableau (lignes et colonnes) appelé feuille de calcul. Une feuille de calcul est constitué de lignes (numérotées à l'aide de chiffres) et de colonnes...
Opérations de calcul VoirOpérations calculatoires Les opérateurs de calcul ne sont pas des opérations dérivées dans la mesure où ils ne peuvent pas être exprimés à l'aide des opérateurs de base. Ils permettent néanmoins de faire des opérations très utiles (parfois...

1

esox_ch, le 11 mai 2003 à 11:56:56

Avec la trigo p-e?

Eternel Questionneur. Seul et Unique membre de la : SPdLM
=> Société Protectrice des Languages Maltraités

Répondre à esox_ch

2

batmat, le 11 mai 2003 à 12:09:12
  • +1

La trigo, ça marche avec des angles droits ... Là c'est pas forcément le cas ;-)
@++

Vous hésitez entre Linux et Windows?
Vous voulez dépenser du temps ou de l'argent ?

Répondre à batmat

15

Lopette, le 17 déc 2004 à 11:01:16

La trigo, ça marche avec des angles droits ... Là c'est pas forcément le cas ;-) 



faudrait penser à suivre pendant les cours de maths...

utilisez le théorème du sinus c'est exactement ça qu'il faut:

[AB]/<C = [BC]/<a = [AC]/<b = 2r, où r est le rayon du cercle circonstrit

Répondre à Lopette

3

esox_ch, le 11 mai 2003 à 12:17:20

Oui je c ca, je penssais de faire faire en sorte qu'un angle droit se créé mais je crois que ca ne ferais que reporter le prob + loin, en tout cas j'y reflechi

Eternel Questionneur. Seul et Unique membre de la : SPdLM
=> Société Protectrice des Languages Maltraités

Répondre à esox_ch

4

batmat, le 11 mai 2003 à 13:08:29

J'ai pensé à une solution avec le calcul des équations de droites et de différence de coef directeur...

Seulement, j'ai deux pbs :
1) je ne connais pas l'équivalence
"différence coef directeur" <=> angle
2) si ma droite est verticale (xa=xb par exemple, alors ya plus de notion d'équation de droite et chaipu koi faire ...

D'avance merci aux matheux ;-p
@++

Vous hésitez entre Linux et Windows?
Vous voulez dépenser du temps ou de l'argent ?

Répondre à batmat

5

esox_ch, le 11 mai 2003 à 13:14:48

Ok si je me trompe pas, les fonctions mathematiques comprennent la foction : Cos(a) donc il suffi d'appliquer le theoreme du cosinus:
a^2=(b^2)+(c^2)-(2bc*cos(a))
a,b et c sont les segments de droite qui relient les points A,B et C.il suffis ensuite de jongler un peu avec la formule et on retrouvre l'angle...

Eternel Questionneur. Seul et Unique membre de la : SPdLM
=> Société Protectrice des Languages Maltraités

Répondre à esox_ch

6

batmat, le 11 mai 2003 à 13:18:44

1) La formule que tu donnes, je l'utilise de façon identique en x et en y ?
2) T'es sûr que ça marche pour des triangles non rectangles ?

@++

Vous hésitez entre Linux et Windows?
Vous voulez dépenser du temps ou de l'argent ?

Répondre à batmat

7

esox_ch, le 11 mai 2003 à 13:31:22

Heu justel ,a b et c (comme dit en haut) c pas tes points mais les segments qui les relient...
Que ca marche sur triangle non rectangle : Oui

Eternel Questionneur. Seul et Unique membre de la : SPdLM
=> Société Protectrice des Languages Maltraités

Répondre à esox_ch

8

Kopernicus, le 11 mai 2003 à 13:31:39

Bijour batmat

Le coef directeur est donné par la tangente de l'angle. Si les droite sont verticale, ce n'est qu'un cas particulier du cas général.
A++

Répondre à Kopernicus

9

batmat, le 11 mai 2003 à 15:36:23

OK, j'ai compris : je viens de recevoir un mail d'un de mes anciens profs de maths. La formule de esox_ch, c'est le théorême d'Al Kashi.
Merci à tous, je devrais m'en sortir avec ça.

Toutefois, si qqn a une solution moins couteuse en temps, ça m'interesse qd même (je suis pas sur que le microcontroleur va apprécier de calculer des arccos à la pelle ;-)

@++

Vous hésitez entre Linux et Windows?
Vous voulez dépenser du temps ou de l'argent ?

Répondre à batmat

12

Pascal, le 12 mai 2003 à 13:45:04
  • +1

Salut batmat,

Tu dois normaliser tes vecteurs AB et CB. ie, diviser par la norme (en ayant préalablement effectuer une translation de tes vesteurs).

1. Xa' = (Xa - Xb)/Sqrt((Xa - Xb)^2 + (Ya - Yb)^2)
Ya' = (Ya - Yb)/Sqrt((Xa - Xb)^2 + (Ya - Yb)^2)
Xc' = (Xc - Xb)/Sqrt((Xc - Xb)^2 + (Yc - Yb)^2)
Yc' = (Yc - Yb)/Sqrt((Xc - Xb)^2 + (Yc - Yb)^2)

2. La valeur de ton angle est: Valeur absolue de (Cos^-1 (Xa') - Cos^-1 (Xc'))

:-)

Rien n'est plus dangereux qu'une idée quand on a qu'une idée.

Pascal

Répondre à Pascal

10

esox_ch, le 11 mai 2003 à 22:59:22

Ralala ce batman, d'abord il nous demande qqch de dur, apres il nous dit de nous motiver, et apres l'è meme pas contant du resultat parceque c fatiguant a faire ! Bein oui m'sieur! Et si tu trouve fatiguant de pianoter sur le clavier fo changer de job/hobby ;0)

Eternel Questionneur. Seul et Unique membre de la : SPdLM
=> Société Protectrice des Languages Maltraités

Répondre à esox_ch

11

batmat, le 12 mai 2003 à 07:16:19

Vous n'y êtes pasmon cher :-)
Je tapote très vite maintenant que j'ai grandi ;-) Seulement, le pb concerne le microcontroleur qui doit réfléchir très vite...
J'ai de toute façon déjà commencé à coder l'algo comme ça. Ensuite, j'en coderai une autre version avec un truc sur le produit vectoriel qu'on vient de m'envoyer... Pis je comparerai.

Merki à tous ;op
@++

Vous hésitez entre Linux et Windows?
Vous voulez dépenser du temps ou de l'argent ?

Répondre à batmat

13

esox_ch, le 12 mai 2003 à 17:31:40

D'accords, aufait pourriez vous m'expliquer, cher ami, comment entendez vous faire pour les vecteurs? Car je ne connais point les commandes qui permettent de faire des operations sur les vecteurs

Eternel Questionneur. Seul et Unique membre de la : SPdLM
=> Société Protectrice des Languages Maltraités

Répondre à esox_ch

14

batmat, le 12 mai 2003 à 18:13:06

Raaaah, pour tout te dire ;-) J'ai déjà écrit une grande partie de l'algo qui calcule la trajectoire (par les courbes de bézier).

J'ai donc créé pleins de structures (point_t vecteur_t segment_t etc.) et écrit les opérations correspondantes.

(Rappel : le vecteur Vab a pour valeur en abscisse xb-xa et en ordonnée yb-ya)...

<vecteur(BA),vecteur(BC)> = AB*BC*cos(BA,BC)

En repere orthonormé, le produit scalaire et la norme se calculent facilement :

u(x,y) et v(x',y')
<u,v> = x.x'+y.y' et ||u|| = sqrt(x^2+y^2)

En plus, un CCMiens vient d'expliquer aussi cette partie.

@++
Vous hésitez entre Linux et Windows?
Vous voulez dépenser du temps ou de l'argent ?

Répondre à batmat

16

yyyyy, le 8 sep 2007 à 14:42:51

Mai euh

Répondre à yyyyy

17

 cyriltaz, le 18 nov 2009 à 15:59:51

En utilisant les Méthodes des sous espaces plus particulièrement MUSIC... se sont des algorithmes de DOA.

Répondre à cyriltaz