Répondre à la discussion
Affichage des résultats 1 à 17 sur 17

Probleme de tangente et de cercle



  1. #1
    yvant
    Bonjour à tous !
    Je suis nouveau ici, alors j'espere ne pas a&voir l'air trop ridicule avec ma question (!). Je travaille comme développeur Flash pour réaliser des jeux videos, et la, je seche sur un probleme. Je vous laisse un petit schema pour etre plus clair.
    Alors voila : j'aimerais calculer l'angle X2BC (alpha2). Je connais l'angle X1AB, les coordonnées des points A, B, C. J'ai reussi à trouver (maladroitement) l'equation de la tangente (T1T2), mais la j'arrive au bout de mes compétences. Est ce qu'on peut determiner l'angle entre 2 droites a partir de leur equation ? Ou alors faut il procéder de maniere totalement différente - je pense nottament à la trigo.
    J'espere que vous pourrez m'aider, merci !


    -----

  2. Publicité
  3. #2
    Rincevent
    salut,

    pour trouver l'angle entre deux droites, à mon avis, le plus simple (qui peut s'appliquer sans problème dans ton cas apparemment) est de trouver les vecteurs directeurs (le vecteur AB pour la droite passant par A et B) et d'appliquer la formule:

    produit scalaire de U et V (où U et V sont deux vecteurs) = produit des normes de U et de V fois le cosinus de l'angle entre les vecteurs.

    en faisant attention au signe de l'angle (si besoin est), tu peux ensuite facilement remonter du cosinus à l'angle...

  4. #3
    yvant
    Honnetement, mes connaissances mathématiques sont peu avancées, et j'avoue ne pas connaitre le produit scalaire ni le produit de normes... Est ce que je pourrais avoir plus de detail ou un petit tutoriel quelque part ?

  5. #4
    juan
    salut yvant!
    produit scalaire de U et V (où U et V sont deux vecteurs) = produit des normes de U et de V fois le cosinus de l'angle entre les vecteurs
    U a pour coordonnées (u1,u2,u3)
    V a pour coordonnées (v1,v2,v3)

    Produit scalaire: U.V = u1.v1+u2.v2+u3.v3 que tu connais
    norme euclidienne de U dans lR^3= ll U ll = sqrt(u1²+u2²+u3²), avec sqrt="racine"

    d'où, U.V = llUll.llVll.cos(alpha2)
    cos(alpha2)= U.V/(llUll.llVll)

    a+

  6. #5
    yvant
    OKay. Mais a quoi correspondent U et V concretement. Enfin, leurs coordonnées. Est ce que c'est U (xA, yA, xB, yB) et V (xO, yO, xB, yB) pour l'angle OBA par exemple ?
    Par ailleurs je viens de me rendre compte d'une erreur de poids...
    Je vous ai dit que je connaissais les coordonnées de C, mais je voulais parler des coordonnées de O en réalité... Ca change peut etre beaucoup de choses... :?

  7. A voir en vidéo sur Futura
  8. #6
    Jeremy
    D'expérience je te prédis des problèmes si tu ne connait pas l'agèbre linéaire..

    Vecteurs , produits scalaires, produits vectoriels, matrices pour les transformations ... tout ca dans le plan ou dans l'espace, c'est un passage obligé pour programmer les parties graphiques d'un jeu.

    Je te conseille un bouquin de math

  9. Publicité
  10. #7
    juan
    Re-bonsoir,Yvant!
    Bien que ce ne soit pas bien grave,je viens de me rendre compte que ton dessin était en 2D et non en 3D.. ops:
    Mais de toutes facons,c'est vrai comme dit Jeremy que tu aies un peu de bases pour faire tes calculs(vecteurs directeurs,etc...),sinon au cas par cas tu vas pas t'en sortir.

    Pour le vecteur directeur ,essayons de faire simple :
    Pour une droite (D):
    si tu as y=(p/q).x+c, alors U=(q,p) est un vecteur directeur de cette droite
    ex : y = (1/3).x+2,alors U = (3,1) est un vecteur directeur
    y = 3.x +2 = (3/1).x + 2,alors (1,3) est un vecteur directeur
    on a aussi :
    -U est un vecteur directeur pour toutes les droites // à celle-ci
    -Tous les multiples : k.(3,1) sont des vecteurs directeurs de la droite

    Pour ton schéma,il n' a aucune indication pour C?parce que dans ce cas-là,pas assez d'éléments...
    @+

  11. #8
    azt
    Salut, et bienvenue sur le forum.

    L'encadré en dessous c'est ce que j'ai tapé hier hors connection.

    [code:1:7220e26ca6]
    La methode de Rincevent est simple à appliquer quand on veut obtenir l'angle mathématiquement.
    Mais pour l'appliquer en informatique, il faut un peu plus d'astuce. Car la formule qu'il donne demande le calcul de deux normes.
    Deux normes impliquent deux racines carrées... Chose à éviter si l'on doit appliquer un traitement identiques à de nombreuses données.

    Cela constitue néanmoins une bonne base si l'on rajoute une seconde formule.

    Pour connaitre l'angle entre deux droites, si j'ai bien cerné ton problème mais je n'en suis pas sûr. On rectifiera après.

    On connait trois points :
    A (Xa,Ya)
    B (Xb,Yb)
    C (Xc,Yc)

    La formule que donne ce cher Rincevent avec le produit scalaire:
    -> -> -> -> -> ->
    u . v = ||u ||.||v ||.cos( u .v)

    On ajoute la formule du produit vectoriel
    -> -> -> -> -> ->
    u ^ v = ||u ||.||v ||.sin( u .v)

    (En normes, bien entendu).
    calculons le rapport entre les membres des deux formules :

    -> -> -> ->
    u . v cos( u .v)
    ________ = __________
    -> -> -> ->
    u ^ v sin( u .v)

    Superbe, les racines disparaissent ! et on obtient directement :

    -> ->
    u . v -> ->
    ________ = tan( u .v)
    -> ->
    u ^ v


    Maintenant, il reste a prendre deux vecteurs des droites (AB) et (BC) dont on veut calculer l'angle.

    --> -->
    AB et BC font l'affaire.

    -> ->
    AB . BC -> ->
    ________ = tan( AB .BC)
    -> ->
    AB ^ BC

    Calculons maintenant :

    -> ->
    AB . BC = (Xb-Xa)(Xc-Xb)+(Yb-Ya)(Yc-Yb)

    -> ->
    AB ^ BC = (Xb-Xa)(Yc-Yb)-(Yb-Ya)(Xc-Xb)


    D'où,

    -> -> (Xb-Xa)(Xc-Xb)+(Yb-Ya)(Yc-Yb)
    tan( AB .BC) = ---------------------------
    (Xb-Xa)(Yc-Yb)-(Yb-Ya)(Xc-Xb)


    Il ne reste plus qu'à utiliser l'arctangeante pour avoir l'angle entre les deux droites.
    La valeur sera entre -pi et +pi.
    [/code:1:7220e26ca6]

    Mais je viens de lire que tu ne connaissais pas les coordonnées du point C. Il faudrait alors expliquer comment tu l'obtiens en partant des points A,B et O car là cela ne me saute pas aux yeux

    A plus.

    AZT

  12. #9
    Jeremy
    Sisi.

    alpha2 = X2 B C = X2 B T2 + T2 B C
    or T2 B C = A B T1
    et X2 B T2 c'est l'angle donné par le coeff directeur de la tangente (que tu connais si tu connais son équation)

    et A B T1 = angle_tangente - alpha1

    Donc alpha2 = 2*angle_tangente - alpha1

  13. #10
    olle
    On ajoute la formule du produit vectoriel
    -> -> -> -> -> ->
    u ^ v = ||u ||.||v ||.sin( u .v)
    sachant que le produit vectoriel donne un vecteur, ça me semble assez bizarre

  14. #11
    yvant
    Oula ! Je viens de refaire les calculs de Jeremy, et ca me semble pas mauvais du tout En procédant par addition et remplacement d'angles on peut y arriver on dirait ! Mais juste pour etre sur : quand tu parles de angle_tangente, tu fais allusion a l'angle X2BT2 ?
    En tout cas, merci à tous pour votre aide, et promis, je m'achete un bouquin de maths pour me replonger dans de vieux souvenirs !

  15. #12
    azt
    Salut à tous,

    Citation Envoyé par olle
    On ajoute la formule du produit vectoriel
    -> -> -> -> -> ->
    u ^ v = ||u ||.||v ||.sin( u .v)
    sachant que le produit vectoriel donne un vecteur, ça me semble assez bizarre
    Et bien, oui
    Mais comme le problème est plan, on obtient un vecteur perpendiculaire.
    Et ce qui nous interesse ici c'est sa norme. Je suis d'accord j'ai été un peu mauvais sur les notations.


    Pour Yvant, le point B, il t'es donné ? Cela peut être n'importe quel point du cercle ou tu l'as calculé à partir des points A et O ?

    Si tu veux quelques notions d'infographie tu peux regarder ici pour avoir quelques notions : http://www-ipst.u-strasbg.fr/pat/program/infogr.htm


    AZT

  16. Publicité
  17. #13
    yvant
    B appartient au cercle. En realité, il s'agit d'un "simulateur" de choc entre 2 objets. Le cercle est l'obstacle. Le point A est le depart de l'objet qui va lui rentre dedans. Il le frappe en B, et il doit repartir dans la direction [BC).
    Et merci pour le lien !

  18. #14
    Jeremy
    Citation Envoyé par yvant
    Oula ! Je viens de refaire les calculs de Jeremy, et ca me semble pas mauvais du tout En procédant par addition et remplacement d'angles on peut y arriver on dirait ! Mais juste pour etre sur : quand tu parles de angle_tangente, tu fais allusion a l'angle X2BT2 ?
    En tout cas, merci à tous pour votre aide, et promis, je m'achete un bouquin de maths pour me replonger dans de vieux souvenirs !
    Exact.

    Tu verras que les math sont omniprésentes en programmation graphique.

  19. #15
    juan
    jeremy quote :
    or T2 B C = A B T1
    ???rien ne le dit sur la figure!?

    yvant quote :
    Le point A est le depart de l'objet qui va lui rentre dedans. Il le frappe en B, et il doit repartir dans la direction [BC).
    ok, là d'accord...

    et azt a raison, calcul de racines = pas bon du tout en info...
    @+

  20. #16
    Jeremy
    Citation Envoyé par juan
    jeremy quote :
    or T2 B C = A B T1
    ???rien ne le dit sur la figure!?
    Non mais j'avais compris je que ca représentait.

  21. #17
    juan
    Ok,j'avais peur d'avoir raté quelque chose,déjà que j'étais parti sur du 3D!
    @+

Sur le même thème :

Discussions similaires

  1. Problème : Un point se déplace sur un cercle dont de rayon augmente
    Par RitonRitonRiton dans le forum Mathématiques du supérieur
    Réponses: 18
    Dernier message: 08/04/2007, 19h23
  2. Déterminer le centre d'un cercle par l'équation du cercle et un point
    Par neo75013 dans le forum Mathématiques du collège et du lycée
    Réponses: 11
    Dernier message: 09/03/2007, 20h30
  3. tangente
    Par jennybb dans le forum Mathématiques du collège et du lycée
    Réponses: 4
    Dernier message: 18/06/2006, 21h36
  4. problème dérivé tangente
    Par dodi dans le forum Mathématiques du supérieur
    Réponses: 8
    Dernier message: 07/01/2006, 20h29
  5. tangente 1°s
    Par albja dans le forum Mathématiques du collège et du lycée
    Réponses: 24
    Dernier message: 30/11/2005, 17h08