|
From: | Jerome BENOIT |
Subject: | Re: [Help-gsl] angle between two vectors |
Date: | Mon, 29 Mar 2010 13:30:56 +0800 |
User-agent: | Mozilla-Thunderbird 2.0.0.22 (X11/20090707) |
are we dealing with direction or vectors ? Liam Healy wrote:
I'm a big fan of atan2, but in this case there's no benefit to using it because an angle between two vectors will always be less than or equal to 180 degrees, so the quadrant is unambiguous from the cosine. Dot product and cosine is the right way to go. Liam On Sun, Mar 28, 2010 at 11:11 AM, Jerome BENOIT <address@hidden> wrote:Hello List, a better idea is to build some code around the atan2 function. Jerome John D Lamb wrote:On Sun, 2010-03-28 at 11:07 +0200, Jordi wrote:I am quite new to maths and gsl I would like to get the angle between two vectors.In C it should be something like the following. (You may have to check where acos is defined, check norm_u * norm_v != 0; and you may want a direction with the angle.) For floats use snrm and sdot instead of dnrm and ddot. #include<gsl/gsl_blas.h> … gsl_vector* u, v; double norm_u, norm_v, x, angle; … norm_u = gdl_blas_dnrm( u ); norm_v = gdl_blas_dnrm( v ); gsl_blas_ddot( u, v, &x ); angle = acos( x / (norm_u * norm_v ) );-- Jerome BENOIT jgmbenoit-at+rezozer*dot_net
-- Jerome BENOIT jgmbenoit-at+rezozer*dot_net
[Prev in Thread] | Current Thread | [Next in Thread] |