我正在寻找能够翻转位于45°矢量(或pi / 4弧度)上的“轴”周围的三角圆的数学函数。
如 :
|---------|---------|
| x | f(x) |
|---------|---------|
| 0 | 90 |
| 45 | 45 |
| 90 | 0 |
| 135 | 315 |
| 180 | 270 |
| 225 | 225 |
| 270 | 180 |
| 315 | 135 |
|---------|---------|
举几个例子。
所以基本上我需要转一个罗盘:
进入三角圆:
我只发现了像“180度角”这样的东西,但这不是我想要的那种旋转。可能吗 ?
你的问题的主要困难是结果中的“跳跃”,其中f(90)
应该是0
但f(91)
应该是359
。一种解决方案是使用一个跳跃运算符 - 即模数运算符,它通常由%
字符表示。
在像Python这样的语言中,模数运算符总是返回一个正结果,你可以使用
def f(x):
return (90 - x) % 360
如果操作符前的数字为负数,则某些语言可能会返回否定结果。您可以通过在获取模数之前添加360
来对待它,这应该适用于所有使用模数运算符的语言:
def f(x):
return (450 - x) % 360
您可以使用以下方式演示以下任
for a in range(0, 360, 45):
print(a, f(a))
打印出所需的内容:
0 90
45 45
90 0
135 315
180 270
225 225
270 180
315 135
如果您的语言没有模数运算符,则可以使用floor
或int
函数进行模拟。如果您需要使用其中任何一种而不是模数的解决方案,请告诉我。