]> Creatis software - CreaPhase.git/blob - octave_packages/nurbs-1.3.6/vecangle.m
Add a useful package (from Source forge) for octave
[CreaPhase.git] / octave_packages / nurbs-1.3.6 / vecangle.m
1 function ang = vecangle(num,den)
2
3
4 % VECANGLE: An alternative to atan, returning an arctangent in the 
5 %             range 0 to 2*pi.
6
7 % Calling Sequence:
8
9 %   ang = vecmag2(num,dum)
10
11 % INPUT:
12
13 %   num         : Numerator, vector of size (1,nv).
14 %   dem         : Denominator, vector of size (1,nv).
15 %
16 % OUTPUT:
17 %   ang         : Arctangents, row vector of angles.
18
19 % Description:
20
21 %   The components of the vector ang are the arctangent of the corresponding
22 %   enties of num./dem. This function is an alternative for 
23 %   atan, returning an angle in the range 0 to 2*pi.
24
25 % Examples:
26
27 %   Find the atan(1.2,2.0) and atan(1.5,3.4) using vecangle
28
29 %   ang = vecangle([1.2 1.5], [2.0 3.4]);
30 %
31 %    Copyright (C) 2000 Mark Spink
32 %
33 %    This program is free software: you can redistribute it and/or modify
34 %    it under the terms of the GNU General Public License as published by
35 %    the Free Software Foundation, either version 2 of the License, or
36 %    (at your option) any later version.
37
38 %    This program is distributed in the hope that it will be useful,
39 %    but WITHOUT ANY WARRANTY; without even the implied warranty of
40 %    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
41 %    GNU General Public License for more details.
42 %
43 %    You should have received a copy of the GNU General Public License
44 %    along with this program.  If not, see <http://www.gnu.org/licenses/>.
45
46 ang = atan2(num,den);
47 index = find(ang < 0.0);
48 ang(index) = 2*pi+ang(index);
49
50 end