Effacer les filtres
Effacer les filtres

how to find cosine angle known the end points of 2 linesegments

3 vues (au cours des 30 derniers jours)
krishnasri
krishnasri le 28 Avr 2015
Commenté : krishnasri le 5 Mai 2015
There are 2 line segments, known their end points, how can i find angle between them
  1 commentaire
Guillaume
Guillaume le 29 Avr 2015
Note: you calculate the dot product of two vectors with dot and the norm with norm.

Connectez-vous pour commenter.

Réponse acceptée

Guillaume
Guillaume le 29 Avr 2015
The arguments you pass to dot and norm must be vectors not scalars
v1 = [1 1]
v2 = [0 3]
D = [v1;v2]; %possibly you have something like this
costheta = dot(D(1, :), D(2, :)) / (norm(D(1, :)) * norm(D(2, :)));
thetaindegrees = acosd(costheta)

Plus de réponses (1)

Roger Stafford
Roger Stafford le 29 Avr 2015
Modifié(e) : Roger Stafford le 29 Avr 2015
Using 'atan2' or 'atan2d' and cross product is more accurate for angles that are near zero or near pi (180 degrees.)
a = atan2(norm(cross(D1,D2)),dot(D1,D2)); % Angle in radians
or
a = atan2d(norm(cross(D1,D2)),dot(D1,D2)); % Angle in degrees
  1 commentaire
krishnasri
krishnasri le 5 Mai 2015
I've around 60 such values in excel sheet and I need to calculate angle between all these points. How can I put the same in a loop for calculating it for 60 values?
D = xlsread('45_A.xls');
for i=1:60
CosTheta = dot(D(i,:),D(i+1,:))/(norm(D(i,:))*norm(D(i+1,:)));
ThetaInDegrees = acosd(CosTheta);
end
xslwrite('result',ThetaInDegrees);
but there is some error in the values. can u please help me

Connectez-vous pour commenter.

Catégories

En savoir plus sur Particle & Nuclear Physics 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