VB6 besoin d'aide pour calculer un angle [Résolu]

cs_epson1 89 Messages postés dimanche 12 novembre 2000Date d'inscription 29 mars 2013 Dernière intervention - 17 déc. 2011 à 17:56 - Dernière réponse : cs_epson1 89 Messages postés dimanche 12 novembre 2000Date d'inscription 29 mars 2013 Dernière intervention
- 18 déc. 2011 à 15:53
Bonjours a tous ,
j'ai besoin ,pour un ti prog en cours de confection , de calculer l'angle que forme un point par rapport à un autre .
En fouillant sur le net , et en particulier sur ce site , j'ai pu trouver ceci :
Angle = Int(Atn(Y / X)).
Sa marche mais cette formule n'est pas complète , le point d'origine étant supposé être (0,0).
Quelqu'un pourrait-il me donner la formule complète ou je pourrais donner entrer un point d'origine non nul?
Je précise qu'en prog je me débrouille mais en math , je suis NUL DE CHEZ NUL !!
C'est pourquoi je me tourne vers ce forum , ésperant trouver mon bonheur .
Merci d'avoir pris le temps de me lire .
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 17 déc. 2011 à 18:44
3
Merci
Bon... on m'attend ailleurs ...
Pour résumer, il sembler que tu t'intéresses à l'angle "interne" que forment deux segments (segment AB et segment AC)
Les coordonnées du point A sont à considérer comme un "centre" et tu les connais
Tu connais également les coordonnées du point B
te manque à définir celles d'un point C dont l'ordonnée est celle de A et dont l'abscisse (sur ton horizontale, donc) sera celle de ton choix (à gauche ou à droite du pont A ?)
Une fois les coordonnées de ces TROIS points établies ===>>
Tu trouveras là comment faire



____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient

Merci ucfoutu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 125 internautes ce mois-ci

Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 17 déc. 2011 à 18:00
0
Merci
Bonjour,

Il va te falloir être plus précis sur les tenants de ton problème.
Car
l'angle que forme un point par rapport à un autre
ne signifie pas grand chose pour moi !
Pour une droite, il faut déjà au moins DEUX points
Pour un angle, il en faut au moins TROIS

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
cs_epson1 89 Messages postés dimanche 12 novembre 2000Date d'inscription 29 mars 2013 Dernière intervention - 17 déc. 2011 à 18:18
0
Merci
Bonjours Ucfoutu et merci pour ton interet .
J'explique :
J'ai deux points , dont les coordonnées sont par exemple (250,620) et (125,310).
Je voudrais connaitre l'angle que forme le point (250,620) par rapport au point (125,310)et a une droite horizontale imaginaire qui passe par ce deuxieme point (125,310).
La formule "Angle = Int(Atn(Y / X))" me permet de le faire mais l'angle est toujours par rapport au coin superieur gauche du picturebox au lieu du point qui m'interresse ( (125,310) ).
Voila , j'espére avoir été plus clair et encore merci .
Commenter la réponse de cs_epson1
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 17 déc. 2011 à 18:29
0
Merci
Bonjour,
C'est déjà moins imprécis, mais toujours insuffisamment précis.
On a cette fois-ci bien deux droites :
l'une passant par le point A et horizontale (ce qui équivaut à deux points)
l'autre passant par le point A et le point B
Ces deux droites se rencontrent et forment deux angles (dont la somme est toujours 180 °) différents et dépendant de la position d'un troisième point C imaginaire sur ton horizontale.
Comment sais-tu distinguer, de ces deux angles alpha et beta (ou alpha + beta = 180 °) celui qui t'intéresse ? Lequel considères-tu ?


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
cs_epson1 89 Messages postés dimanche 12 novembre 2000Date d'inscription 29 mars 2013 Dernière intervention - 17 déc. 2011 à 18:51
0
Merci
RE ,
Comme je n'y comprends pas grand chose en math et que j'ai du mal à m'exprimer avec les bons termes,je t'ai concocté vite fait un petit schéma .

A
\
\
C_____\B

je connais les coordonnées de chaque points et je voudrais connaitre la valeur de l'angle B .
Voila j'espere avoir été plus clair cette foi lol .
Commenter la réponse de cs_epson1
cs_epson1 89 Messages postés dimanche 12 novembre 2000Date d'inscription 29 mars 2013 Dernière intervention - 17 déc. 2011 à 18:52
0
Merci
too sa a pas marché !!! en fait la droite relie B et C
Commenter la réponse de cs_epson1
cs_epson1 89 Messages postés dimanche 12 novembre 2000Date d'inscription 29 mars 2013 Dernière intervention - 17 déc. 2011 à 19:04
0
Merci
Merci Ucfoutu pour ta patience je vais decortiquer tt sa et tâcher de m'en sortire .
A+
Commenter la réponse de cs_epson1
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 17 déc. 2011 à 19:16
0
Merci
Bonsoir

  A (125,310)
         .
          \
           \
            \
             \
              \    
    D _________\________________ C 
               0
                 (250,620)



quel angle AOC ou AOD veux tu calculer ?
Commenter la réponse de cs_ShayW
CGSI3 417 Messages postés vendredi 22 février 2008Date d'inscription 7 janvier 2018 Dernière intervention - 17 déc. 2011 à 22:22
0
Merci
Bonsoir,
Tu tombe bien, je viens juste d'adapter cette fonction en Vb.Net (tu l'adaptera en VB6 et la testera) qui renvoi en radians l'angle formé entre 2 vecteurs, elle devrait s'adapter a ta situation, même si il y surement mieux et moins complex dans ton cas ...

   Function AngleBetween(ByVal a As Point, ByVal b As Point) As Single
        Dim dotProd As Single, lenProd As Single, divOperation As Single
        dotProd =(a.x * b.x) + (a.y * b.y) ' Fonction Dot 
        'Fonction Length(a):  math.sqrt(a.X * a.X + a.Y  *a.Y)
        lenProd = math.sqrt(a.X * a.X + a.Y * a.Y) * math.sqrt(b.X * b.X + b.Y * b.Y)
        divOperation = dotProd / lenProd
        Dim Res As Double = Math.Acos(divOperation)
        If (b.Y - a.Y) < 0 Then Res = Math.Pi + Math.Pi - Res
        Return Convert.ToSingle(Res)
    End Function


Je rappelle a et b sont des vecteurs ...
En attendant tes précisions sur le schéma donné par ShayW pour composer une solution plus simple.
CGSI3
Commenter la réponse de CGSI3
cs_epson1 89 Messages postés dimanche 12 novembre 2000Date d'inscription 29 mars 2013 Dernière intervention - 18 déc. 2011 à 15:53
0
Merci
bonjours et merci à Shayw et Cgsi3 ,
j'ai trouvé mon bonheur , j'avais les bonnes formules mais , en fait , je ne savais pas les utiliser .
Aprés de nombreuses recherches j'ai fini par comprendre et je m'en suis sortis .
Si j'avais sus , j'aurais bossé à l'école ... HIHI .
Encore merci .
Commenter la réponse de cs_epson1

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.