How to average angles?
Rainer Gratias
rg at joshua.org.chemie.tu-muenchen.de
Fri Feb 14 07:31:09 EST 1997
Hallo altogether.
I've got a little problem, which might sound a little bit stupid.
How do I correctly average angles, keeping the periodicity in mind?
The only (more or less) correct way I found is derived from averaging
complex numbers, using the transformation from polar to cartesian
coordinates:
<ang>=arctan(<sin(ang_i)>/<cos(ang_i)>)
(in Fortran: atan2(<sin(ang_i)>,<cos(ang_i)>))
But, since it's derived from vector averaging, it has quite a strange
behavior for averaging:
0, 0, 180, 180 => -90
0, 0, 180, 180, 180 => 180
0, 0, 0, 180, 180 => 0
or in more detail (with n>=1):
n*0, n*180 => -90
n*0, (n+1)*180 => 180
(n+1)*0, n*180 => 0
Hence, if the total number of values is odd and the difference between
the values is 180, nearly half of all values would be neglected. That's
my problem.
Has somebody a better soulution for this problem?
Any hints are welcome.
Bye,
Rainer Gratias.
********************************************************************************
Technische Universitaet Muenchen
Institut fuer Organische Chemie und Biochemie
Lehrstuhl fuer Organische Chemie II
Rainer Gratias
Lichtenbergstr. 4
D-85747 Garching
Tel : ++49 +89 289-13324
FAX : ++49 +89 289-13210
e-mail: rg at artus.org.chemie.tu-muenchen.de
********************************************************************************
More information about the Molmodel
mailing list