首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >给定角度和长度的矢量计算

给定角度和长度的矢量计算
EN

Stack Overflow用户
提问于 2014-11-15 21:20:21
回答 3查看 9K关注 0票数 10

有什么方法,在javascript中,我可以调用一个函数的x和y的协和和一个方向(角度的度),它将返回一组新的同和弦,已经“移动”了10 of的方向,从原来的同和弦?我环顾四周,但我所能找到的只是得到两个给定的和弦的角度的方法。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-11-15 21:33:04

此函数返回新坐标的数组[xCoord, yCoord]:

代码语言:javascript
复制
function myFunction(xCoord, yCoord, angle, length) {
    length = typeof length !== 'undefined' ? length : 10;
    angle = angle * Math.PI / 180; // if you're using degrees instead of radians
    return [length * Math.cos(angle) + xCoord, length * Math.sin(angle) + yCoord]
}
票数 13
EN

Stack Overflow用户

发布于 2021-01-31 15:59:49

我只想指出,国际水文学组织的答案是不正确的。我创建了一个JSFiddle,显示正确的实现必须如下所示:

代码语言:javascript
复制
function getRelativeVector(angle, length, xOffset, yOffset) {
    angle = angle * Math.PI / 180; 
    return { 
        X:length * Math.sin(angle) + xOffset, 
        Y:length * Math.cos(angle) + yOffset 
    };
}

这里显示的其他解决方案来自@Audrius和@Markus,它们只是在cossin中被扭曲。他们只工作在0到45度之间。

公式是:

  • X = length * sin(angle) + xLocation
  • Y = length * cos(angle) + yLocation
票数 1
EN

Stack Overflow用户

发布于 2014-11-15 21:23:58

X坐标的移位是L*cos(a),y坐标的移位是L*sin(a),其中a是角度(“给定的方向”),L是10 px。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26950853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档