Probleme de tangente et de cercle
Répondre à la discussion
Affichage des résultats 1 à 17 sur 17

Probleme de tangente et de cercle



  1. #1
    inviteb0ab42fc

    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. #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...

  3. #3
    inviteb0ab42fc

    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 ?

  4. #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+

  5. A voir en vidéo sur Futura
  6. #5
    inviteb0ab42fc

    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. #6
    inviteb865367f

    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

  8. #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...
    @+

  9. #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

  10. #9
    inviteb865367f

    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

  11. #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

  12. #11
    inviteb0ab42fc

    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 !

  13. #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

  14. #13
    inviteb0ab42fc

    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 !

  15. #14
    inviteb865367f

    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.

  16. #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...
    @+

  17. #16
    inviteb865367f

    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.

  18. #17
    juan

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

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 invite1dde008b dans le forum Mathématiques du collège et du lycée
    Réponses: 11
    Dernier message: 09/03/2007, 20h30
  3. tangente
    Par invite66007a2f 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 invitec47d80ab dans le forum Mathématiques du supérieur
    Réponses: 8
    Dernier message: 07/01/2006, 20h29
  5. tangente 1°s
    Par invite50acb955 dans le forum Mathématiques du collège et du lycée
    Réponses: 24
    Dernier message: 30/11/2005, 17h08