Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Trigonometrie sur VB

10 réponses
Avatar
DenisF
Bonjour =E0 tous.

Je comptait faire une fonction permettant de passer d'une=20
rotation en quaternion =E0 une rotation en angle Euler et=20
inversement. Mais avec le peu de fonctions math=E9matique=20
possible sur VB (m=EAme pas de ATan2) je ne voie pas comment=20
continuer.

Si quelqu'un =E0 une solution je l'en remercie d'avance.

10 réponses

Avatar
Patrice Henrio
Dans ce cas, soit on utilise Excel pour les calculs ou alors on écrit la
fonction correspondante.
Soit f une fonction implantée sur un intervalle [a,b], croissante
strictement (on pourrait faire pareil avec décroissante, en modifiant
quelques lignes)
On cherche la fonction réciproque g

Function g(x As Double) As Double
Dim résultat As Double, Mini As Double, Maxi As Double, V As Double,
Précision As Double
Mini = a
Maxi = b
Précision = 10 ^ (-5) 'mettre ici la précision souhaitée
If (x < f(Mini)) Or (x > f(Maxi)) Then
Erreur ("g n'est pas définie pour x") 'Définir ici une action erreur
Exit Function
ElseIf x = f(Mini) Then résultat = Mini
ElseIf x = f(Maxi) Then résultat = Maxi
Else
Do While (Maxi - Mini) > Précision
V = (Mini + Maxi) / 2
If x = f(V) Then
résultat = V
Exit Do
Else
If x < f(V) Then Maxi = V Else Mini = V
Loop
If (Maxi - Mini) <= Précision Then résultat = V
g = résultat
End If
End Function

Une autre solution serait de passer par des produits de matrice à définir
évidemment. Pour cela il faut connaître parfaitement le sujet ce que je ne
connais pas.

Si tu me donnes les données du problème, je dois pouvoir te faire une
fonction remplissant ce rôle. j'ai besoin des connaître les données de
départ (les 16 paramètres de la rotation, moins en fait puisqu'une rotation
impose déjà certaines conditions aux paramètres) et les rotations
correspondantes en Euler, c'est à dire en trois dimensions, soit neuf
paramètres maximum (moins bien sûr pour les mêmes raisons que précédemment)


"DenisF" a écrit dans le message de
news:0d3101c3a2b5$3a721080$
Bonjour à tous.

Je comptait faire une fonction permettant de passer d'une
rotation en quaternion à une rotation en angle Euler et
inversement. Mais avec le peu de fonctions mathématique
possible sur VB (même pas de ATan2) je ne voie pas comment
continuer.

Si quelqu'un à une solution je l'en remercie d'avance.
Avatar
Jérôme VERITE
Bonjour,

vous cherchiez peut être la foction "Atn"?

Jérôme

"DenisF" a écrit dans le message de
news: 0d3101c3a2b5$3a721080$
Bonjour à tous.

Je comptait faire une fonction permettant de passer d'une
rotation en quaternion à une rotation en angle Euler et
inversement. Mais avec le peu de fonctions mathématique
possible sur VB (même pas de ATan2) je ne voie pas comment
continuer.

Si quelqu'un à une solution je l'en remercie d'avance.
Avatar
g0ebish thE b0ngmAstEr
regarde ici je pense que sa pourra t'aider..c'est une dll codée en C++ (avec
les sources) utilisable a partir de VB et qui ajoute 175 fonctions
mathematiques:

http://www.Planet-Source-Code.com/vb/scripts/ShowCode.asp?txtCodeIdA200&lngWId=1

--

"I haven't lost my mind, it's backed up on disk somewhere."

"Jérôme VERITE" a écrit dans le message de
news:
Bonjour,

vous cherchiez peut être la foction "Atn"?

Jérôme

"DenisF" a écrit dans le message de
news: 0d3101c3a2b5$3a721080$
Bonjour à tous.

