Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1523 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Trouver Un Point (X, Y)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Trouver Un Point (X, Y)

n°1356609
karminator​98
Posté le 29-04-2006 à 20:36:21  profilanswer
 

bonjour à tous... j'ai un méga problème non pas de c++ directement, mais bien de mathématique...
 
pour un programme que je suis en train de faire, je dois faire une fonction qui calcule l'emplacement d'un point, a partir d'un autre point, d'une distance et d'un angle...
 
 

Code :
  1. ClPositionPosition TrouverPoint(ClPosition p_position, double p_distance, double p_angle)
  2. {
  3. }

 

le problème que j'ai, c'est que l'angle (mesuré a partir du haut, et vers la droite) peut être entre 0 et 90, ce qui serait assé facile à calculer, mais aussi entre 90 et 180, entre 180 et 270, et entre 270 et 359.99...
 

Code :
  1. /* degrés :
  2.   *     0/360
  3.   *       |
  4.   *270----|-----90
  5.   *       |
  6.   *      180
  7.   */

 

pour calculer entre 0 et 90, il suffit de faire le sinus de (l'angle - 90) pour trouver la hauteur(Y), et le cosinus de la même valeure pour trouver la longueure(X)... mais lorsque l'angle est plus grand que 90... je ne sait plus comment faire... J'AI BESOIN D'AIDE!!!!
 
merci à l'avance... si on en viens a boute :P

mood
Publicité
Posté le 29-04-2006 à 20:36:21  profilanswer
 

n°1356617
brojnev
Posté le 29-04-2006 à 20:49:53  profilanswer
 

karminator98 a écrit :

bonjour à tous... j'ai un méga problème non pas de c++ directement, mais bien de mathématique...


 
Il te faut une révision du cercle trigonométrique :
http://fr.wikipedia.org/wiki/Trigo [...] 3.A9trique
http://fr.wikipedia.org/wiki/Cercl [...] 3%A9trique
 
courage, soit fort.
Je t'avoue que c'est un peu loin pour moi la trigo, mais les liens devraient suffire à ta résolution.


Message édité par brojnev le 29-04-2006 à 20:50:17
n°1356655
videaste95
je ne sais rien !
Posté le 30-04-2006 à 00:32:00  profilanswer
 

Si tu n'as pas de problème entre 0 et 90°, tu ne devrais pas en avoir du tout. Les fonctions sin, cos, tan, atan et atan2 donnent les bonnes valeurs pour tout les angles. cependant elles doivent êtres appelées avec un angle exprimé en radian (angle en radian = angle en degrés x pi / 180). et les angles sont mesurés à partir de l'axe horizontal positif et dans le sens positif (inverse des aiguilles d'une montre).
 


                    90
                     |                
                     |  
                     |
  (-) 180 -----------|--------- 0  (+)
                     |
                     |
                     |
                    270


        Le point de départ étant le centre du cercle, il suffit d'y ajouter les valeurs cos(x) * distances à X et soustraire sin(x) * distance à Y, pour avoir le point résultant.
     


Message édité par videaste95 le 30-04-2006 à 00:39:05
n°1357007
smorvan
Posté le 01-05-2006 à 11:56:35  profilanswer
 

C'est tres simple:
 
1) Prends donc l'inverse du cosinus, du sinus ou de la tangente (je prefererais l'un des 2 premiers car il y a moins de pb), tu obtiens un angle. Supposons tu le fais avec cosinus inverse.
 
2) Selon les signes respectifs de X et Y, tu peux determiner dans quel quadrant tu te trouve, et donc lever l'indetermination.
 
C'est du au fait que les fonctions cosinus et sinus ne sont pas bijective sur [0, 2Pi[

n°1358065
karminator​98
Posté le 02-05-2006 à 20:04:50  profilanswer
 

nah... laissez-faire, j'ai demander de l'aide a mon prof de math, et mon problème est résolu... :P
ce que je cherchais a faire est ceci :
 
 

Code :
  1. X= distance * sin(((90-A)*PI)/180);
  2. Y= distance * cos(((90-A)*PI)/180);

 

mais merci quand même pour l'aide... :)

n°1358111
nargy
Posté le 02-05-2006 à 21:07:22  profilanswer
 

:lol: sauf que tu mélange radians et degrès. note que sin() et cos() fonctionnent en radians.
edit:  [:casediscute]


Message édité par nargy le 03-05-2006 à 22:16:26
n°1359049
karminator​98
Posté le 03-05-2006 à 21:53:50  profilanswer
 

c'est exactement pour ca que j'ai fait multiplié par pi et divisé par 180, pour tranfsormer le tout en radians ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Trouver Un Point (X, Y)

 

Sujets relatifs
c++ builder avec power point[Word] Saisir une zone depuis un point A jusqu'à un point B dans Word
Si quelqu'un pouvez m'éclaircir sur ce point :commen trouver javax.ejb ?
comment trouver javax.ejb ?trouver le path d'un fichier excel
Trouver la date du jourtrouver le numéro d'une case
le point par défaut comme séparateur? [résolu] trouver l'adress IP
Plus de sujets relatifs à : Trouver Un Point (X, Y)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR