角度上的三角函数

时间:2017-07-01 10:43:28

标签: python-2.7 function

我需要一个适用于角度的函数(例如度数,但也可能是弧度),具有以下(它必须是连续的,我只写下一些键值来理解行为):

any_function(angle):

  0-> 0.0
 45-> 0.5
 90-> 1.0
135-> 0.5
180-> 0.0
225->-0.5
270->-1.0
335->-0.5
360-> 0.0

这是一个简单的三角波。

某些模块中是否存在任何内容,或者我是否需要自行创建? 例如像这样(快速和肮脏):

def toTriangle(angle):
if angle < 90 and angle >= 0:
    t = (angle/90.)
elif angle <= 180 and angle >= 90:
    t = 2-(angle/90.)
elif angle <= 270 and angle >= 180:
    t = -(3-(angle/90.))
else:
    t = -(4-(angle/90.))
return t

1 个答案:

答案 0 :(得分:0)

感谢DeepSpace的建议,但它没有开箱即用:

from scipy.signal import sawtooth
sawtooth(0)
Out[4]: array(-1.0)

这是一个不太快的解决方案:

def toTriangle(angle):
    import math
    tr = 1-4*math.fabs(0.5-math.modf(0.25+0.5*angle%(2*math.pi)/math.pi)[0] )
    return t

http://mathworld.wolfram.com/TriangleWave.html