问题标签 [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 回答
482 浏览

javascript - 使用 Math.atan2 的角度及其倒数

这是我用来查找矢量角度及其倒数的原始代码。它们用于稍后在代码中进行一些不同的计算。我想删除第二个 Math.atan2 函数并用以下代码替换它以帮助优化代码:

当我为两个版本打印 obsAngle 的结果时,obsAngle 是相同的(或足够接近),但是程序的行为并不相同。在这两种情况下,obsAngle 都介于 -pi 和 pi 之间。

这两个版本有什么区别会导致问题?

0 投票
0 回答
144 浏览

python - 两个旋转物体之间的角度距离

这可能是一个微不足道的问题,但我找不到我满意的解决方案。

我想计算两个旋转物体之间的距离(角度,辐射),它们的 x,y 坐标是给定的。(xc=0.0, yc=0.0, r=0.0)让我们假设对象在圆上旋转。我可以使用函数“atan2”来分别检索到点一和二的关联a1角度a2

我编写了一个将atan2结果转换为平滑函数的小函数0: 2pi

如果a1 = 0.3a2 = 0.2,a1 - a2工作正常。但是,如果第一个对象已经完成了第一圈,而第二个对象仍然落后,如何适应呢?例如a1=0.1a2=6.2

编辑

我已经制定了一个例子:

我想知道这是否不太复杂,并且我错过了一些基本的触发技巧来做到这一点而没有太多的代码膨胀。

按照惯例,如果a1在前面,则角度为正,否则为负 这更多是估计问题而不是某种速率,没有重叠

0 投票
1 回答
504 浏览

javascript - 获取线中形成atan2的点和距离

有两个点,我想得到这两个点连接的线中的点。我知道这两个点之一的距离。

像这样

http://jsfiddle.net/icai/2pmk3/

但我想把绿点都放在黑线上。

0 投票
0 回答
451 浏览

java - 在 box2d 中使用 atan2 获取碰撞角度时遇到问题

所以我box2d用来处理物理和碰撞libGDX。我试图找出碰撞的角度,以便我可以在给定的角度应用某些效果。

做了一些研究,我发现 atan2 应该是我需要得到正确角度的数学函数,但它返回了奇怪的结果。对于应该在第二象限的接触,我得到的角度小于 90。对于第三和第四象限的接触,我得到接触角的正数。有没有人知道我在这里做错了什么?

是的,世界流形的索引确实包含坐标信息。我似乎无法弄清楚为什么atan2要返回这些值。

编辑所以我认为问题不在于 atan2,而在于 WorldManifold 返回的联系信息。所以我想我的问题是,可能是什么问题,以至于联系信息会像这样关闭?

0 投票
1 回答
872 浏览

matlab - 绘制直观的角度图

我正在尝试绘制对象的标题。我有四个点向量 - 我们称它们为

  • mdex
  • mdey(又名x1,y1),
  • thpx
  • thpy(又名x2,y2)。

我正在寻找(和) 的变化y和变化,然后将其输入到函数中。然后我遍历结果并将它们绘制到图表上。xdydxatan2d

图表上的刻度从 -180 到 180。当线穿过 -180 或 180 度时,我的问题就出现了。然后它“弹出”到图表的另一侧(即 181 实际上是 -179)。

这是有问题的,因为它看起来好像有巨大的角度变化,而实际上并没有——它只是“翻转”。此外,这搞砸了我的角速度计算,这是基于点之间发生了多少变化。最初,我只是尝试通过将 180 添加到所有低于 0 的值来将图表转换为 0-360 的比例。这不起作用。

这是图表,因此您可能会更好地理解问题(图表是在我尝试 0-360 转换之后)。

废话

我的问题

我想知道是否有一个不同的函数可以用来计算可以给我一个不断增加的值的角度,一种修改数据以使其绘制得很好的方法,或者一种修改图形使其看起来直观的方法?

提前致谢!

0 投票
2 回答
540 浏览

matlab - 朝同一个方向展开一切

我昨天问了一个类似的问题,关于如何在使用atan2d. 该函数在 -180 到 180 的范围内运行,如下所示:

带 atan2d 的单位圆

当一个数字超过 180 时,它会直接变为 -180,使线图非常难看且不直观。有人建议我用它unwrap来解决这个问题,我认为它确实如此。但是,今天我遇到了一个看起来像这样的图表:

带有奇怪翻译的图表.

跳转是固定的,但在它的位置,一条线被翻译到顶部。如果你绘制这三条线,它们非常接近,就像它们应该的那样(-180 和 180 仍然是同一个地方,就像atan2d图表一样)。我希望我的图表能够反映角度的真实方式 - 非常接近。

根据 David K 的要求,这是我用来计算其中一条线的角度的代码。rec,ret是一组有序的坐标, 和recx分别recy是它们的 x 和 y 值。然后我将 theta_r 的结果绘制到一个常规图形上。

我的问题

如何使展开功能仅在一个方向展开(使所有角度相对于圆上的顺时针方向或逆时针方向)而不是在最近的方向展开?或者我应该使用其他东西unwrap来使图表看起来不错?

0 投票
1 回答
478 浏览

python - get angles using atan2 on circle for robot simulation

I am doing a simulation on a robot that makes circular motion with a center coordinate (x1, y1). The robot measures its position periodically and returns the information. Let's say the returned coordinate is (x3, y3). However, I'm not too sure about the correct way of using atan2 in python to calculate the angles between the current measurement and the last measurement with the center.

so far, I am doing the following, and would like to confirm if it's right:

With the angle_difference, I then calculate the angular velocity = angle_difference / dt (dt is the time spent between the last measurement and the current measurement)

0 投票
1 回答
85 浏览

ios - 旋转 UIView(再次)

我在再次旋转 uiview 时遇到了一些问题。这一次,我试图以正常速度旋转的另一个 uiview 的速度旋转 uiview 1/12。但是,当我尝试完成此任务时,我试图移动较慢的 uiview 像这样移动:

第一次更新 https://www.youtube.com/watch?v=wj3nRJo5CMM&feature=youtu.be

第二次更新 https://www.youtube.com/watch?v=YLRkUzXSDtQ&feature=youtu.be

这是我的代码:

0 投票
1 回答
4822 浏览

opengl - OpenGL GLSL 中的 atan(y/x) 和 atan2(y,x) 有什么区别

我在理解 glsl 中 atan 函数的结果时遇到了一些问题。文档也缺乏。

例如,我需要将顶点转换为球坐标,转换球坐标的半径,然后将其转换回笛卡尔坐标。我在以 0 为中心的半径为 2 的 icosphere 的顶点上使用以下变换。

但如果我使用atan(y/x)or ,结果会有所不同atan2(y,x)1E-18为了避免极点,我设置了小常数。

为什么会有这种行为?我假设atan(y/x)和返回的值atan2(y,x)具有不同的范围。特别是在这个实现中,我认为theta应该从[0-Pi]whilePhi范围内[0,2Pi]

我对吗?是否有更精确的球面坐标变换实现?

0 投票
1 回答
3110 浏览

mysql - How do I perform the atan2 function in T-SQL?

I need to execute the ATAN2 function in MS SQL Server. How do I do this?

T-SQL appears to have all the usual math functions like cos, sin, radians etc, just not ATAN2. What is the function for this?

Knowing how to do this in MySQL would be very useful as well, please?