4

有没有使用 Sin(720) 或 Cos(1440)(以度为单位的角度)?无论是在计算机编程还是在任何其他情况下?一般来说,是否有任何大于 360 度角的 Sin/Cosine/Tan 的使用?

在物理学中,我们确实经常使用点积和叉积,但即使它们也总是需要小于 180 度的角度。

大家好,我知道如何计算它们....我想知道它们是否有用????我什么时候会遇到一种情况,例如当我需要计算 Sin(440) 时???

4

15 回答 15

10

在数学和编程方面:

Sin(x) = Sin(x % 360)

正如另一个答案所指出的那样,大于 360 的角度表示一个或多个完整的圆加上模部分。在某些情况下,这可能具有物理意义。

此外,在进行三角函数计算时,您应该考虑到这一事实。例如:

sin(a)*cos(a) = (1/2)*sin(2a)

对于 a>180,您将得到大于 360 的角度的 sin。

顺便说一下,看看这里

于 2009-05-20T13:31:44.173 回答
4

我在做角度算术时看到过这样的事情:

float angleOne = 150;
float angleTwo = 250;

//...

float result = Sin(angleOne + angleTwo); // Sin(400)
float result = Sin(angleOne - angleTwo); // Sin(-100)

在这个(人为的)示例中,这似乎很明显,但是当您根据多个对象的任意旋转计算角度时,您并不总是知道您会得到什么样的数字。想象一下,例如,在 3D 游戏中计算玩家站在旋转平台上时的位置。

于 2009-05-20T13:37:53.817 回答
3

绕一圈旋转一圈是 360 度或2pi弧度。

正弦和余弦等三角函数在达到 360 度时会“环绕”,其作用与 0 度时相同。基本上,会发生以下情况:

angle_in_unit_circle = angle mod 360

此外,某些三角函数(例如切线)未定义在某些角度,例如 90 度和 270 度,其中角度的切线将返回正无穷或负无穷大。

这种“环绕”可以通过使用单位圆内接的直角三角形表示正弦、余弦、正切函数来看到,这种行为使这些函数具有周期性,因为它们会一遍又一遍地重复它们的模式。

维基百科有一篇关于三角函数的广泛文章,因此可能值得一看。

用法

在使用方面,我想不出一个很好的例子,除了,也许可以表示一个粒子在极坐标系中某个时间的位置,其中角度θ取决于时间t

r(θ(t)) = t    where θ(t) = t

对于从 0 到 720 的 t 值,它可以在笛卡尔坐标系中表示为:

x(t) = r sin(θ(t)) == t sin(t)
y(t) = r cos(θ(t)) == t cos(t)

粒子将以螺旋式运动方式运动,具体取决于时间t。在这种情况下,将计算超过 360 度角的正弦和余弦。

(而且我的数学很生疏,所以如果上面的方程式有任何错误,请告诉我!)

于 2009-05-20T13:32:37.137 回答
3

每当您处理用户交互技术时,它们完全有可能将您推过 0 度或 360 度。想象一下,您正在使用炮塔制作游戏。它当前指向 359 度,用户将操纵杆向右拉动:现在它指向 361 度。如果您错误地执行角度表示,突然间,枪会快速向左移动近 360 度。

我预测用户会……对那个错误感到失望

在游戏、模拟和真实设备控制中很重要的参考系的 欧拉角表示有各种各样的问题。云台锁是实际旋转设备控制中的一个严重问题(这是我生活中相机云台设备的问题)。“快速旋转”错误曾是小船自动驾驶系统中的一个非常讨厌的问题——想象一下将钢缆紧紧地缠绕在轮罩周围(即,你不想站在那里)。

于 2009-05-20T13:54:44.597 回答
3

有时,正常的数学意味着你最终会“穿过圆圈”一次或多次,如果你保持数学简单,你的角度可能大于 360。我个人喜欢将角度标准化为 0 到 360 或在这样的操作之后-180到180,但这并不重要。

有时更大的数字可能真的代表了一些东西。举个简单的例子,想象一下打开经典拨号组合保险箱的说明。您需要将表盘旋转几次,因此说明可能是:

   turn(800);  // Twice around plus another 20 degrees
   turn(-500); // Once around the other direction plus 140 degrees
   turn(40);   // Dial in the last digit

在这种情况下,取 sin 或 cos 会告诉您有关表盘最终位置的信息,但您会丢失有关转数的信息。

于 2009-05-20T14:01:02.400 回答
1

在正弦曲线上,Sin(720) == Sin(0) (等等),所以我希望这些函数的任何体面实现都能处理“大于”360 度。有很多原因可以达到更大的角度大于 360 或小于 0。

于 2009-05-20T13:35:50.843 回答
1

“主角”范围之外的角度 [-180,180) 本质上是彼此的别名(模 360 度)并且没有物理区别。

从数学/工程的角度来看,如果您有一个旋转数很重要并且必须跟踪的过程(例如来回旋转的电机),那么 0 度和 720 度是不一样的。正弦和余弦只是周期函数,因此它们每 360 度具有相同的值。如果你有一个粒子进行匀速圆周运动,其中 x(t) = A cos (ωt + φ) 并且 y(t) = A sin (ωt + φ),那么相位角 θ = (ωt + φ) 将变为不管它是什么,无论是 0 度还是 720 度还是 82144.33 度或其他什么。

