如何旋转矢量?

2024-04-27

如果我有[1, 0]我旋转它90 degrees = 1/2PI radians,我应该得到[0, -1]。我该如何实现这一目标?

我在看这一页 http://en.wikipedia.org/wiki/Rotation_matrix并实现了这个:

var rotateVector = function(vec, ang)
{
    // not right!
    return new PVector(
        vec.x * cos(ang) - vec.y * sin(ang),
        vec.x * sin(ang) + vec.y * cos(ang)
    );
};

但这似乎不起作用。

无论是度数还是弧度都没关系,因为几何形状保持不变。我现在使用弧度。


您的公式是正确的,但您需要使用弧度而不是度数的角度:

radians = degrees * (Math.PI/180)

如果您想顺时针旋转它,请注意您的角度是 -90 度而不是 90 度。或者,将其视为 90 度,但将公式更改为:

radians = -degrees * (Math.PI/180)

Edit:

根据您上次的编辑,您可能会得到以下结果:

[6.123233995736766e-17, -1]

这是因为计算机无法存储“无限”数字。但是,正如你所看到的,这个数字非常小,所以可以考虑0。您可以对结果进行四舍五入。

E.g.:

var rotateVector = function(vec, ang)
{
    ang = -ang * (Math.PI/180);
    var cos = Math.cos(ang);
    var sin = Math.sin(ang);
    return new Array(Math.round(10000*(vec[0] * cos - vec[1] * sin))/10000, Math.round(10000*(vec[0] * sin + vec[1] * cos))/10000);
};

并使用以下方法测试它:

rotateVector([1,0], 90)

Result:

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

