问题标签 [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.
c++ - VS2005 中 atan2() 的参数不正确?
math.h
Visual Studio 2005 提供的标头中似乎有错误。
atan2f() 函数的参数似乎颠倒了。
我不确定更高版本的 Visual Studio 是否是这种情况。有谁知道这里的分数是多少?
c# - 带方向的鼠标旋转圆圈
我正在用鼠标旋转一个圆圈,但我希望对圆圈的旋转范围有一个限制。(假设是 3 个完整的时间)。当它达到极限时,它不能再朝同一个方向转动,但可以朝相反的方向转动。我让它在最大转弯后停止,但现在我试图找到方向,每次我的鼠标经过圆圈的 x 轴时,方向都会改变,因为 atan2 给了我相对于 x 轴的角度。所以新的鼠标位置在一个象限,最后一个位置在另一个象限,所以减去这些角度并不能得到我想要的。我解释清楚了吗?有什么建议么?
java - Java Atan2() 排序违反一般合同?
我在使用 Java/Processing 中使用的比较方法时遇到问题。
它说它违反了它的一般合同,我理解这意味着它不能始终如一地处理项目之间的关系......
但我不明白为什么。由于它只是根据 ycor 与 xcor 的比率(如 sin 与 cos)返回角度 theta,它不应该根据它们从 0 到 360 度的位置一致地对它们进行排序吗?
非常感谢任何帮助,谢谢!
具体上下文是在运行 Collection.Sort() 时发生错误。
c - 将Excel公式转换为C?
我需要帮助将此 Excel 公式转换为 C(使用纯 Win32 API,使用来自 msvcrt 的 atan2)。Excel公式为:
我尝试移植它,但我不理解学位约定,因为值不匹配。
这个 Excel 公式对应的 C 函数是什么?
好的,我在这里编辑了答案。我成功地制作了一个与 excel 中的功能完全相同的功能。我用汇编程序编写了它(使用 RosAsm 汇编程序),但移植到 C 应该不难。
java - 通过 atan2 方法旋转对象时的问题
我试图让图像跟随我的光标,平滑地移动它所在的位置并转向面对它。
当我靠近原点时,它完美无瑕:图像将完全翻转而没有问题,但是我离窗口原点越远,图像转动越少。当我在屏幕的另一侧时,它不会翻转,而是旋转 5°-15°。
如果有人能指出问题所在,我会很高兴=)
这是我当前的图像代码:
这是处理旋转的代码,加上它的运动:
c++ - 如何从atan2角度回到坐标
(-6/35)
我用计算了 的角度atan2(-6/35)
。结果是-9.7275785514016047
。
现在要回来,我使用了维基百科的公式
我希望得到坐标(-6/35)
但我得到了 ( -33.895012797701419/10.589056022311761
)
所以我认为这是错误的,因为atan2
定义在4 个象限上,sin
并且cos
只定义在2个象限上。
这个对吗?怎么做才对?
编辑:
现在,首先我很抱歉以糟糕的方式描述我的问题。我实际上做了以下
matlab - 使用 arctan 函数将基数分量转换为基数方向
我有洋流数据(走向)。我可以使用什么转换?
270-(atan2(zonal,meridional)(180/pi)) 或 270-(atan2(meridional,zonal)(180/)) 还是完全不同的?
我已经浏览了 [this link][1] 以及 [eol][2] 网站。我还是不知道。
使用单位圆和arctan函数我尝试做,比如第一象限纬向分量(x)朝向东西方向是正的,子午线 分量(y)南北是正的,我使用arctan(x,y)来找到方向。
然后对于第二象限 90+arctan(x,y) ???
第三象限 180+arctan(x,y) ??
第四象限 270+arctan(x,y) ??
如果我错了,请纠正我...
python - Applying diff on selected rows for comparing angles from math.atan2
I have a data frame like this that want to apply diff function on:
The column 'Value' is in degrees. So, the difference between -170
and 170
should be 20
, not -340
. In other words, when d2*d1 < 0
, instead of d2-d1
, I'd like to get 360-(abs(d1)+abs(d2))
Here's why I try. But then I don't know how to continue it without using a for loop:
Here's what the result should look like:
Eventually I'd like to get just the magnitude of differences all in positive values. Thanks.
Update: So, the value results are derived from math.atan2
function. The values are from 0<theta<180
or -180<theta<0
. The problem arises when we are dealing with a change of direction from 170
(upper left corner) to -170
(lower left corner) for example, where the change is really just 20
degrees. However, when we go from -30
(Lower right corner) to 10
(upper right corner), the change is really 40
degrees. I hope I explained it well.
c# - 使用 atan2 进行延迟旋转
我一直在尝试使用正确的模拟摇杆创建延迟旋转效果。下面的代码根据右侧模拟摇杆的输入获取角度,并使对象稳定地靠近。由于 atan2 是 -pi 到 pi 的范围,因此不断变化的旋转总是倾向于通过 0 弧度而不是 pi。有没有办法使角度朝相反的方向移动?
编辑:
我尝试使用 InBetween 建议的方法,导致 2pi 到 0 之间的转换出现问题。这让我尝试了别的东西。我不知道为什么它不起作用。
这背后的想法是,如果您需要行进超过 180 度,您将使行进角度大于 360 度。这应该消除反转方向的需要。
javascript - 使用ATAN而不是ATAN2将图像旋转到面对鼠标点
为了更好地理解三角函数在游戏开发中的工作原理,我一直在 CodePen 上创建小的 javascript 片段。
我设法创建了一个示例,用于Math.atan2()
将像素艺术霰弹枪指向鼠标光标。
现在,我正在尝试使用该Math.atan()
函数完成相同的任务,但它无法正常运行。
这是我正在使用的逻辑代码:
在我的 draw() 函数中,我使用以下方法将枪旋转到角度 var:
cxt.rotate(angle*(Math.PI/180));
如果您取消注释以 开头的行// var angle_in_radians
,一切都会突然起作用。
所以, atan2 正在工作,但 atan 正在产生我想要的结果。
我知道opposite_lengt
h 并且adj_length
是准确的,因为当我 console.log() 它们时,它们是正确的值。
您可以查看CodePen上使用的代码以获取实时示例。
有很多初始化的东西,但您只需要真正关注该canvas.onmousemove = function(event)
部分,从第 50 行开始。您还可以查看我在第 68 行的绘制函数。