ANSA的视觉可以通过函数GetViewAngles获取,但是该函数获取的是绕原始坐标系的旋转角度向量(α,β,θ),在实际使用过程中,我们更希望获取视角向量以计算相关向量夹角。下面对视角向量进行推导。





import mathimport typingdef getViewVector()->typing.Tuple[float]:# 获取视角转动角angles:typing.List[float] = base.GetViewAngles()angleRad = map(math.radians, angles)rotateSin:typing.List[float] = list(map(sin, angleRad))rotateCos:typing.List[float] = list(map(cos, angleRad))# 计算视角向量三分量temp:float = rotateCos[0]*rotateSin[1]x:float = temp*rotateCos[2] + rotateSin[0]*rotateSin[2]y:float = temp*rotateSin[2] - rotateSin[0]*rotateCos[2]z:float = rotateCos[0]*rotateCos[1]return (x, y, z)