如何围绕45°角翻转三角圆?

问题描述 投票:1回答:1

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

如 :

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

举几个例子。

所以基本上我需要转一个罗盘:

Compass rose

进入三角圆:

enter image description here

我只发现了像“180度角”这样的东西,但这不是我想要的那种旋转。可能吗 ?

function math rotation trigonometry angle
1个回答
1
投票

你的问题的主要困难是结果中的“跳跃”,其中f(90)应该是0f(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函数进行模拟。如果您需要使用其中任何一种而不是模数的解决方案,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.