Angle between two vectors in 3d
224 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
developer
el 20 de Sept. de 2011
Comentada: Bruno Luong
el 1 de Feb. de 2023
Hello,
I have two vectors in 3d and i want to find the angle between those two vectors.
Thanks in advance
0 comentarios
Respuesta aceptada
Jan
el 20 de Sept. de 2011
Or:
angle = atan2(norm(cross(a,b)), dot(a,b))
See this compact discussion about this topic: CSSM: Angle between two vectors . Only 71 replies (Google finds 89 replies, so I assume 18 spam messages?) and 68300 views currently...
[EDITED]: W. Kahan suggested in his paper "Mindeless.pdf":
2 * atan(norm(x*norm(y) - norm(x)*y) / norm(x * norm(y) + norm(x) * y))
9 comentarios
Dyuman Joshi
el 1 de Feb. de 2023
@Jan the CSSM thread you linked does not exist anymore.
Do you happen to have an archived link for that thread?
I am unable to find the thread by simply searching the title, on the Google Groups (CSSM archive)
Bruno Luong
el 1 de Feb. de 2023
@Dyuman Joshi I guess this is the thread https://groups.google.com/g/comp.soft-sys.matlab/c/zNbUui3bjcA/m/c0HV_bHSx9cJ
Más respuestas (3)
Lucas García
el 20 de Sept. de 2011
You can use the subspace function to find the angle between two subspaces:
>> subspace([1;0;0],[0;1;0])
ans =
1.5708
1 comentario
Yadu Bhusal
el 5 de Ag. de 2021
I have 3 points in a line( suppose) and one calculations point separately. A(1,1,1)B(2,2,2)C(3 3 3) in a line and P( 5 5 5) as separate. I want to calculate angle A which is subtended by distance AP. And similar for BP,CP. Is it possible to find angles or make program to calculate these angles at once?
David Young
el 20 de Sept. de 2011
acos(dot(v1, v2) / (norm(v1) * norm(v2)))
EDIT: Having seen Jan Simon's reply, and the long thread at CSSM that he refers to, I realise that the formula I proposed is not a particularly good one. The two methods in Jan's reply are both likely to be preferable.
2 comentarios
Jan
el 20 de Sept. de 2011
Mathematically identical, but numerically more stable, when the vectors have very different lengths:
acos(dot(v1 / norm(v1), v2 / norm(v2)))
rashi
el 15 de Jun. de 2018
hi I want to find the angle in azimuth and elevation plane between wo vectors in 3d. please help
0 comentarios
Ver también
Categorías
Más información sobre Sparse Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!