X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=CreaPhase.git;a=blobdiff_plain;f=octave_packages%2Fnurbs-1.3.6%2Fvecangle.m;fp=octave_packages%2Fnurbs-1.3.6%2Fvecangle.m;h=8d65002c2740c32f9c18895bb5d7a85ba54514be;hp=0000000000000000000000000000000000000000;hb=f5f7a74bd8a4900f0b797da6783be80e11a68d86;hpb=1705066eceaaea976f010f669ce8e972f3734b05 diff --git a/octave_packages/nurbs-1.3.6/vecangle.m b/octave_packages/nurbs-1.3.6/vecangle.m new file mode 100644 index 0000000..8d65002 --- /dev/null +++ b/octave_packages/nurbs-1.3.6/vecangle.m @@ -0,0 +1,50 @@ +function ang = vecangle(num,den) + +% +% VECANGLE: An alternative to atan, returning an arctangent in the +% range 0 to 2*pi. +% +% Calling Sequence: +% +% ang = vecmag2(num,dum) +% +% INPUT: +% +% num : Numerator, vector of size (1,nv). +% dem : Denominator, vector of size (1,nv). +% +% OUTPUT: +% ang : Arctangents, row vector of angles. +% +% Description: +% +% The components of the vector ang are the arctangent of the corresponding +% enties of num./dem. This function is an alternative for +% atan, returning an angle in the range 0 to 2*pi. +% +% Examples: +% +% Find the atan(1.2,2.0) and atan(1.5,3.4) using vecangle +% +% ang = vecangle([1.2 1.5], [2.0 3.4]); +% +% Copyright (C) 2000 Mark Spink +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation, either version 2 of the License, or +% (at your option) any later version. + +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program. If not, see . + +ang = atan2(num,den); +index = find(ang < 0.0); +ang(index) = 2*pi+ang(index); + +end