gpt4 book ai didi

javascript - 距离函数返回错误的东西

转载 作者:行者123 更新时间:2023-11-30 15:08:16 24 4
gpt4 key购买 nike

一段时间以来,我一直在尝试编写一个可以计算两点之间距离的函数。我用过这个网站:http://www.mathwarehouse.com/calculators/distance-formula-calculator.php找到公式,但它一直返回不同的数字。从这个 Angular 来看,该网站说 (0,0) 和 (50,100) 的距离是 111.80339887498948,而我的电脑说是 7.483314773547883。我很确定该网站是正确的,但我已经尝试了很多算法,但无法让它返回与该网站相同的内容。这是我的代码:

var distance = function(x1, y1, x2, y2) {
var a = x2 - x1;
a ^= 2;
var b = y2 - y1;
b ^= 2;
var c = a + b;
return Math.sqrt(c);
};

你能告诉我为什么这是在说错话吗?

最佳答案

^bitwise XOR JavaScript 中的运算符,所以 ^= 2 没有按照您的预期进行。

exponential operator (**)存在于 ES2016 中,但除非您使用转译器,否则它可能没有 browser compatibility你在追求。

几个备选方案:

乘法

var distance = function (x1, y1, x2, y2) {
var dx = x2 - x1;
var dy = y2 - y1;

return Math.sqrt(dx*dx + dy*dy);
}

使用 Math.pow

var distance = function (x1, y1, x2, y2) {
var dx = x2 - x1;
var dy = y2 - y1;

return Math.sqrt(Math.pow(dx, 2) + Math.pow(dy, 2));
}

使用 exponential operator

var distance = function (x1, y1, x2, y2) {    
return Math.sqrt(dx**2 + dy**2);
}

关于javascript - 距离函数返回错误的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45439503/

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