Je comptait faire une fonction permettant de passer d'une
rotation en quaternion à une rotation en angle Euler et
inversement. Mais avec le peu de fonctions mathématique
possible sur VB (même pas de ATan2) je ne voie pas comment
continuer.

Si quelqu'un à une solution je l'en remercie d'avance.




Avatar
Christophe
Bon(jour/soir)

Je ne connais pas beaucoup de langages de programmation qui proposent autre
chose que les fonctions mathématiques de base.

Pour les autres fonctions, on prend ses cours de maths et on compose les
fonctions de base pour obtenir celle désirée.

Concernant la fonction ATan2, si elle existe d'un point de vue mathématique
j'aimerais savoir ce que c'est (la version 2000 de Atn ? lol)

Christophe Vergon


"DenisF" a écrit dans le message de
news: 0d3101c3a2b5$3a721080$
Bonjour à tous.

Je comptait faire une fonction permettant de passer d'une
rotation en quaternion à une rotation en angle Euler et
inversement. Mais avec le peu de fonctions mathématique
possible sur VB (même pas de ATan2) je ne voie pas comment
continuer.

Si quelqu'un à une solution je l'en remercie d'avance.
Avatar
Zoury
Salut Denis! :O)

Je n'ai jamais entendu parler d'un fonction ArcTangente2, mais tu trouveras
peut-être ton bonheur dans l'aide :

Derived Math Functions
http://msdn.microsoft.com/library/en-us/vbenlr98/html/vagrpderivedmath.asp


--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
Avatar
Zoury
et voici la liste des fonctions mathématiques standards.. j'm'étais trompé
de liste.. :O)

Math Functions
http://msdn.microsoft.com/library/en-us/vbenlr98/html/vaidxmathfunctions.asp

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
Avatar
jose MULLER
'Attribute VB_Name = "ATAN3"
' Copyright (c) 1988, 1990 Crescent Software

DefInt I-N
DefDbl A-H, O-Z

Public Function Atan3(A, B)

' Four quadrant inverse tangent function

' Input

' A = sine of angle
' B = cosine of angle

' Output

' C = angle ( 0 =< C <= 2 * pi : radians )

PIDIV2 = 1.5707963267949

If (Abs(A) < 0.00000001) Then
Atan3 = (1# - Sgn(B)) * PIDIV2
Exit Function
Else
c = (2# - Sgn(A)) * PIDIV2
End If

If (Abs(B) < 0.00000001) Then
Atan3 = c
Exit Function
Else
Atan3 = c + Sgn(A) * Sgn(B) * (Abs(Atn(A / B)) - PIDIV2)
End If

End Function


"DenisF" a écrit dans le message de
news: 0d3101c3a2b5$3a721080$
Bonjour à tous.

Je comptait faire une fonction permettant de passer d'une
rotation en quaternion à une rotation en angle Euler et
inversement. Mais avec le peu de fonctions mathématique
possible sur VB (même pas de ATan2) je ne voie pas comment
continuer.

Si quelqu'un à une solution je l'en remercie d'avance.
Avatar
jose MULLER
fais une recherche sur BNAlib



"DenisF" a écrit dans le message de
news: 0d3101c3a2b5$3a721080$
Bonjour à tous.

Je comptait faire une fonction permettant de passer d'une
rotation en quaternion à une rotation en angle Euler et
inversement. Mais avec le peu de fonctions mathématique
possible sur VB (même pas de ATan2) je ne voie pas comment
continuer.

Si quelqu'un à une solution je l'en remercie d'avance.
Avatar
DenisF
Salut,

Cela me semble parfait je te remercie beaucoup ;)
Avatar
DenisF
g0ebish m'a donné ma réponse, merci à lui.

Pour les autres ATan2 permet de récupérer l'angle par
rapport à une position X,Y sur un tour (0-2Pi)
Cette fonction est dispo en C++ ;)