Trouver les coordonnées du sommet d'un triangle [Résolu]

cs_harmonyk 37 Messages postés samedi 16 septembre 2006Date d'inscription 5 juillet 2012 Dernière intervention - 19 sept. 2010 à 03:09 - Dernière réponse : cs_harmonyk 37 Messages postés samedi 16 septembre 2006Date d'inscription 5 juillet 2012 Dernière intervention
- 19 sept. 2010 à 15:01
Bonsoir,
j'avais posté dans le bar au sujet d'une formule sur un triangle rectangle,
mais je suis en train de gérer ca via javascript.
J'ai pas mal avancé depuis, mais c'est pas au point du tout.
J'explique :

    /*
     *Calcul des coordonnées de la cible
     *
     *  Je pars d'un triangle RST, rectangle en R, ou T représente le départ (x:0,y:0).
     *  ST représente la variable distance.
     *  T correspond à la variable angle.
     *      Pour trouver x (RT) :
     *              cosT RT / ST                     >  cos(angle) = RT / distance
     *              RT ST * cosT                     >  x = distance * cos(angle)
     *      Pour trouver y (RS) :
     *              ST² RS² + RT²                    >  distance² = RS² + x²
     *              RS² ST² - (ST * cosT)²           >  RS² = distance² - x²
     *              RS Racine²(ST² - (ST * cosT)²)   >  y = Racine²(distance² - x²)
     */
    var x = distance*(Math.cos(angle)),
        y = Math.sqrt((distance*distance)-(x*x));

Alors je ne sais pas si je me suis planté dans les formules, mais le résultat n'est pas concluant du tout, surtout si angle est inférieur à 45°.
J'en appelle donc aux matheux, car là je commence à être largué...
Bon ok peut être à cause de l'heure...
Merci d'avance !
Afficher la suite 

8 réponses

Répondre au sujet
PetoleTeam 3435 Messages postés lundi 26 décembre 2005Date d'inscription 14 janvier 2011 Dernière intervention - 19 sept. 2010 à 11:40
+3
Utile
Bonjour,
visiblement cela semble correct, en présument que tu connaisses distance.
Et si tu fais simplement
var x = distance * ( Math.cos( angle));
var y = distance * ( Math.sin( angle));

si c'est pour la gestion des collisions, vu sur un de tes récent POST, je te déconseille l'utilisation des méthodes de l'objet Math, gourmand en ressource et temps...

;O)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de PetoleTeam
PetoleTeam 3435 Messages postés lundi 26 décembre 2005Date d'inscription 14 janvier 2011 Dernière intervention - 19 sept. 2010 à 13:51
+3
Utile
donc qu'est ce qui cloche ??
ne pas oublier que Math.sin ou autre attend un angle en RADIAN

pour la reste
soit deux cercles de rayon R1 et R2 et DeltaY et DeltaX les deltas sur les deux axes on a
SI ( R1² +R2²) INFERIEUR ( DeltaX² +DeltaY²) ALORS
  on continu
SINON
  Il y à collision
FINSI
avec ( R1² +R2²) pouvant être mis en constante ce qui limite fortement les calculs
;O)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de PetoleTeam
PetoleTeam 3435 Messages postés lundi 26 décembre 2005Date d'inscription 14 janvier 2011 Dernière intervention - 19 sept. 2010 à 14:46
+3
Utile
suivant la simple expression
Angle_Radian = Math.PI * (Angle_Degree) / 180;


;O)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de PetoleTeam
NSUADI 540 Messages postés mardi 4 août 2009Date d'inscription 1 février 2013 Dernière intervention - 19 sept. 2010 à 03:57
0
Utile
et c'est quoi ton problème?

Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...

Visual Basic .Net is the best
and vb6.0
Commenter la réponse de NSUADI
cs_harmonyk 37 Messages postés samedi 16 septembre 2006Date d'inscription 5 juillet 2012 Dernière intervention - 19 sept. 2010 à 04:03
0
Utile
Et bien tout simplement que les coordonnées x et y trouvées avec cette formule ne correspondent pas du tout avec le point S, j'en conclu donc que ma formule est pas top...
Commenter la réponse de cs_harmonyk
cs_harmonyk 37 Messages postés samedi 16 septembre 2006Date d'inscription 5 juillet 2012 Dernière intervention - 19 sept. 2010 à 12:10
0
Utile
Bonjour PetoleTeam,
merci de t'intéresser à mes sujet =)

Effectivement ce script est placé juste avant celui de la gestion des collisions.
Merci pour ta formule simplifié, mais c'est bizarre car les résulats me semblent improbables.
Exemple :
J'ai un angle de 10° (T).
J'ai une distance de 400px (ST).
Je me retrouve au final avec des coordonnées :
x (TR) = environ -334.79px
y (RS) = environ -217.1px

Les résultats sont similaires avec ma formule, donc qu'est ce qui cloche ??

En ce qui concerne les ressources utilisées pour l'objet Math, je ne vois pas du tout comment faire autrement...
Commenter la réponse de cs_harmonyk
cs_harmonyk 37 Messages postés samedi 16 septembre 2006Date d'inscription 5 juillet 2012 Dernière intervention - 19 sept. 2010 à 14:37
0
Utile
ne pas oublier que Math.sin ou autre attend un angle en RADIAN

Ah !
Et comment je converti un angle en radian avec Js ?
Mes compétences s'arretent là, mon niveau scolaire étant très bas.
Commenter la réponse de cs_harmonyk
cs_harmonyk 37 Messages postés samedi 16 septembre 2006Date d'inscription 5 juillet 2012 Dernière intervention - 19 sept. 2010 à 15:01
0
Utile
Nickel !!!!!!!!!
Ca va beaucoup mieux ainsi !!
Merci à toi pour ta patience !!
Commenter la réponse de cs_harmonyk

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.