Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我怎样才能找到反射线的角度?_Javascript_Math - Fatal编程技术网

Javascript 我怎样才能找到反射线的角度?

Javascript 我怎样才能找到反射线的角度?,javascript,math,Javascript,Math,我正在努力让我的数学变得很糟糕,我正在努力做这件事,试着做弹跳球的部分 我试图计算球在撞击墙壁或踏板后的向外反射角度。墙壁总是水平的,踏板总是垂直的 以下是一张更好地展示它的图片: 以下是我迄今为止所做的尝试: var m = (y2-y)/(x2-x); var angle = (Math.atan(-m)*57.2957795); 然而,这似乎不起作用。因为障碍物总是垂直或水平的,所以不需要进行任何角度计算。 如果你将球的位置存储为x,y,速度存储为vx,vy,你可以在每一帧计算下一个位

我正在努力让我的数学变得很糟糕,我正在努力做这件事,试着做弹跳球的部分

我试图计算球在撞击墙壁或踏板后的向外反射角度。墙壁总是水平的,踏板总是垂直的

以下是一张更好地展示它的图片:

以下是我迄今为止所做的尝试:

var m  = (y2-y)/(x2-x);
var angle = (Math.atan(-m)*57.2957795);

然而,这似乎不起作用。

因为障碍物总是垂直或水平的,所以不需要进行任何角度计算。 如果你将球的位置存储为x,y,速度存储为vx,vy,你可以在每一帧计算下一个位置到x+vx,y+vy


若要从水平边界反弹,只需求反vy,若要从垂直边界反弹,则求反vx。

由于障碍物始终是垂直或水平的,因此无需进行任何角度计算。 如果你将球的位置存储为x,y,速度存储为vx,vy,你可以在每一帧计算下一个位置到x+vx,y+vy


要从水平边界反弹,只需求反vy,从垂直边界反弹就可以求反vx。

在您所演示的每种情况下,角度b的大小与角度a的大小相同。您的代码没有什么意义,因为您没有显示变量应该表示什么,我试图找到斜率,然后向其中添加a-以得到相反的斜率,然后将其转换回角度。在每种情况下,您都说明了角度b的大小与角度a的大小相同。您的代码没有什么意义,因为您没有显示变量应该表示什么。我所做的javascript部分,我试着找到斜率,然后加上一个-,得到相反的斜率,然后把它转换回角度。我现在的工作方式是,我需要提供一个角度来移动到某个方向。我将如何改变y?我现在的工作方式是,我需要提供一个角度来移动到某个方向。我将如何更改y?