NewList angle.d() Macro AE(x) AddElement(angle()) : angle()=x EndMacro Procedure.d atan3(y.d,x.d) If x<=0.0 : ProcedureReturn Sign(y)*#PI/2 : EndIf If x>0.0 : ProcedureReturn ATan(y/x) : EndIf If y>0.0 : ProcedureReturn ATan(y/x)+#PI : EndIf ProcedureReturn ATan(y/x)-#PI EndProcedure Procedure.d mAngle(List angle.d()) Define.d sumS,sumC ForEach angle() sumS+Sin(Radian(angle())) : sumC+Cos(Radian(angle())) Next ProcedureReturn Degree(atan3(sumS,sumC)) EndProcedure AE(350.0) : AE(10.0) Debug StrD(mAngle(angle()),6) : ClearList(angle()) AE(90.0) : AE(180.0) : AE(270.0) : AE(360.0) Debug StrD(mAngle(angle()),6) : ClearList(angle()) AE(10.0) : AE(20.0) : AE(30.0) Debug StrD(mAngle(angle()),6) : ClearList(angle())