def mode_ROUND(self, x, y, range):
"""
If input value bellow deadzone range, output value is zero
If input value is above deadzone range,
output value is 1 (or maximum allowed)
"""
if y == 0:
# Small optimalization for 1D input, for example trigger
if abs(x) > self.upper:
return copysign(range, x)
return (0 if abs(x) < self.lower else x), 0
distance = sqrt(x*x + y*y)
if distance < self.lower:
return 0, 0
if distance > self.upper:
angle = atan2(x, y)
return range * sin(angle), range * cos(angle)
return x, y
评论列表
文章目录