2011-09-22 2 views
0

Ceci est une question de débutant de quelqu'un qui n'a pas beaucoup d'expérience en mathématiques. Pardon!Détection de différents types de mouvement dans l'espace 3D

Comment détecter, dans un espace 3D, si un objet se déplace vers l'avant (vers son orientation) ou vers l'arrière? Je peux obtenir son vecteur d'orientation et ses coordonnées de position à tout moment.

Merci beaucoup pour votre aide.

Répondre

0

Calculez le produit scalaire du vecteur vitesse de l'objet avec son vecteur d'orientation. La valeur est le cosinus de l'angle entre les deux, donc les valeurs positives indiquent le mouvement vers l'avant.

Si le vecteur de vitesse n'est pas immédiatement disponible, utilisez une approximation basée sur les positions à deux points proches dans le temps. Plus précisément, si vous avez une fonction pos(t) qui donne le vecteur de position:

v_approx = (pos(t+dt) - pos(t))/dt 

La différence dans les temps, dt, devrait être un petit nombre. Vous pourriez être en mesure de déterminer une valeur appropriée pour dt en fonction de votre compréhension du problème, mais plus généralement, vous devrez essayer plusieurs valeurs (par exemple, en divisant par deux la valeur de dt) jusqu'à ce que v_approx se stabilise.

+0

Auriez-vous l'amabilité de me dire comment calculer le vecteur vitesse de l'objet? – John