NORMALIZEANGLE Normalize an angle value within a 2*PI interval. ALPHA2 = normalizeAngle(ALPHA); ALPHA2 is the same as ALPHA modulo 2*PI and is positive. ALPHA2 = normalizeAngle(ALPHA, CENTER); Specifies the center of the angle interval. If CENTER==0, the interval is [-pi ; +pi] If CENTER==PI, the interval is [0 ; 2*pi] (default). Example: % normalization between 0 and 2*pi (default) normalizeAngle(5*pi) ans = 3.1416 % normalization between -pi and +pi normalizeAngle(7*pi/2, 0) ans = -1.5708 See also vectorAngle, lineAngle
0001 function alpha = normalizeAngle(alpha, varargin) 0002 %NORMALIZEANGLE Normalize an angle value within a 2*PI interval. 0003 % 0004 % ALPHA2 = normalizeAngle(ALPHA); 0005 % ALPHA2 is the same as ALPHA modulo 2*PI and is positive. 0006 % 0007 % ALPHA2 = normalizeAngle(ALPHA, CENTER); 0008 % Specifies the center of the angle interval. 0009 % If CENTER==0, the interval is [-pi ; +pi] 0010 % If CENTER==PI, the interval is [0 ; 2*pi] (default). 0011 % 0012 % Example: 0013 % % normalization between 0 and 2*pi (default) 0014 % normalizeAngle(5*pi) 0015 % ans = 0016 % 3.1416 0017 % 0018 % % normalization between -pi and +pi 0019 % normalizeAngle(7*pi/2, 0) 0020 % ans = 0021 % -1.5708 0022 % 0023 % See also 0024 % vectorAngle, lineAngle 0025 % 0026 0027 % ------ 0028 % Author: David Legland 0029 % E-mail: david.legland@inrae.fr 0030 % Created: 2008-03-10, using Matlab 7.4.0.287 (R2007a) 0031 % Copyright 2008-2024 INRA - BIA PV Nantes - MIAJ Jouy-en-Josas 0032 0033 center = pi; 0034 if ~isempty(varargin) 0035 center = varargin{1}; 0036 end 0037 0038 alpha = mod(alpha-center+pi, 2*pi) + center-pi;