gpt4 book ai didi

javascript - JS旋转函数输出奇怪的X值

转载 作者:行者123 更新时间:2023-11-28 01:46:52 25 4
gpt4 key购买 nike

嘿,我在 Javascript 中创建了一个旋转函数,用于旋转一些 2D 矢量(点)。

函数的 Y 输出按预期工作,但是 X 值输出一些疯狂的数字,有人能指出我的逻辑中的下限吗?

Vector2.prototype.rotate = function(degrees){

var angle = degrees * TO_RADIANS; //Convert to radians.
var x = (this.getX() * Math.cos(angle)) - (this.getY() * Math.sin(angle));
var y = (this.getX() * Math.sin(angle)) + (this.getY() * Math.cos(angle));
return new Vector2(x,y);
};

将 Vector(1,0) 输入到该函数中并旋转 90 度,输出 6.someDecimalPlaces e-17;这显然是不正确的。

然而,输出的 Y 值按预期工作并返回 1。

提前致谢

最佳答案

您看到的“6.someDecimalPlaces e-17”是由于 Javascript 对 float 的处理造成的。您看到的是从二进制浮点转换回十进制时的舍入错误。尽管有一些库试图解决这个问题,但没有简单的解决办法。

如果您想要舍入数字以进行像素完美的 CSS 操作,您最好的选择是将来自此函数的数字舍入或将它们转换为整数。

关于javascript - JS旋转函数输出奇怪的X值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20188328/

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