JavaScript atan2() 函数未给出预期结果

2023-12-28

通常,极坐标从 0 到π到 2π(实际上就在 2π 之前,因为它又等于 0)。然而,当使用 JavaScriptatan2()函数,我得到了一个不同的、奇怪的范围:



Cartesian X | Cartesian Y | Theta (θ)
===========================================================
     1      |      0      | 0 (0 × π)
     1      |      1      | 0.7853981633974483 (0.25 × π)
     0      |      1      | 1.5707963267948966 (0.5 × π)
    -1      |      1      | 2.356194490192345 (0.75 × π)
    -1      |      0      | 3.141592653589793 (1 × π)
    -1      |     -1      | -2.356194490192345 (-0.75 × π)
     0      |     -1      | -1.5707963267948966 (-0.5 × π)
     1      |     -1      | -0.7853981633974483 (-0.25 × π)
  

正如你所看到的,达到后π(180°),它会跳到 –π (–180°),然后返回到 0。我怎样才能让它使用这个范围{0, ..., 2π}代替{–π, ..., π}?我一直在尝试考虑每一个计算来“修复”这些值,但我也想知道为什么 JavaScript 选择这个范围而不是典型的极坐标范围。谢谢!


这是相当标准的atan2返回该范围内的角度;例如,这就是atan2C 标准库中确实如此。

如果您想要 0..2pi 而不是 -pi..pi,请测试结果是否为负数,如果是则添加 2pi。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript atan2() 函数未给出预期结果 的相关文章

随机推荐

  • Pylint、PyChecker 还是 PyFlakes? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 一段时间后 Eclipse 停止突出显示引用

    当我在 Eclipse 中打开 Java 文件进行编辑时 引用突出显示在一段时间内工作正常 但几分钟后突然停止工作 在这个例子中 parameters是最后一个正确突出显示的变量 但现在它不再工作并且不突出显示其他任何内容 它应该突出显示p
  • 如何在SDL 2.0中绘制矩形轮廓

    我试图在 SDL 2 0 中绘制一个矩形轮廓 以便用作选择框 有谁知道如何在SDL 2 0中制作一个吗 您正在寻找SDL RenderDrawRect http wiki libsdl org SDL RenderDrawRect int
  • 无法在 Mac m1 上遵循 yew 教程 - 使用未声明的类型“Vec”

    每当我跑步时trunk build or cargo run target wasm32 unknown unknown我收到一堆范围错误 我已经跑了rustup target add wasm32 unknown unknown and
  • 如何过滤具有特定半径范围内的经纬度坐标的django模型

    我有以下模型 class Location models Model name models CharField max length 128 blank True address models CharField max length 2
  • 如何获取异步任务方法name()的返回值?

    我正在尝试获取方法的返回字符串 但问题是我不知道如何获取返回值public async Task
  • 使用 python 2.7 进行 URL 编码

    gt gt gt import httplib gt gt gt x httplib HTTPConnection localhost 8080 gt gt gt x connect gt gt gt x request GET camer
  • MvvMCross 绑定到 Android 布局中的

    是否可以绑定一个对象X到 include 标签 以便包含的布局中的绑定上下文是X 我想多次使用布局 但不在列表中 MainLayout xml
  • ZonedDateTime 美国/菲尼克斯时区到 GMT 有问题[重复]

    这个问题在这里已经有答案了 我想将 美洲 菲尼克斯 转换为 GMT ZonedDateTime zdtPhoenix1 ZonedDateTime of 2022 6 27 10 0 0 0 ZoneId of America Phoeni
  • OSGI 服务 JPA PersistenceContext 未注入

    我有一个核心库 它有一个接口 我想将其公开为 Fuse ESB Apache ServiceMix 和 Karaf 中的 OSGI 服务 目标是允许其他捆绑包使用它 该服务使用 JPA OpenJPA 和 Spring 下面是界面 publ
  • 奇怪的宏(TASM)

    考虑以下宏 pixelFast MACRO This macro draws a pixel assuming the coordinates are already loaded in cx dx and the color is in
  • R:如何在一维以上使用approx(多维插值)?

    这应该不难 但我搜索了很多 到目前为止还没有找到解决方案 我正在处理一些分散的数据 y f x1 x2 x3 xn 我想创建一个查找函数 它为我提供了确切的已知值y当输入向量时x它在数据集中 但当向量时线性插值x不在数据集中 基本上喜欢ap
  • 打印fabricjs画布?

    几周来我一直在努力创建功能来打印我的 Fabricjs 画布 我已经尝试过这些方法这里提到 https stackoverflow com questions 17009946 how to print a canvas element没有
  • 如何在 C++ 程序中包含自定义文件

    如何将文件 2 包含在文件 1 中 我需要在文件 2 中进行哪些更改 file 1 include
  • Angular js 使用 $resource 下载文件并显示加载屏幕的方式

    我正在使用 Angular js 显示加载屏幕 它适用于除下载文件的 REST 服务之外的所有 REST 服务调用 我明白为什么它不起作用 因为下载时我没有使用 resource 进行任何服务调用 相反 我使用正常的方法来下载文件 因此 A
  • 如何避免调用 Application.CreateForm 两次?

    我偶然发现了这个页面为什么我不应该调用 Application CreateForm http pages cs wisc edu rkennedy createform 现在我有一些这样的代码 SplashForm TSplashForm
  • WPF:Content 和 DataContext 属性之间有什么区别?

    据我了解 DataContext property 控件使用此属性作为数据源 是每个框架元素都具有的属性 可用于将数据流入屏幕 DataContext 有范围 范围是根据 DataContext 在对象树中分配到的位置来建立的 如果您在父元
  • 如何影响部分卷页呈现的模态视图的大小?

    我需要为应用程序中的视图提供一些附加数据 并且我想使用部分页面卷曲来实现它 就像 Google 地图应用程序使用部分页面卷曲进行设置一样 我遇到的问题是所呈现的视图占据了整个屏幕 如何调整所呈现视图的大小 理想情况下 我希望它像 Googl
  • 如何渲染 OSM 瓷砖

    我想设置一个瓷砖服务器 我在网上找到了一些文档并遵循本教程 https switch2osm org serving tiles manually building a tile server 14 04 现在看来我有一个配置良好的服务器
  • JavaScript atan2() 函数未给出预期结果

    通常 极坐标从 0 到 到 2 实际上就在 2 之前 因为它又等于 0 然而 当使用 JavaScriptatan2 函数 我得到了一个不同的 奇怪的范围 Cartesian X Cartesian Y Theta 1 0 0 0 1 1