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
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**
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
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
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é ..
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
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 puis b avec
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 ...
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 :
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
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :