# How can I find the angle between two vectors that answer should be between 0 to 2*pi

49 vues (au cours des 30 derniers jours)
Commenté : Torsten le 31 Mar 2023
We have two points on a circle in 3D space, as well as the center point. How can we calculate the angle between the vector from the center to point one and the vector from the center to point two, with the calculation starting from vector one counter-clockwise to vector two? In other words, the angle should be calculated such that if our first vector is from (0,0,0) to (0,-1,0) and the second vector is from (0,0,0) to (0,0,-1), the angle should be 270 degrees or 3*pi/2, not 90 degrees.
##### 0 commentairesAfficher -1 commentaires plus anciensMasquer -1 commentaires plus anciens

Connectez-vous pour commenter.

### Réponse acceptée

Bjorn Gustavsson le 31 Mar 2023
This question has been answered several times:
angle-betwen-two-3d-vectors-in-the-range-0-360-degree, angle-between-two-vectors-in-matlab. But you should also have a think about why your question isn't sufficiently well stated - what's the positive direction for your angle and why do you chose that direction?
HTH
##### 9 commentairesAfficher 8 commentaires plus anciensMasquer 8 commentaires plus anciens
Torsten le 31 Mar 2023
You are right: keeping counterclockwise, the angle changes from 90 to 270 degrees depending on whether you look from above or from below the plane the circle is in.

Connectez-vous pour commenter.

### Plus de réponses (1)

Luca Ferro le 31 Mar 2023
Modifié(e) : Luca Ferro le 31 Mar 2023
As suggested there you can trya variation like this:
angle=180*atan2(norm(cross(a,b)), dot(a,b))
##### 0 commentairesAfficher -1 commentaires plus anciensMasquer -1 commentaires plus anciens

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Nearest Neighbors dans Help Center et File Exchange

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by