2017-07-01 24 views
0

角度(この例では度ですが、ラジアンでもよい)には次の関数が必要です(連続していなければなりません。 :角度の三角関数

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

HTTPS://docs.sci py.org/doc/scipy-0.14.0/reference/generated/scipy.signal.sawtooth.html – DeepSpace

答えて

0

おかげDeepSpaceが、それは箱から出して動作しません:この(迅速かつ汚い)のような例えば

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

はここであまり迅速-N-汚いです溶液:

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