3D angle Measurement

2 visualizzazioni (ultimi 30 giorni)
Emre Erdogan
Emre Erdogan il 20 Ago 2018
Commentato: ADragon il 20 Ago 2018
Hello, I have an one 3D dataset of a metal object that i want to measure some data from it. I am able to measure the length etc but calculating the angles giving me hard time since it can be positioned in different angles itself. I was wondering what would be the best and simple thing to calculate the angles. How can i move the data to the certain xyz plane ? or is it possible to create another xyz plane with the reference points in the object thanks
  3 Commenti
Emre Erdogan
Emre Erdogan il 20 Ago 2018
Modificato: Emre Erdogan il 20 Ago 2018
It is just a one part metal object. It is like "r" slightly bended to right and slightly to backward. I managed to make a centerline so that it becomes easier to calculate. So the data is skeleton of the object now. I would use the coordinates of end points and turning points for making the calculation but since it is diffetently positioned in every scan i couldnt use it.
ADragon
ADragon il 20 Ago 2018
Hi Emre, you could use vector math. Using the equation cos(theta) = (u dot v)/(mag u * mag v)
p1 = rand(1,3); % Point 1
p2 = rand(1,3); % Point 2
p3 = rand(1,3); % Point 3
% Vector u from p2 to p1
% Vector v from p2 to p3
u = p1 - p2;
v = p3 - p2;
o = zeros(1,3);
udotv = sum(u.*v); % dot product of u and v
umag = norm(u); % vector magnitude of u
vmag = norm(v); % vector magnitude of v
theta = acos(udotv/(umag*vmag))*180/pi;
figure
p = [u; o; v];
plot3(p(:,1),p(:,2),p(:,3))
title(['Vector Angle = ' num2str(theta,4) ' deg'])
axis equal
grid on

Accedi per commentare.

Risposte (0)

Categorie

Scopri di più su Operating Points in Help Center e File Exchange

Prodotti


Release

R2013b

Community Treasure Hunt

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

Start Hunting!

Translated by