gpt4 book ai didi

javascript - 在Javascript中计算弧度的正确方法?

转载 作者:行者123 更新时间:2023-12-02 16:42:51 27 4
gpt4 key购买 nike

我有这个 fiddle http://jsfiddle.net/pp7oby62/ 。该 fiddle 由一个桨游戏组成,在 80x10 传感器网格上的桨上扔石头。函数notify_player有两个参数,它们给我岩石和桨的位置。我的代码如下所示:

defender.start(

function notify_player(rocks, paddle_y) {
var rocks_x = Math.max(rocks);
var rocks_y = Math.min(rocks);
var paddle_x = Math.max(paddle_y);
var paddle_yp = Math.min(paddle_y);
var deltaY = rocks_y - paddle_yp;
var deltaX = rocks_x - paddle_x;
var angleInRadians = Math.atan2(deltaY, deltaX);
var angleRound=Math.round(angleInRadians);
// random plan
var moves = [];
for (var i = 0; i < 22; i++) {
// -1, 0, 1 to move the fiddle up and down on the grid
//moves.push( Math.floor(Math.random()*3) - 1 );
if (angleInRadians >0) moves.push(-1);
else if (angleInRadians < 0) moves.push(0, 1, -1);
}
return moves;
}
);

moves 数组控制桨的上下移动。正如您所看到的,我正在使用从两个参数获得的信息来计算以弧度为单位的 Angular 。但是当我运行它时,当我给出条件循环表明 Angular >0或<0时,对桨的运动没有影响。但假设我说:

if(angleInRadians!==0)

桨移动。这怎么可能?

最佳答案

there's no effect on the movement of paddle when I give conditional loops stating that the angle is >0 or <0.

这可能只是当 anleInRadians 为零时 - 你在那里有一个盲点。

But suppose I say: if(angleInRadians!==0) The paddle moves. How could this be possible?

变量angleInRadians包含值NaN。它既不小于也不大于零,因为它不是一个数字 - 但它绝对不是零。是的,NaN 的相等关系有点奇怪(它甚至不等于它自己)。

您在这里得到 NaN 的原因是您正在进行无效的数学运算。 rocks 是一个对象数组(您确实应该记录并检查它),您不能对其调用 Math.min.max

顺便说一句,对单个值调用 minmax 甚至没有意义。并且您无法通过调用 Math.max(paddle_y) 来获取 paddle_x 位置。

关于javascript - 在Javascript中计算弧度的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27349701/

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