如何旋转矢量? 的相关文章

  • 将数组中的所有值作为参数传递给函数

    我有一个值数组 a b c d 我需要将它们作为参数传递给函数 window myFunction a b c d 如果我可以将数组 对象传递到函数中 那么这会更容易 但这些函数是由其他人编写的或已经存在 我无法更改它们 它们需要作为单独的
  • 如何使用 JqGrid 子网格进行内联编辑?

    我知道如何使用主网格进行内联编辑 但是有没有办法对子网格进行内联编辑 这是我的 JS 文件 function var lastsel list jqGrid url example php postData q 1 datatype jso
  • 处理中渲染极地带面体时出现问题

    我最近一直在研究 Zohedrons 和Rob Bell http zomadic com 做出了美丽的 我玩了免费的极地带面体 Sketchup 插件 http zomebuilder com 并考虑使用几何图形加工 http proce
  • 通过单击字段启用非活动字段

    是否可以有一组非活动字段 如果单击其中一个字段 则某些字段将变为必填字段并运行某些代码段 举例来说 您显示了三个字段
  • JavaScript 中的常用数字

    在我的任务中 我必须编写一个程序来查找数组中最常见的数字以及它重复的次数 我写了一些东西 但只打印最大重复次数 所以我的问题是如何打印这个元素的值 最大数量 在我的例子中是 4 var array 13 4 1 1 4 2 3 4 4 1
  • 在 AngularJS 中覆盖运行时的依赖关系

    我有一个服务叫 doggedHttp 它公开了与 http 现在我想创建一个 doggedResource服务是有角度的 resource服务之上 doggedHttp代替 http 换句话说我想注入 doggedHttp as the h
  • Angular 2 最终版本路由器单元测试

    如何使用 karma 和 jasmine 对 Angular 2 0 0 版中的路由器进行单元测试 这是我的旧单元测试在版本 2 0 0 beta 14 中的样子 import it inject injectAsync beforeEac
  • 如何滚动到 jQuery Mobile 中的页面元素?

    我有一个很长的 jQuery 移动页面 并且想在页面加载后滚动到该页面中间的元素 到目前为止 我已经尝试了一些事情 最成功的是 jQuery document bind mobileinit function var target if t
  • 将服务连接到现有的流星帐户

    我正在设置一个流星应用程序 其中涉及使用用户名和密码进行注册 然后希望将该帐户与 Facebook 和 Twitter 连接起来 我只需使用帐户包即可轻松启动并运行第一部分 但是当我有一个登录用户调用 Meteor loginWithFac
  • 在 Chrome 中检索浏览器语言

    我一直在尝试让 momentjs 正确检测浏览器语言并本地化时间显示 按照使用 Moment js 进行区域设置检测 https stackoverflow com questions 25725882 locale detection w
  • 使用 test() 通过正则表达式进行信用卡验证

    我正在尝试完成一些作业 看来这本书可能做错了 我有一个简单的 html 页面 允许用户在我们的例子中选择信用卡 美国运通卡 然后 用户输入一个数字并根据正则表达式评估该数字 我的问题最终是当 test 计算它返回的数字时是布尔值还是字符串
  • Firefox OS 后台服务

    我想构建一个应用程序 用户可以通过它输入一些设置 并且应用程序将启动后台服务来根据这些设置执行一些任务 我只想在模拟器中运行应用程序和后台服务 我知道它需要 认证 模式才能运行后台服务 但我现在不考虑在 Firefox Marketplac
  • 设计 Javascript 前端 <-> C++ 后端通信

    在我最近的将来 我将不得不制作一个具有 C 后端和 Web 前端的系统 要求 目前 我对此了解不多 我认为前端将触发数据传输 而不是后端 所以不需要类似 Comet 的东西 由于在该领域的经验可能很少 我非常感谢您对我所做的设计决策的评论
  • JavaScript - 这个这个

    String prototype foo String prototype foo bar function How can you reference the grandparent string console log this par
  • 检查 href 中是否存在 jQuery 中的查询字符串

    我目前有一段 jQuery 用于附加带有一些位置信息的 URL jQuery a attr href function return this href location 123 abc 我的问题是大多数链接都有一个 其中使用上面的 就可以
  • 如何修复 AJAX 在选中复选框时始终触发?

    有时这个 AJAX 会触发 有时不会 让我解释一下 habit js document ready function habit check change function habit this parent siblings habit
  • 如何在 Javascript 中将字符串数组转换为特定的树结构

    我从后端获取文件路径列表 它代表文件夹结构 如下所示 paths path to file1 doc path to file2 doc foo bar doc 路径的长度是任意的 为了使用文件树组件 角度2树组件 https github
  • JavaScript 数组中的负索引是否会影响数组长度?

    在javascript中我定义了一个像这样的数组 var arr 1 2 3 我也可以做 arr 1 4 现在如果我这样做 arr undefined 我也失去了对值的引用arr 1 所以对我来说 从逻辑上来说 arr 1 也是arr 但是
  • 如何逐步绘制矢量路径? (拉斐尔.js)

    如何逐步动画化矢量路径 就像它被绘制一样 换句话说 慢慢地逐像素地显示路径 我在用着Rapha l js but如果您的答案不是特定于库的 例如可能有一些通用的编程模式可以完成此类事情 我对矢量动画相当陌生 欢迎 使用直线路径很容易做到 就
  • Javascript:修改原型不会影响现有实例[重复]

    这个问题在这里已经有答案了 我创建了原型的 2 个实例 更改了原型中的函数 更改反映在两个实例中 很棒 但是 当我通过删除该函数来修改原型时 该函数对于现有实例仍然存在 function A this name cool A prototy

