【问题标题】:How to flip the trigonometric circle around the 45° angle?如何将三角圆翻转 45°角?
【发布时间】:2019-02-20 22:05:39
【问题描述】:

我正在寻找一个能够围绕位于 45° 矢量(或 pi/4 弧度)上的“轴”翻转三角圆的数学函数。

如:

|---------|---------|
|   x     |   f(x)  |
|---------|---------|
|   0     |   90    |
|   45    |   45    |
|   90    |   0     |
|   135   |   315   |
|   180   |   270   |
|   225   |   225   |
|   270   |   180   |
|   315   |   135   |
|---------|---------|

仅举几个例子。

所以基本上我需要转动指南针:

成三角圆:

我只找到了“180 - 角度”之类的东西,但这不是我要寻找的那种旋转。 有可能吗?

【问题讨论】:

  • 不确定我是否理解。如果你围绕通过中心点的任何向量翻转一个圆圈,你肯定会得到相同的圆圈。
  • 同一个圆圈,是的,但是翻转了,所以 45° 和 225° 标记保持在同一个位置。

标签: function math rotation trigonometry angle


【解决方案1】:

您的问题的主要困难是结果中的“跳跃”,其中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

如果您的语言没有取模运算符,可以使用floorint 函数进行模拟。如果您需要使用其中任何一个而不是模数的解决方案,请告诉我。

【讨论】:

  • (450 - x) % 360 是我正在寻找的解决方案。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2013-01-04
  • 2015-08-12
  • 1970-01-01
  • 1970-01-01
  • 2017-01-15
  • 1970-01-01
  • 2014-12-10
  • 1970-01-01
相关资源
最近更新 更多