Inscription / Connexion Nouveau Sujet
Niveau logiciels
Partager :

trigonométrie

Posté par
TSX
20-09-23 à 20:12

bonjour,

je bute sur un problème purement trigonométrique, j'essaie des formules et je n'arrive à rien alors j'ai décidé de poster mon problème :
voyez les images , la sphère rose peut se déplacer en tous points de l'espace X Y avec Z = 0, X <300 et Y < 300 .

le cylindre jaune fait 500 de long et je dois trouver l'angle X et Y de ce cylindre de façon à ce que l'extrémité jaune soit toujours  en contacte avec le cylindre bleu.

alors j'ai fait :
AlphaX = asin(Cy/500)
AlphaY = -asin(Cx/500)
où Cx et Cy sont les coordonnées de la sphère rose.

le problème : ça fonctionne très bien si je déplace ma sphère rose sur les axes . mais dés que je m'en éloigne, ça se décolle comme sur la dernière image.
je pense que ça vient de l'angle Y.

merci de m'avoir lu , si vous voulez plus de détail n'hésitez pas . je joindrais le fichier prochainement , si vous avez blender c'est très simple ( sauf les équations trigonométrique lol ) .

bonne soirée

trigonométrie

trigonométrie

trigonométrie

Posté par
TSX
re : trigonométrie 20-09-23 à 20:53

un lien :

ne déplacez que la sphère violette clic puis touche G pour le déplacer.
clique sur la molette pour tourner la vue .
les équations sont disponible en cliquant sur le cylindre jaune , vous verrez apparaitre  une coloration violette sur X et Y dans rotation à droite . cliqué dessus pour changer la formule ou clique droit puis édit driver pour ajouter de nouvelles variables.

malou edit > ** mise en lien direct**

Posté par
carpediem
re : trigonométrie 21-09-23 à 09:09

salut

plutôt que de cylindre je pense qu'il faut parler de segment parce qu'un cylindre possède un volume

si on note A son extrémité dans le plan et (x, y, 0) ses coordonnées et B l'autres extrémités et (0, 0, b) ses coordonnées avec AB = 500

alors avec O l'origine du repère tu as la première relation x^2 + y^2 + b^2 = 500

alors tu peux introduire déjà l'angle t = (Ox, OA) et je note w = (AO, AB) ton angle phi

et tu as déjà les relations OA cos t = x et OA sin t = y

et 500 cos w = OA et 500 sin w = OB

avec tout ça (à bricoler) tu devrais y arriver

Posté par
TSX
re : trigonométrie 21-09-23 à 11:49

bonjour carpediem,

merci bien , pour avoir poser le problème , alors pour faire honneur au mathématique , j'ai fait un petit croquis sans cylindre ni sphère .
donc je reprend les formules :
OA cos t = x                                  avec OA = (x2+y2)
t = acos ( x / (x2+y2) )

OA sin t = y
t = asin ( y / (x2+y2) )

500 cos w = OA
w = acos ( (x2+y2)  / 500 )

ça ne marche pas mais l'angle t , entre l'axe des X ( O, x) et ( O, A) n'est pas à paramétré puisque je déplace librement mon point A sur mon plan . il me faudrait trouver l'angle (OAB) en X et en Y pour que B soit toujours sur mon axe Z . la 3D c'est compliqué ..

trigonométrie

Posté par
carpediem
re : trigonométrie 21-09-23 à 14:10

oui mais il faut le faire dans le bon sens (enfin faut voir !! ) :


la contrainte c'est B(0, 0, b) avec 0 < b < 500 et que A soit dans le plan (Oxy)

le théorème de Pythagore t'impose alors la distance OA = \sqrt {500^2 - b^2}

ensuite tu en déduis cos t et sin t avec la trigo ...


mais en fait je pense que le pb est mal traduit :

on se donne A(x, y) ... (avec les contraintes nécessaires sur x et y

on en déduit OA avec OA^2 = x^2 + y^2 puis b avec b^2 = 500^2 - OA^2

maintenant tu as bien les trois côtés du triangle AOB donc tu peux avoir l'angle BAO = w

ce me semble-t-il ...

Posté par
TSX
re : trigonométrie 22-09-23 à 10:32

ps: je reposte , les 2 était devenu des 2 c'était trop illisible et frustrant pour moi , si un modo passe par là vous pourriez supprimer le poste d'avant , merci beaucoup

j'ai enfin trouver la solution et mon erreur houra !

la coordonnée z de B est calculé  et fait √ ( 5002 - OA2) avec OA = √ ( x2 + y2 ) . x et y les coordonné de A. ça m'a permis de vérifier que la rotation est correcte , mais je ne m'en suis pas servis pour la rotation.

pour la rotation X de AB ,  on a asin ( OA / 500 ) .
mon problème était que je cherchais à mixer la rotation en X et en Y alors qu'une rotation en Z après la rotation en X était la solution.

donc calcule de l'angle Z de (OAB) avec l'axe des X et OA.
acos ( Ox / OA )
acos ( x / √ ( x2 + y2 ) )
ça ne marche pas, c'est décalé donc on fait un quart de tour :
-pi/2 + acos ( x / √ ( x2 + y2 ) )
ensuite ça ne marche pas pour les y négatifs donc on fait une condition :
-pi/2 + acos ( x / √ ( x2 + y2 ) ) if y > 0 else -pi/2 - acos ( x / √ ( x2 + y2 ) )

Voilà, c'est nickel maintenant ça marche parfaitement , mais mathématiquement est ce correcte ? aurais je pu éviter de décaler la rotation de -pi/2 ? Et pour les y négatif , est ce qu'il y aurait une relation plus générale qui m'aurais évité la condition ?

en tout cas je te remercie Carpediem de ta précieuse aide , ça m'a permis de voir le problème autrement  et de bien poser le problème avec les relations trigo.

Le petit lien du fichier blender pour vous amuser :

Posté par
carpediem
re : trigonométrie 22-09-23 à 18:52

tant mieux ...

le pb des +- pi/2 ou +- arccos provient certainement des signes de x et y car les fonctions arccos et arcsin sont définies sur des ensembles particuliers

donc effectivement cela nécessite une condition pour savoir dans quel quadrant tu te trouves exactement

Posté par
carpediem
re : trigonométrie 22-09-23 à 19:28

éventuellement il peut ne pas y avoir besoin de test s'il existe la fonction sgn (qui donne le signe d'un nombre)

et alors il suffit d'écrire :  ... = -pi/2 + sgn(y) * acos ( x / √ ( x2 + y2 ) ) )



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !