複数の角度を平均する(アルゴリズム) 例えばπ度と-π度を単純に平均すると、0度になってしまい、正しい平均値が得られません。角度α1と角度α2を単位円上にある二つの点(P1,P2)の角度とすれば、二つの点(P1,P2)の位置{(x1,y1), (x2,y2)}を平均して平均点(Pa)の座標(xa,ya)を得られます。平均点(Pa)の角度を逆正接関数で算出して、それを角度α1と角度α2の平均値と見なすことができます。 下記は二つの角度の平均を求める関数です。 double MeanTwoAngles(double alpha1, double alpha2) { double x1 = cos(alpha1); double y1 = sin(alpha1); double x2 = cos(alpha2); double y2 = sin(alpha2); xa = (x1 + x2) / 2; ya = (y1 + y2) / 2; return atan2(ya, xa); } |