gpt4 book ai didi

javascript - 意外的向量旋转值

转载 作者:行者123 更新时间:2023-12-03 10:07:38 24 4
gpt4 key购买 nike

所以我有一个向量(出于学习目的分为两个单独的值)。

我将其设置为:

var px = 6*( Math.cos( originalAngle * (Math.PI/180)));
var py = 6*( Math.sin( originalAngle * (Math.PI/180)));

这会将 X 坐标 (px) 设置为 6,并将 Y 坐标 (py) 设置为 0。

然后我使用旋转矩阵尝试将向量旋转 90 度:

var a = 90*(Math.PI/180);

var nx = px*Math.cos(a) - py * Math.sin(a);
var ny = px*Math.sin(a) + py * Math.cos(a);

我希望新坐标为 X(nx): 0 和 Y(ny): 6。

但我的实际结果是 X(nx): 3.6739403974420594e-16 和 Y(ny): Y: 6。

所以,我不确定为什么 X 返回该值。

编辑*我的 fiddle 是here

最佳答案

这是由于计算 cos 和 sin 时进行的近似而产生的舍入误差。3.6739403974420594e-16 几乎为 0,但如果您需要精确地获得 0,您可以设置一个足够小到为零的阈值:

if(nx<1e-10){
nx=0
}
if(ny<1e-10){
ny=0
}

关于javascript - 意外的向量旋转值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30289955/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com