所以函数 cos(θ) 和 sin(θ) 只是用来计算 x 和 y 坐标,不管 θ 的值是多少。在这件事上你没有选择权,如果 θ 是 82144.33 度,那么你会想要计算那个角度的正弦和余弦。

于 2009-05-20T13:46:46.827 回答
1

我玩一个名为 Garry's Mod 的 PC 游戏,在游戏中的某些时刻,在编程时,我想要一个简单的解决方案来保持对象在一个恒定的圆圈中不断移动。为此,我使用了一个永远递增的计时器的正弦和余弦,测量自游戏启动以来的时间量。

T(时间)的正弦等于轨道路径 X 值,而 T 的余弦等于轨道路径 Y 值(X 和 Y 位于 3 维坐标平面上,Z 暂时未使用。)

例子:

T=1000 滴答 X=sin(T) Y=cos(T)

所以在那个时刻 X 是 0.8268795405320025 而 Y 是 0.15466840618074712。

现在假设时间增加到 1500。X 将是 -0.9939019569066535 并且 Y = -0.11026740251372914。

简而言之,它会不断地从 1 波动到 -1,让我有机会将该值乘以 100,并使坐标平面本地化到我的角色位置,然后我可以告诉程序表达式基于移动对象那些坐标,它会在我周围以恒定的圆形路径移动。

多田。谁说你不能从电子游戏中学习?

于 2010-06-30T21:24:09.803 回答
0

由于某种计算,您肯定会得到一个大于 360 度的角度测量值……但它与无数其他角度测量值相同,其中一个在 0 到 360 之间. 但是,如果你正在编写一个函数,你应该能够自己处理这个计算……而不是依赖用户为你做 mod。

即虽然 sin(370) == sin(10) 确实如此,并且用户可以自己进行此翻译,但他们可能出于某种原因不想这样做(请参阅评论中的“螺栓”示例以获得最高评价答案),因此该函数应该能够处理任何值。

于 2009-05-20T13:30:59.103 回答
0

因为sin(x) = sin(x mod 360°)并且cos(x) = cos(x mod 360°)您可以在计算中使用每个值,但您也可以标准化为范围[0°,360°)或任何其他范围360°。大角度是否具有明确定义的含义仅取决于用法。

处理器可能会将计算标准化为一个范围90°甚至更小,并从这个小范围中得出所有其他值。

什么时候会出现大于的争论360°

它们自然出现在周期性时间或空间相关函数的模拟中。

于 2009-05-20T13:34:58.223 回答
0

您的问题没有多大意义,因为您似乎知道这里的区别:

不——您将永远不必“计算”Sin(720),就像您将需要“计算”Sin(0) 一样。您需要查看 Sinus 函数的定义以完全理解幕后发生的事情 - 当理解了这一点后,任何人都可以理解为什么 Sin(0) = Sin(720) - 没有什么神奇的事情发生,(逻辑上)没有 Angle = FullAngle % 360 继续,这一切都在函数应该做什么的定义中。

见维基百科

于 2009-05-20T13:51:58.983 回答
0

@dta,我认为人们有点困惑。你问它是否“有用”。我会说“没关系,因为您只需在执行计算时将角度移动到适当的范围。” 在某些情况下,您需要知道物体旋转了多远,以考虑多次旋转。但除了这些情况之外,解释正常 0-360 范围内的角度更方便。大多数人都会对哪个方向对应于该正常范围内的角度建立一种直观的感觉。170,234 度指向什么方向?与 314 度相同。

于 2009-05-20T13:55:39.930 回答
0

正如@Chris Arguin 和其他人所说,角度大于 360°(或就此而言小于 -360°)是否对您有用取决于您是否需要有关旋转(或其分数)的信息,由角度和角度%360°的区别。

此外,由于您得到相同的答案,因此如果您调用 sin(angle) 而不是 sin(angle%360),您将节省一点处理时间,尤其是当您在循环中进行许多计算时。

OTOH,@Scottie T 提出了一个很好的观点,如果让某人知道您的角度指向的圆周围的位置很重要,那么人们通常可以直观地感知绝对值为 360 或更小的角度的位置,而不是更大的角度。

于 2009-05-20T14:15:20.187 回答
0

在许多情况下,需要 [0,360] 之外的角度。我喜欢密码锁的想法。在这里,人们经常会看到简单的 [0,360] 度范围之外的正角和负角。

多角度公式在数学中通常很重要。三角函数不仅用于三角形,还用于其他地方。它们出现在各种地方,例如傅里叶级数,或图像压缩方案,或微分方程的解。在计算上,确实可以使用 mod 将触发函数的范围缩小到默认值。但是,总是在该标称范围内提供角度很少是真的。

于 2009-05-20T14:16:03.880 回答
0

高于 360 度的角度也用于描述滑雪板技巧:

http://en.wikipedia.org/wiki/List_of_snowboard_tricks#Spins

所以你看,有各种现实世界的例子,你使用更高的角度来描述物体的旋转。

于 2010-12-11T00:27:30.617 回答