求平均角度

#輸入角度(弧度)的數(shù)組,返回角度平均值
def avgAngle(angles):
    def getDiff(x1,x2):
                pi  = math.pi
        if x1<0:
            x1 += math.pi*2
        if x2<0:
            x2 += math.pi*2
        diff = x2 - x1 + pi
        if (diff < 0):
            diff = diff + 2*pi  - pi
        elif (diff > 2 *pi):
            diff = diff - 2*pi - pi
        else:
            diff = diff - pi
        return diff
        
    diff = 0
    last = angles[0]
    sum  = angles[0]

    for i in range(len(angles)-1):
        diff = getDiff(angles[i],angles[i+1])
        last += diff
        sum  += last

    return normAngle(sum/len(angles))

# wrapping angle to [-pi .. pi]
def normAngle(angle):
        import math
        angle  = math.fmod( angle  + 5*math.pi, 2*math.pi) - math.pi
        return angle
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容