Javascript 如何计算球与墙碰撞时的坐标?

Javascript 如何计算球与墙碰撞时的坐标?,javascript,linear-algebra,game-physics,Javascript,Linear Algebra,Game Physics,我正在开发一款类似于泡泡射击的游戏,需要实现球从垂直墙上反弹。我有以下投入: 气泡的起始位置:{左:382,右:378} 发射角度(弧度):1.34 游戏板尺寸:{宽度:760,高度:620} 气泡的大小是{宽度:44px,高度:44px} 我在气泡的左侧和右侧有两堵墙 我如何计算气泡的中心点坐标,以阻止它在右墙的左侧碰撞 如果气泡的尺寸是44x44,我假设它意味着边界框就是这个尺寸(因为您不使用宽度和高度来测量圆) 如果是这样的话,你会有 这意味着圆的直径是44px,这意味着圆的半径是22p

我正在开发一款类似于泡泡射击的游戏,需要实现球从垂直墙上反弹。我有以下投入:

  • 气泡的起始位置:
    {左:382,右:378}
  • 发射角度(弧度):
    1.34
  • 游戏板尺寸:
    {宽度:760,高度:620}
  • 气泡的大小是
    {宽度:44px,高度:44px}
  • 我在气泡的左侧和右侧有两堵墙

    我如何计算气泡的中心点坐标,以阻止它在右墙的左侧碰撞


    如果气泡的尺寸是44x44,我假设它意味着边界框就是这个尺寸(因为您不使用宽度和高度来测量圆)

    如果是这样的话,你会有

    这意味着圆的直径是44px,这意味着圆的半径是22px。假设墙与圆相切,则墙到圆中心的距离为
    1r
    或22px


    如果从边界框的左上角开始计算,则需要将22px添加到x和y坐标,这将为您提供中心坐标。

    如果气泡的尺寸为44x44,则我假设这意味着边界框就是该尺寸(因为您不测量具有宽度和高度的圆)

    如果是这样的话,你会有

    这意味着圆的直径是44px,这意味着圆的半径是22px。假设墙与圆相切,则墙到圆中心的距离为
    1r
    或22px



    如果从边界框的左上角开始计数,则需要将22px添加到x和y坐标,这将为您提供中心坐标。

    输入数据中缺少三个重要项。泡沫的大小和形状是什么?角度0是什么方向?角度是从0开始顺时针还是逆时针?我已经用大小更新了帖子。如果角度为0,我不考虑方向,我想我需要尽可能设置最小角度。如果你不知道角度0在哪里,或者角度测量的方向(顺时针或逆时针),那么角度1.34弧度没有任何意义。我添加了一张图片,希望能回答你的问题。所以,发射角度为1.34。输入数据中缺少三个重要项目。泡沫的大小和形状是什么?角度0是什么方向?角度是从0开始顺时针还是逆时针?我已经用大小更新了帖子。如果角度为0,我不考虑方向,我想我需要尽可能设置最小角度。如果你不知道角度0在哪里,或者角度测量的方向(顺时针或逆时针),角度1.34弧度没有任何意义。我已经添加了我希望回答你问题的图像。所以,发射角度为1.34 OK,但我如何计算x,y,我应该在哪里停止泡沫?我不知道。这取决于你的坐标系。如果气泡的位置由其左上角的位置确定,则需要从左壁停止气泡0px,从右壁停止气泡44px。如果它是从中心开始的,你想从任何一个方向阻止22px。我的问题是我不知道如何计算
    top
    坐标。请看这个游戏。现在,泡沫并没有停止在墙上。我需要计算
    top
    left
    坐标,以将其停在屏幕上的正确位置wall@Erik这是一个严格意义上的数学问题,而不是编程问题。如果你不理解它背后的数学原理,也许你应该在或类似的论坛上提问。我已经问过了,管理员们已经关闭了它:(好的,但是我如何计算
    x,y
    我应该在哪里停止气泡?我不知道。这取决于你的坐标系。如果气泡的位置由它的左上角的位置决定,你想从左壁停止气泡0px,从右壁停止气泡44px。如果它从中心停止气泡22px,你想从eit停止气泡她的方式。我的问题是我不知道如何计算
    top
    坐标。请看游戏。现在气泡不会停在墙上。我需要计算
    top
    left
    坐标,将其停在墙上的正确位置wall@Erik这是一个严格意义上的数学问题,不是一个编程问题。如果你不理解ma在它背后,也许你应该问一下或类似的论坛。我已经问过了,管理员已经关闭了它:(