Question
I need to find the angles between two vectors (v1=p1-p2; v2=p2-p3) defined by three points (p1, p2 and p3). The problem is that I can only get one angle, and I need the three angles that represents the position of the second vector in respect to the first. In other words I need to calculate the angle in sagittal perspective, frontal perspective and tranverse perspective. These two vectors represents two segments of the body and I need to see the position of the distal segment relative to the proximal one. This is a code that I have until now. p1=[-83.3958 12.4263 36.4348]; p2=[-86.9626 21.0892 23.2980]; p3=[ -274.7046 58.9844 -171.2332]; v1 = p2-p1; v2 = p3-p2; angle = rad2deg(atan2(norm(cross(v1,v2)),dot(v1,v2))); I see in other forums, but none have a explain how to calculate the three angles of one vector relative to a another. Thanks in advance.
Expert Answer
Kshitij Singh
PhD Expert
Answered Aug 24, 2026
I think you should project the vectors onto each plane consecutively and calculate then the angle formed by the projections:
p1=[-83.3958 12.4263 36.4348]; p2=[-86.9626 21.0892 23.2980]; p3=[ -274.7046 58.9844 -171.2332]; v1 = p2-p1; v2 = p3-p2; v_1 = [v1(1) v1(2)]; v_2 = [v2(1) v2(2)]; ang1 = acos(dot(v_1,v_2)/(norm(v_1)*norm(v_2))); v_1 = [v1(2) v1(3)]; v_2 = [v2(2) v2(3)]; ang2 = acos(dot(v_1,v_2)/(norm(v_1)*norm(v_2))); v_1 = [v1(1) v1(3)]; v_2 = [v2(1) v1(3)]; ang3 = acos(dot(v_1,v_2)/(norm(v_1)*norm(v_2)));
100% Run Guarantee
3-Hour Fast-Track Delivery
Need a Custom Version or Complete Simulation for This Problem?
Our 500+ PhD engineers build, debug, and optimize working MATLAB scripts and Simulink (.slx) models tailored to your exact assignment rubrics with zero plagiarism.
Tested on MATLAB R2024b / R2026a
Turnitin 0% Plagiarism Report
Free 7-Day Revisions Guarantee
Have a different question? Ask here
Related angles Questions & Solutions
Browse All →
Explore similar technical troubleshooting questions and verified MATLAB solutions:
Ready-to-Run MATLAB & Simulink Projects
Browse All Projects →