问题标签 [atan2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
603 浏览

math - 如何将球坐标的两个角度(theta 和 phi)映射到 360 度

要获得球面坐标(theta、phi 和 alpha),我使用以下代码:

并将 theta 映射到 0-360 度,我使用以下代码:

但是我如何将 phi 映射到 0-360 度?我尝试了与用于 theta_deg 相同的原理,但它并没有很好地工作。

0 投票
3 回答
169 浏览

c++ - 将角度转换为矢量并返回会改变角度?

所以我有以下角度(rad): 3.45575213 现在我通过 cos & sin 将其转换为向量(tDir 之前为零):

现在我通过以下方式将其转换回来:

包装看起来像这样:

PI:

结果明显不同:3.45575237

当这个计算每秒执行 120 次时,这种差异真的很大,或者至少看起来像这样,因为我的对象是顺时针旋转的,这是我设法在我的代码中找到的唯一不准确之处。有没有办法获得更好的结果?

编辑:发现问题!这不是不准确,向量有时是 0,0 !我的错!

0 投票
3 回答
45976 浏览

r - 如何从R中的U和V风分量计算风向

我有 U 和 V 风分量数据,我想根据 R 中的这些值计算风向。

我想最终得到0-360度范围内的风向数据,0°或360°表示风向北,90°表示风向东,180°表示风向南和 270° 表示有风向西吹。

下面是一些示例数据:

我使用以下代码尝试获取风向(列td),但我不相信返回的角度是我想要的角度(即 0°/360° 表示风向北吹,90° 表示风吹向东方等……)。

如果我的方法是否正确,以及如何正确获得所需的风向值,我将不胜感激。虽然使用 lapply 或 ifelse 从风的 U 和 V 分量计算风向很有帮助,但代码确实适用于我的数据,而且我确信获取风向更容易。非常感谢!

0 投票
4 回答
15812 浏览

math - 将 atan2 值转换为标准 360 度系统值

假设我atan2用来获取两个向量之间的角度。

atan2给出弧度值. 我使用 Java 中的内置函数将其转换为度数。这给了我一个介于0180度之间或介于0和之间的值-180(atan2 的性质)。

有没有办法将使用此函数接收的值(在转换为度数之后)转换为标准的 360 度系统,而不改变角度 - 只是它的写入方式?这将使我更容易合作。

谢谢

0 投票
1 回答
279 浏览

r - 在R中按年循环atan2函数

我有一个我创建的人工数据集:

我想取每个 x 和 y 的 arc2tan,例如:

但我只想在年份位置内的每一年执行此操作,这意味着我不想在 1999 年至 2000 年之间或 2001 年至 2002 年等之间找到 theta。仅在同一位置的同一年的 x 和 y 点之间。

我最初编写了一个执行上述操作的循环(我不想这样做),我想知道是否有人知道如何更改它,以便循环每年都会停止并自行重置。原始循环提供如下:

有帮手吗?

0 投票
1 回答
606 浏览

atan2 - 用 lat 和 long 计算方位,但没有 ATAN2 功能

我一直在网上搜索,试图找到一种不使用 ATAN2 函数来计算方位的方法。我找到了这段代码,但我无法让它工作。我试图在我的 PLC 程序中使用它之前验证这个方程,但是数字没有正确出现。任何帮助表示赞赏。

基因

0 投票
2 回答
249 浏览

math - 如何在 Snap.svg 库中更改旋钮的“0°”位置

我使用 Snap.svg 库创建了一个旋钮(基本上是一个圆圈),我使用 Snap 的变换函数和旋转参数来旋转它。

我使用两个 Snap 内置功能,Snap.deg() 并将Snap.angle()旋钮旋转到某个位置(使“手”面向光标或触摸点)。我的理解是它的Snap.angle工作原理与 atan2 函数非常相似,同时Snap.deg将弧度值转换为度

我遇到的问题是,默认情况下,0 / 360° 位置是旋钮的指针(如时针)面对3:00 和(顺时针移动旋钮时度数上升)我希望时针位于 6:00 时的 0 / 360° 位置(顺时针旋转度数仍在上升)。

我试图只加减 90°,但这只会使值不准确,因为从 3:00 到 6:00 计算的角度在 0 到 -90 之间。

这些值很重要,不是因为物理旋钮的外观(当前计算适用于此),而是因为我在代码中的其他地方使用计算值,并且想要正南的值为 0,正西的值为 90,正西的值为 180北等

Snap.deg 的参考是:http ://snapsvg.io/docs/#Snap.angle

0 投票
2 回答
425 浏览

c - atan2() in gcc strange behavior, w_atan2.c: No such file or directory

I have included in my code the math.h and also used -lm but when i use the gcc debugger when it comes to atan2() i get the following:

my code is

0 投票
3 回答
990 浏览

ios - 如何在ios中点击内圈时检测区域

在此处输入图像描述我想在圆圈内点击时找到该区域。其实我已经做了一个计算,但那是不准确的。

检查我编写的代码片段,以便在我的循环视图中找到选项卡的位置。

在此处输入图像描述

0 投票
1 回答
2928 浏览

java - 如何在java中找到两个向量之间的顺时针角度

所有矢量

首先,我想将以下向量称为:

向量 M1 = [O → M1];向量 C1 = [O → E];

向量 M2 = [A → M2];向量 C2 = [A → C];

向量 M3 = [B → M3];向量 C3 = [B → G];

每个 M 向量都是主向量或基向量。

我的问题是如何找到这些向量(M 到 C)之间的角度。决定 C 看哪个方向与 M 比较。

例如

1.) M1 和 C1 方向正确。

2.) M2 和 C2 方向为左。

3.) M3 和 C3 方向回来了。

附言。对不起我的英语不好,如果你不明白我想说什么,问我。

编辑:角度应该是顺时针方向。