随机推荐

  • 由于 poms 中的版本发生更改,合并来自 Maven 发布分支的更改会产生冲突

    按照标准实践 我有一个用于功能开发的 svn 主干 以及一个用于构建版本的分叉分支 该分支是使用 maven 发布插件创建的 该插件也用于创建发布 碰巧的是 偶尔的错误将在分支上修复 并且这些更改需要合并回主干 为了不错过任何更改 我希望能
  • SwiftUI 列表内存问题,图像未从 RAM 中释放导致崩溃

    我正在将图像加载到 SwiftUI 列表中 当向下滚动太多图像时 RAM 会飙升并导致应用程序崩溃 为什么当用户向下滚动经过图像时图像不会被释放 我正在加载图像 如下所示 List allProducts id self product i
  • Django 外键多对一关系显示在模板上

    我正在尝试显示与公司 多对一 相关的工作机会 但我无法做到这一点 我已经尝试了很多循环 但我什至没有得到查询集 所以我一定做错了 但无法解决我做错的事情 My files 模型 py class Company models Model f
  • 将 div 的内容放在一起以便在 IE8 中打印

    给定以下 HTML 文档 我需要将 表标题 行保留在与 table 在 IE8 中打印时 尽管page break inside avoid 标题和表格之间仍然有一个分页符 我对此的理解表明应该避免分页并且整个div推至第 2 页 文档类型
  • 将选定的下拉列表值从视图传递到控制器

    我想从我的视图将参数 字符串 传递到我的控制器 该值应该是从视图的下拉列表中选择的值 单击按钮后会调用该方法 但在控制器中 该参数始终为空 在视图中 using Html BeginForm Send Overview FormMethod
  • iOS客户端的Youtube API如何获取Client Secret?

    我正在开发 iOS 应用程序 其中包含在 Youtube 上上传视频的功能 我遵循了一个示例项目yt direct lite ios https github com youtube yt direct lite iOS 该项目需要客户编号
  • rdf:seeAlso 和 rdfs:seeAlso 之间的区别

    有什么区别rdf seeAlso and rdfs seeAlso 当我可以使用时rdf seeAlso当我可以使用时rdfs seeAlso 你能举出一些例子吗 首先 请注意rdf and rdfs分别是常用于引用 RDF 语法和 RDF
  • pandas to_json() 多余的反斜杠

    我有一个包含电影数据的 csv 文件 我正在尝试将其重新格式化为 JSON 文件以在 MongoDB 中使用它 所以我将该 csv 文件加载到 pandas DataFrame 中 然后使用 to json 方法将其写回 DataFrame
  • 如何通过 PHP 使用 AWS SQS/SNS 作为推送通知队列来执行繁重的处理任务?

    我有一台在机架空间上运行的服务器 它托管一个 PHP Web 应用程序 PHP Web 应用程序将接受表单提交 然后需要根据表单字段条目执行任务 该任务 我们将其称为生成元数据任务 需要相当多的处理时间 我想知道如何允许表单提交直接保存到数
  • 如何将 BlockHound 添​​加到 Spring Boot 应用程序以检测阻塞调用?

    如何将 BlockHound 添 加到 Spring Boot 应用程序以检测阻塞调用 我没有找到任何 Spring Boot 应用程序的示例 https github com reactor BlockHound blob master
  • IMAPI界面可以选择刻录模式吗?

    我正在使用 IMAPIv2 在我的 C 项目中刻录 CD DVD 我意识到接口以 XA 格式 模式 2 刻录 我相信 XA 格式主要用于 ISO 网上很多关于IMAPIv2的例子都使用下面的方法来显示总磁盘空间和可用空间 discForma
  • Java ByteBuffer 到 String

    这是将 ByteBuffer 转换为 String 的正确方法吗 String k abcd ByteBuffer b ByteBuffer wrap k getBytes String v new String b array if k
  • Nest JS构建不会生成dist文件夹

    我已经用nest js实现了rest api项目 它在本地环境中运行良好 pm start 我想构建并部署它 但构建命令不会生成dust文件夹 以下是我的配置 tsconfig json compilerOptions module com
  • 错误不会阻止对象保存吗?

    我有一个虚拟属性 它从表单字段获取时间范围并将其分割 def time range time range unless time range empty t time range split to self start entry t 0
  • 如何在电子邮件正文中发送 R Markdown 报告?

    更新 布兰登 贝特尔森的回答 布兰登的答案产生以下输出 它不会像 Rstudio 那样生成漂亮的表格或突出显示代码 并且它会在某些带有 unicode 的 html 文件上崩溃 因此我没有使用它来自动化我的电子邮件报告 我目前的做法是用Rs
  • 为什么 PHP 不替换字符串中的变量? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我不明白为
  • Android getExternalFilesDir 与 getFilesDir() 对于大文件

    getExternalFilesDir 和 getFilesDir 之间的区别对我来说很清楚并且有很好的解释here https developer android com reference android content Context
  • 输入类型=“文件”接受=“图像/*”在手机间隙不起作用?

    我尝试使用 HTML PhoneGap 2 6 0 制作一个 Android 应用程序 它支持
  • parse.com 用户注册无法正常工作的问题

    使用 parse com 和 javaScript SDK 1 6 7 下面的代码用于在我的网站上注册新用户 它有效 真正奇怪的是 如果我注册一个用户 他们就会登录并转发到预期的页面 如果我随后将它们注销并立即注册另一个用户 则它们是在后端
  • 如何旋转矢量?

    如果我有 1 0 我旋转它90 degrees 1 2PI radians 我应该得到 0 1 我该如何实现这一目标 我在看这一页 http en wikipedia org wiki Rotation matrix并实现了这个 var r